tx · 9su4RZsoPubEQTbv94Z1EBR44kFRJMuvtXe4qjCLuSCr

3P7qGu2sZPXijMaJnyE4xA3edXNu3f8uv5R:  -0.01400000 Waves

2019.11.18 13:18 [1800722] smart account 3P7qGu2sZPXijMaJnyE4xA3edXNu3f8uv5R > SELF 0.00000000 Waves

{ "type": 13, "id": "9su4RZsoPubEQTbv94Z1EBR44kFRJMuvtXe4qjCLuSCr", "fee": 1400000, "feeAssetId": null, "timestamp": 1574072389355, "version": 1, "sender": "3P7qGu2sZPXijMaJnyE4xA3edXNu3f8uv5R", "senderPublicKey": "9yBzJmG4aaJ5d8ChkWbHUpsEwR1SGrPRkWGrz5k2qfYF", "proofs": [ "1x3Cr7DA5yUp3t5mQkKUoJgH2kiUXK553ndSdoMJdLWHZmGd8PAJAZPfiARfPyCDHY9t536nzRnG77TSBucMwjM", "3TQVbUauj5q8Ka9ei6tDE8TWyBFz3MYCGUccX1R85cBaYibv4F22b25CszBZjLuVoDrf4nz43VKzj7vonGNnqxME" ], "script": "base64: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", "chainId": 87, "height": 1800722, "spentComplexity": 0 } View: original | compacted Prev: 9QmVYteEVcHPCUuTpmw1dAwfNHJV3FFhNmvXN2fvu4Q3 Next: G5zviaiy6QKN8aRA7bqpbvhfE2qHcQDBgYBYJUR3BKLp Diff:
OldNewDifferences
88 then sigVerify(t.bodyBytes, t.proofs[0], t.senderPublicKey)
99 else {
1010 let recipientAddress = toString(addressFromRecipient(t.recipient))
11- let addressIsAllowed = getBoolean(addressFromStringValue(whiteListAddress), recipientAddress)
12- match addressIsAllowed {
11+ let whiteListAddressValue = addressFromStringValue(whiteListAddress)
12+ let addressIsAllowed = getBoolean(whiteListAddressValue, recipientAddress)
13+ let addressInWhiteList = match addressIsAllowed {
1314 case b: Boolean =>
1415 (b == true)
1516 case _ =>
16- throw("You can send this token only to white-listed addresses")
17+ false
1718 }
19+ if (if (addressInWhiteList)
20+ then true
21+ else (recipientAddress == whiteListAddress))
22+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
23+ then true
24+ else throw("Signature is required")
25+ else throw("You can send this token only to white-listed addresses")
1826 }
1927 case s: SetScriptTransaction =>
2028 let assetIssuerPublicKey = extract(assetInfo(assetId)).issuerPublicKey
2129 if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
2230 then sigVerify(tx.bodyBytes, tx.proofs[1], assetIssuerPublicKey)
2331 else false
32+ case b: BurnTransaction =>
33+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
2434 case i: InvokeScriptTransaction =>
2535 if ((toString(addressFromRecipient(i.dApp)) == whiteListAddress))
2636 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let assetId = base58'AAx7kicknEXkWUqSF1DKXp7bQHH6Z383Bw9H5v16MgFJ'
44 let whiteListAddress = "3PEvtRxPJyyps7cKRkLbKFAQ8qbdczpLkB9"
55 match tx {
66 case t: TransferTransaction =>
77 if ((t.assetId != assetId))
88 then sigVerify(t.bodyBytes, t.proofs[0], t.senderPublicKey)
99 else {
1010 let recipientAddress = toString(addressFromRecipient(t.recipient))
11- let addressIsAllowed = getBoolean(addressFromStringValue(whiteListAddress), recipientAddress)
12- match addressIsAllowed {
11+ let whiteListAddressValue = addressFromStringValue(whiteListAddress)
12+ let addressIsAllowed = getBoolean(whiteListAddressValue, recipientAddress)
13+ let addressInWhiteList = match addressIsAllowed {
1314 case b: Boolean =>
1415 (b == true)
1516 case _ =>
16- throw("You can send this token only to white-listed addresses")
17+ false
1718 }
19+ if (if (addressInWhiteList)
20+ then true
21+ else (recipientAddress == whiteListAddress))
22+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
23+ then true
24+ else throw("Signature is required")
25+ else throw("You can send this token only to white-listed addresses")
1826 }
1927 case s: SetScriptTransaction =>
2028 let assetIssuerPublicKey = extract(assetInfo(assetId)).issuerPublicKey
2129 if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
2230 then sigVerify(tx.bodyBytes, tx.proofs[1], assetIssuerPublicKey)
2331 else false
32+ case b: BurnTransaction =>
33+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
2434 case i: InvokeScriptTransaction =>
2535 if ((toString(addressFromRecipient(i.dApp)) == whiteListAddress))
2636 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
2737 else false
2838 case _ =>
2939 throw("Bad transaction type")
3040 }

github/deemru/w8io/6500d08 
56.76 ms