tx · 2zadmMsuon6e28robCmJzR2pZJYo6wbuPnpGFkHJ4Ko5

3N2eueE5vLLKe8jXuBDbdbKcPaH36yG1Had:  -0.01000000 Waves

2022.10.18 12:00 [2277622] smart account 3N2eueE5vLLKe8jXuBDbdbKcPaH36yG1Had > SELF 0.00000000 Waves

{ "type": 13, "id": "2zadmMsuon6e28robCmJzR2pZJYo6wbuPnpGFkHJ4Ko5", "fee": 1000000, "feeAssetId": null, "timestamp": 1666083672065, "version": 2, "chainId": 84, "sender": "3N2eueE5vLLKe8jXuBDbdbKcPaH36yG1Had", "senderPublicKey": "EAmZF2D2BbfoPsrMGFAs2UCv8ScAXxhAZRzFpkveca8G", "proofs": [ "6AP9nybftxSQf31qU5SH7phD4hnegqQAi74grted38MU4gVUmGYKwDvzPZjPNhfNkgA2G3zv3RQ7n8H2HmSeQNt", "3hWPtGnmUwCixKu3haYxS2jG76eUbQ5gt8Phv2AEvENn7qSZaVCtpHFHBjnJ2zv8f2XBiaxXfTEdA3NNmdtzqXuN" ], "script": "base64:BgICCAIRAAZvcmFjbGUJAQdBZGRyZXNzAQEaAVTpRaoekC86rvG6DuYumpJfGpiE4fNiswgBE2dldEJhc2U1OEZyb21PcmFjbGUBA2tleQQHJG1hdGNoMAkAnQgCBQZvcmFjbGUFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEBnN0cmluZwUHJG1hdGNoMAkA2QQBBQZzdHJpbmcEB25vdGhpbmcFByRtYXRjaDAJAAIBCQCsAgIFA2tleQIIaXMgZW1wdHkADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMAEmtBZG1pbkludm9rZVB1YktleQIQYWRtaW5faW52b2tlX3B1YgALa0dvdkFkZHJlc3MCEmdvdmVybmFuY2VfYWRkcmVzcwAMa0Zhcm1BZGRyZXNzAg9mYXJtaW5nX2FkZHJlc3MAD2tTdXJ2ZXlzQWRkcmVzcwIPc3VydmV5c19hZGRyZXNzAAxhZG1pblB1YktleTEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MQAMYWRtaW5QdWJLZXkyCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTIADGFkbWluUHViS2V5MwkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkzAAthZG1pbkludm9rZQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBRJrQWRtaW5JbnZva2VQdWJLZXkAEWdvdmVybmFuY2VBZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQULa0dvdkFkZHJlc3MADmZhcm1pbmdBZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa0Zhcm1BZGRyZXNzAA5zdXJ2ZXlzQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFD2tTdXJ2ZXlzQWRkcmVzcwARa2V5UHJlZml4UG9vbE5hbWUCBXBvb2xfAACMdOXh", "height": 2277622, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HrL59jhyMdywjxtmgBVmeBWdmnHgymd1FTZ8fC2SDATD Next: 4f2ZBj4RVrSvXQK4hWjuXZEYvaQ1DCMhwJy5zRCoRduD Diff:
OldNewDifferences
4242 let keyPrefixPoolName = "pool_"
4343
4444
45-@Verifier(tx)
46-func verify () = match tx {
47- case inv: InvokeScriptTransaction =>
48- let isExchangeCall = if (if (isDefined(getString(oracle, (keyPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
49- then (inv.function == "callFunction")
50- else false)
51- then (inv.args[0] == "exchange")
52- else false
53- let isAirdropCall = if ((inv.dApp == governanceAddress))
54- then (inv.function == "airDrop")
55- else false
56- let isUpdateWeightsCall = if ((inv.dApp == governanceAddress))
57- then (inv.function == "updateWeights")
58- else false
59- let isUpdatePoolInterest = if ((inv.dApp == farmingAddress))
60- then (inv.function == "updatePoolInterest")
61- else false
62- let isTakenIntoAccount = if (if (isDefined(getString(oracle, (keyPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
63- then (inv.function == "callFunction")
64- else false)
65- then (inv.args[0] == "takeIntoAccountExtraFunds")
66- else false
67- let isWriteTotal = if ((inv.dApp == surveysAddress))
68- then (inv.function == "writeTotals")
69- else false
70- let signedByAdmin = sigVerify(tx.bodyBytes, tx.proofs[0], adminInvoke)
71- if (if (if (if (isExchangeCall)
72- then true
73- else isAirdropCall)
74- then (size(inv.payments) == 1)
75- else false)
76- then true
77- else if (if (if (if (isUpdateWeightsCall)
78- then true
79- else isUpdatePoolInterest)
80- then true
81- else isTakenIntoAccount)
82- then true
83- else isWriteTotal)
84- then (size(inv.payments) == 0)
85- else false)
86- then signedByAdmin
87- else false
88- case _ =>
89- let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
90- then 1
91- else 0
92- let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
93- then 1
94- else 0
95- let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
96- then 1
97- else 0
98- (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
99-}
100-
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let oracle = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
55
66 func getBase58FromOracle (key) = match getString(oracle, key) {
77 case string: String =>
88 fromBase58String(string)
99 case nothing =>
1010 throw((key + "is empty"))
1111 }
1212
1313
1414 let kAdminPubKey1 = "admin_pub_1"
1515
1616 let kAdminPubKey2 = "admin_pub_2"
1717
1818 let kAdminPubKey3 = "admin_pub_3"
1919
2020 let kAdminInvokePubKey = "admin_invoke_pub"
2121
2222 let kGovAddress = "governance_address"
2323
2424 let kFarmAddress = "farming_address"
2525
2626 let kSurveysAddress = "surveys_address"
2727
2828 let adminPubKey1 = getBase58FromOracle(kAdminPubKey1)
2929
3030 let adminPubKey2 = getBase58FromOracle(kAdminPubKey2)
3131
3232 let adminPubKey3 = getBase58FromOracle(kAdminPubKey3)
3333
3434 let adminInvoke = getBase58FromOracle(kAdminInvokePubKey)
3535
3636 let governanceAddress = Address(getBase58FromOracle(kGovAddress))
3737
3838 let farmingAddress = Address(getBase58FromOracle(kFarmAddress))
3939
4040 let surveysAddress = Address(getBase58FromOracle(kSurveysAddress))
4141
4242 let keyPrefixPoolName = "pool_"
4343
4444
45-@Verifier(tx)
46-func verify () = match tx {
47- case inv: InvokeScriptTransaction =>
48- let isExchangeCall = if (if (isDefined(getString(oracle, (keyPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
49- then (inv.function == "callFunction")
50- else false)
51- then (inv.args[0] == "exchange")
52- else false
53- let isAirdropCall = if ((inv.dApp == governanceAddress))
54- then (inv.function == "airDrop")
55- else false
56- let isUpdateWeightsCall = if ((inv.dApp == governanceAddress))
57- then (inv.function == "updateWeights")
58- else false
59- let isUpdatePoolInterest = if ((inv.dApp == farmingAddress))
60- then (inv.function == "updatePoolInterest")
61- else false
62- let isTakenIntoAccount = if (if (isDefined(getString(oracle, (keyPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
63- then (inv.function == "callFunction")
64- else false)
65- then (inv.args[0] == "takeIntoAccountExtraFunds")
66- else false
67- let isWriteTotal = if ((inv.dApp == surveysAddress))
68- then (inv.function == "writeTotals")
69- else false
70- let signedByAdmin = sigVerify(tx.bodyBytes, tx.proofs[0], adminInvoke)
71- if (if (if (if (isExchangeCall)
72- then true
73- else isAirdropCall)
74- then (size(inv.payments) == 1)
75- else false)
76- then true
77- else if (if (if (if (isUpdateWeightsCall)
78- then true
79- else isUpdatePoolInterest)
80- then true
81- else isTakenIntoAccount)
82- then true
83- else isWriteTotal)
84- then (size(inv.payments) == 0)
85- else false)
86- then signedByAdmin
87- else false
88- case _ =>
89- let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
90- then 1
91- else 0
92- let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
93- then 1
94- else 0
95- let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
96- then 1
97- else 0
98- (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
99-}
100-

github/deemru/w8io/169f3d6 
53.77 ms