tx · D5rdF7FKVz8cd1d8dF2toFAamYCshstB1JxiAmmD9cxp

3PJJbWup1qJeoGuL5LbxZioRsy2MFcRQAx1:  -0.01600000 Waves

2019.03.27 22:21 [1456423] smart account 3PJJbWup1qJeoGuL5LbxZioRsy2MFcRQAx1 > SELF 0.00000000 Waves

{ "type": 13, "id": "D5rdF7FKVz8cd1d8dF2toFAamYCshstB1JxiAmmD9cxp", "fee": 1600000, "feeAssetId": null, "timestamp": 1553714454125, "version": 1, "sender": "3PJJbWup1qJeoGuL5LbxZioRsy2MFcRQAx1", "senderPublicKey": "6FQGWUCRvxriuKimCqfP9yxFxVpvouYoYhEELzo9nHXr", "proofs": [ "LVLR1UMztyJ9w8fEtfTCdZmXzDK8Bjxm9v6DDf43qkhGHE82m4zo2dfc5p75vvVm7F4sJUpaAgeR798rWfdqtW4" ], "script": "base64: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", "chainId": 87, "height": 1456423, "spentComplexity": 0 } View: original | compacted Prev: none Next: 5SAQvmVBfcVBmzPfwhzLbrCTrk1aTbAbAf2tVCrCSAJT Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 2 #-}
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let WhitelistAddr = addressFromString("3P87HeVEvJ8xWiQW6N3fpCBHMxwczeGqyqD")
4+let GatewayAddr = addressFromString("3P9Typ8Wnoxt719juABnCeErU5wAvfcXAU9")
5+let validState = 1000
6+let protector0 = base58'8pUefCHcLDxbcfCg4cnrhy73xMnj5QT9pfp97ptM9sUZ'
7+let protector1 = base58'288ncauvQoCp71m2oXUXC6LMt7yEv8vPLeAD6mo4hF8Q'
8+let protector2 = base58'4q7deHa3UojcsSDSFBvwsj2oXa39BMT9iTMnLfk3Rbpp'
9+match tx {
10+ case tx: TransferTransaction =>
11+ if (!(sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)))
12+ then throw("Transaction must be signed by owner")
13+ else {
14+ let userState = getInteger(extract(WhitelistAddr), toBase58String(tx.sender.bytes))
15+ if (!(isDefined(userState)))
16+ then throw("Address not in whitelist")
17+ else if ((userState != validState))
18+ then throw("User not in valid state")
19+ else if (!(isDefined(tx.assetId)))
20+ then {
21+ let key = (toBase58String(tx.sender.bytes) + "_WAVES")
22+ let minAmount = getInteger(extract(WhitelistAddr), key)
23+ if (isDefined(minAmount))
24+ then {
25+ let curBalance = wavesBalance(extract(tx.sender))
26+ if ((extract(minAmount) > (curBalance - tx.amount)))
27+ then throw("Unable to send such amount (type=2)")
28+ else true
29+ }
30+ else {
31+ let keyOverall = "res_WAVES"
32+ let minAmountOverall = getInteger(extract(WhitelistAddr), keyOverall)
33+ if (isDefined(minAmountOverall))
34+ then {
35+ let curBalance = wavesBalance(extract(tx.sender))
36+ if ((extract(minAmountOverall) > (curBalance - tx.amount)))
37+ then throw("Unable to send such amount (type=1)")
38+ else true
39+ }
40+ else true
41+ }
42+ }
43+ else {
44+ let TGATEId = base58'J6spRevsYuwKEHgzyPfojvdBPq67C8yvErr6e9ny8Jom'
45+ if ((tx.assetId == TGATEId))
46+ then (tx.recipient == GatewayAddr)
47+ else true
48+ }
49+ }
50+ case tx: SetScriptTransaction =>
51+ let p0signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], protector0))
52+ then 1
53+ else 0
54+ let p1signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], protector1))
55+ then 1
56+ else 0
57+ let p2signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], protector2))
58+ then 1
59+ else 0
60+ (((p0signed + p1signed) + p2signed) >= 1)
61+ case tx: LeaseTransaction =>
62+ false
63+ case tx: SponsorFeeTransaction =>
64+ false
65+ case tx: MassTransferTransaction =>
66+ false
67+ case _ =>
68+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
69+}

github/deemru/w8io/3ef1775 
41.06 ms