2022.12.22 14:27 [3436901] smart account 3PK1fr9NgoARPK1gBcnNqA3cC5rFC3L962d > SELF 0.00000000 Waves

{ "type": 13, "id": "CrncB2rtBLfJ46HNfvshLxaxxjWyLaJaV1HzH9jHbzbJ", "fee": 600000, "feeAssetId": null, "timestamp": 1671708439733, "version": 1, "sender": "3PK1fr9NgoARPK1gBcnNqA3cC5rFC3L962d", "senderPublicKey": "J7aB8vtJdXJDvfk6MVJPcS4u6Djw4pWJRNDzGekpGHge", "proofs": [ "3rT4FtQq6HCJykwgjMcRaa7uJjq2K7f3YMAwjvAu5t7afWJEpqS2tfy7RCVaYKWPjxpRK9QvAJf9xbE6YLpQvoKb" ], "script": "base64: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", "chainId": 87, "height": 3436901, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5RxMHLSYYsxB24gitBKjswdpH8Dyq9WSj25joMGCRig3 Next: 6XpL356b3fghBSvSAshTJ6ADf2b9H8sKjnEcpEQD6guF Diff:
OldNewDifferences
1919 else {
2020 let h = height
2121 let epoch = ((h / 1440) * 1440)
22- let key = (("total_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_" + toString(epoch)) + "_withdrawn_within_epoch")
23- let withdrawn = valueOrElse(getInteger(addressFromStringValue("3PKZk5TdPCLP2GZviipLFfK46ExTnwkRCBd"), key), 0)
24- let maxWithdraw = valueOrElse(getInteger(this, "max"), 10000000000)
25- if ((maxWithdraw > (withdrawn + 50000000)))
26- then {
27- let inv1 = invoke(addr1, "usdn_100", [1], nil)
28- if ((inv1 == inv1))
22+ let wKey = ("w_" + toString(epoch))
23+ if (isDefined(getBoolean(this, wKey)))
24+ then throw(wKey)
25+ else {
26+ let key = (("total_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_" + toString(epoch)) + "_withdrawn_within_epoch")
27+ let withdrawn = valueOrElse(getInteger(addressFromStringValue("3PKZk5TdPCLP2GZviipLFfK46ExTnwkRCBd"), key), 0)
28+ let maxWithdraw = valueOrElse(getInteger(this, "max"), 10000000000)
29+ if ((maxWithdraw > (withdrawn + 50000000)))
2930 then {
30- let inv2 = invoke(addr2, "usdn_100", [2], nil)
31- if ((inv2 == inv2))
31+ let inv1 = invoke(addr1, "usdn_100", [1], nil)
32+ if ((inv1 == inv1))
3233 then {
33- let inv3 = invoke(addr3, "usdn_100", [3], nil)
34- if ((inv3 == inv3))
34+ let inv2 = invoke(addr2, "usdn_100", [2], nil)
35+ if ((inv2 == inv2))
3536 then {
36- let inv4 = invoke(addr4, "usdn_100", [4], nil)
37- if ((inv4 == inv4))
37+ let inv3 = invoke(addr3, "usdn_100", [3], nil)
38+ if ((inv3 == inv3))
3839 then {
39- let inv5 = invoke(addr5, "usdn_100", [5], nil)
40- if ((inv5 == inv5))
41- then nil
40+ let inv4 = invoke(addr4, "usdn_100", [4], nil)
41+ if ((inv4 == inv4))
42+ then {
43+ let inv5 = invoke(addr5, "usdn_100", [5], nil)
44+ if ((inv5 == inv5))
45+ then [BooleanEntry(wKey, true)]
46+ else throw("Strict value is not equal to itself.")
47+ }
4248 else throw("Strict value is not equal to itself.")
4349 }
4450 else throw("Strict value is not equal to itself.")
4753 }
4854 else throw("Strict value is not equal to itself.")
4955 }
50- else throw("Strict value is not equal to itself.")
56+ else throw(("withdrawn: " + toString(withdrawn)))
5157 }
52- else throw(("withdrawn: " + toString(withdrawn)))
5358 }
5459
60+
61+@Verifier(tx)
62+func verify () = match tx {
63+ case inv: InvokeScriptTransaction =>
64+ if (if ((addressFromRecipient(inv.dApp) == this))
65+ then (13000001 >= inv.fee)
66+ else false)
67+ then true
68+ else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
69+ case _ =>
70+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
71+}
5572
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let adminAddress = Address(base58'3P6gGsVQbD2xgmaNxN7Rj3arohPsBxvo5GC')
55
66 let addr1 = Address(base58'3PERR59zRqD6EWRFYTwoXvj9Bz5fRFb5LfF')
77
88 let addr2 = Address(base58'3PP1Xp8pkVm8bicLZiWZJS1WXcL6e1LmZwJ')
99
1010 let addr3 = Address(base58'3P51pTeDGMvtDCE62TbeHRcdzKLcisQStge')
1111
1212 let addr4 = Address(base58'3PKXXxXU1kk7rcRbTpoa7JZi8fdJeg7dZZP')
1313
1414 let addr5 = Address(base58'3PPLNEirvYP6hA3WmcfqRMoXHX8dHKwaqhu')
1515
1616 @Callable(i)
1717 func default () = if ((i.originCaller != adminAddress))
1818 then throw("only admin can do")
1919 else {
2020 let h = height
2121 let epoch = ((h / 1440) * 1440)
22- let key = (("total_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_" + toString(epoch)) + "_withdrawn_within_epoch")
23- let withdrawn = valueOrElse(getInteger(addressFromStringValue("3PKZk5TdPCLP2GZviipLFfK46ExTnwkRCBd"), key), 0)
24- let maxWithdraw = valueOrElse(getInteger(this, "max"), 10000000000)
25- if ((maxWithdraw > (withdrawn + 50000000)))
26- then {
27- let inv1 = invoke(addr1, "usdn_100", [1], nil)
28- if ((inv1 == inv1))
22+ let wKey = ("w_" + toString(epoch))
23+ if (isDefined(getBoolean(this, wKey)))
24+ then throw(wKey)
25+ else {
26+ let key = (("total_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_" + toString(epoch)) + "_withdrawn_within_epoch")
27+ let withdrawn = valueOrElse(getInteger(addressFromStringValue("3PKZk5TdPCLP2GZviipLFfK46ExTnwkRCBd"), key), 0)
28+ let maxWithdraw = valueOrElse(getInteger(this, "max"), 10000000000)
29+ if ((maxWithdraw > (withdrawn + 50000000)))
2930 then {
30- let inv2 = invoke(addr2, "usdn_100", [2], nil)
31- if ((inv2 == inv2))
31+ let inv1 = invoke(addr1, "usdn_100", [1], nil)
32+ if ((inv1 == inv1))
3233 then {
33- let inv3 = invoke(addr3, "usdn_100", [3], nil)
34- if ((inv3 == inv3))
34+ let inv2 = invoke(addr2, "usdn_100", [2], nil)
35+ if ((inv2 == inv2))
3536 then {
36- let inv4 = invoke(addr4, "usdn_100", [4], nil)
37- if ((inv4 == inv4))
37+ let inv3 = invoke(addr3, "usdn_100", [3], nil)
38+ if ((inv3 == inv3))
3839 then {
39- let inv5 = invoke(addr5, "usdn_100", [5], nil)
40- if ((inv5 == inv5))
41- then nil
40+ let inv4 = invoke(addr4, "usdn_100", [4], nil)
41+ if ((inv4 == inv4))
42+ then {
43+ let inv5 = invoke(addr5, "usdn_100", [5], nil)
44+ if ((inv5 == inv5))
45+ then [BooleanEntry(wKey, true)]
46+ else throw("Strict value is not equal to itself.")
47+ }
4248 else throw("Strict value is not equal to itself.")
4349 }
4450 else throw("Strict value is not equal to itself.")
4551 }
4652 else throw("Strict value is not equal to itself.")
4753 }
4854 else throw("Strict value is not equal to itself.")
4955 }
50- else throw("Strict value is not equal to itself.")
56+ else throw(("withdrawn: " + toString(withdrawn)))
5157 }
52- else throw(("withdrawn: " + toString(withdrawn)))
5358 }
5459
60+
61+@Verifier(tx)
62+func verify () = match tx {
63+ case inv: InvokeScriptTransaction =>
64+ if (if ((addressFromRecipient(inv.dApp) == this))
65+ then (13000001 >= inv.fee)
66+ else false)
67+ then true
68+ else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
69+ case _ =>
70+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
71+}
5572

github/deemru/w8io/786bc32 
31.62 ms