2019.04.18 14:45 [1488058] smart account 3PGZeXfoHHTVvxbn35Cc9WDYsJDpLVossBG > SELF 0.00000000 Waves
{
"type": 13,
"id": "6BssX5EyNbmBGEg3yXWwq7NnYCVP31WwsVrFWoSbp1Sg",
"fee": 1400000,
"feeAssetId": null,
"timestamp": 1555587989649,
"version": 1,
"sender": "3PGZeXfoHHTVvxbn35Cc9WDYsJDpLVossBG",
"senderPublicKey": "FLoFbkYbVTH2Bef5FHLXC7MxWMfkX8ur1aYKbvbYW6nv",
"proofs": [
"UsbDNm6wZ7aGdvrC769hs58Bc5smt7A37rADGA6iuRgY2fBd4Q5PXFgWReYk3TkjcrzTBvwWJbmvjjhwH6GUJwe"
],
"script": "base64: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",
"chainId": 87,
"height": 1488058,
"spentComplexity": 0
}
View: original | compacted
Prev: E79SNZYZf1bi6jCPdiDzPoKaqGUp7mrhZ8dCvTxJKGLA
Next: 49x2JhxSE1ofhDE7Mb4Hrq6KQk4758fwJmZt28q5qN1w
Diff:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 2 #-} |
---|
2 | 2 | | {-# CONTENT_TYPE EXPRESSION #-} |
---|
3 | 3 | | let me = tx.sender |
---|
4 | | - | let node = Address(fromBase58String(extract(getString(me, "node")))) |
---|
| 4 | + | let nodetest = base58'3P2HNUd5VUPLMQkJmctTPEeeHumiPN2GkTb' |
---|
| 5 | + | let nodetestaddr = Address(nodetest) |
---|
| 6 | + | let nodedata = extract(getString(me, "node")) |
---|
| 7 | + | let node = Address(fromBase58String(nodedata)) |
---|
5 | 8 | | let txheight = extract(getInteger(me, "txheight")) |
---|
6 | 9 | | let minbal = extract(getInteger(me, "bal")) |
---|
7 | | - | let nodebal = wavesBalance(node) |
---|
8 | 10 | | let verified = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) |
---|
9 | 11 | | match tx { |
---|
10 | 12 | | case tr: TransferTransaction => |
---|
11 | | - | if (verified) |
---|
12 | | - | then (isDefined(tr.feeAssetId) == (if ((txheight == height)) |
---|
13 | | - | then (nodebal > minbal) |
---|
14 | | - | else false)) |
---|
15 | | - | else false |
---|
| 13 | + | if (!((node == nodetestaddr))) |
---|
| 14 | + | then throw(((("wrong node data: " + nodedata) + ", test: ") + toBase58String(nodetest))) |
---|
| 15 | + | else { |
---|
| 16 | + | let nodebal = wavesBalance(node) |
---|
| 17 | + | if (verified) |
---|
| 18 | + | then (isDefined(tr.feeAssetId) == (if ((txheight == height)) |
---|
| 19 | + | then (nodebal > minbal) |
---|
| 20 | + | else false)) |
---|
| 21 | + | else false |
---|
| 22 | + | } |
---|
16 | 23 | | case ex: ExchangeTransaction|Order => |
---|
17 | | - | if (!(verified)) |
---|
18 | | - | then throw("Wrong signature for exchange") |
---|
19 | | - | else if (!((nodebal > minbal))) |
---|
20 | | - | then throw(((("small bal: node: " + toString(nodebal)) + " /min: ") + toString(minbal))) |
---|
21 | | - | else if (!((txheight == height))) |
---|
22 | | - | then throw(((("wrong height: data: " + toString(txheight)) + " /curr: ") + toString(height))) |
---|
23 | | - | else true |
---|
| 24 | + | if (!((node == nodetestaddr))) |
---|
| 25 | + | then throw(((("wrong node data: " + nodedata) + ", test: ") + toBase58String(nodetest))) |
---|
| 26 | + | else { |
---|
| 27 | + | let nodebal = wavesBalance(node) |
---|
| 28 | + | if (!(verified)) |
---|
| 29 | + | then throw("Wrong signature for exchange") |
---|
| 30 | + | else if (!((nodebal > minbal))) |
---|
| 31 | + | then throw(((("small bal: node: " + toString(nodebal)) + " /min: ") + toString(minbal))) |
---|
| 32 | + | else if (!((txheight == height))) |
---|
| 33 | + | then throw(((("wrong height: data: " + toString(txheight)) + " /curr: ") + toString(height))) |
---|
| 34 | + | else true |
---|
| 35 | + | } |
---|
24 | 36 | | case other: SetScriptTransaction|DataTransaction => |
---|
25 | 37 | | verified |
---|
26 | 38 | | case _ => |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 2 #-} |
---|
2 | 2 | | {-# CONTENT_TYPE EXPRESSION #-} |
---|
3 | 3 | | let me = tx.sender |
---|
4 | | - | let node = Address(fromBase58String(extract(getString(me, "node")))) |
---|
| 4 | + | let nodetest = base58'3P2HNUd5VUPLMQkJmctTPEeeHumiPN2GkTb' |
---|
| 5 | + | let nodetestaddr = Address(nodetest) |
---|
| 6 | + | let nodedata = extract(getString(me, "node")) |
---|
| 7 | + | let node = Address(fromBase58String(nodedata)) |
---|
5 | 8 | | let txheight = extract(getInteger(me, "txheight")) |
---|
6 | 9 | | let minbal = extract(getInteger(me, "bal")) |
---|
7 | | - | let nodebal = wavesBalance(node) |
---|
8 | 10 | | let verified = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) |
---|
9 | 11 | | match tx { |
---|
10 | 12 | | case tr: TransferTransaction => |
---|
11 | | - | if (verified) |
---|
12 | | - | then (isDefined(tr.feeAssetId) == (if ((txheight == height)) |
---|
13 | | - | then (nodebal > minbal) |
---|
14 | | - | else false)) |
---|
15 | | - | else false |
---|
| 13 | + | if (!((node == nodetestaddr))) |
---|
| 14 | + | then throw(((("wrong node data: " + nodedata) + ", test: ") + toBase58String(nodetest))) |
---|
| 15 | + | else { |
---|
| 16 | + | let nodebal = wavesBalance(node) |
---|
| 17 | + | if (verified) |
---|
| 18 | + | then (isDefined(tr.feeAssetId) == (if ((txheight == height)) |
---|
| 19 | + | then (nodebal > minbal) |
---|
| 20 | + | else false)) |
---|
| 21 | + | else false |
---|
| 22 | + | } |
---|
16 | 23 | | case ex: ExchangeTransaction|Order => |
---|
17 | | - | if (!(verified)) |
---|
18 | | - | then throw("Wrong signature for exchange") |
---|
19 | | - | else if (!((nodebal > minbal))) |
---|
20 | | - | then throw(((("small bal: node: " + toString(nodebal)) + " /min: ") + toString(minbal))) |
---|
21 | | - | else if (!((txheight == height))) |
---|
22 | | - | then throw(((("wrong height: data: " + toString(txheight)) + " /curr: ") + toString(height))) |
---|
23 | | - | else true |
---|
| 24 | + | if (!((node == nodetestaddr))) |
---|
| 25 | + | then throw(((("wrong node data: " + nodedata) + ", test: ") + toBase58String(nodetest))) |
---|
| 26 | + | else { |
---|
| 27 | + | let nodebal = wavesBalance(node) |
---|
| 28 | + | if (!(verified)) |
---|
| 29 | + | then throw("Wrong signature for exchange") |
---|
| 30 | + | else if (!((nodebal > minbal))) |
---|
| 31 | + | then throw(((("small bal: node: " + toString(nodebal)) + " /min: ") + toString(minbal))) |
---|
| 32 | + | else if (!((txheight == height))) |
---|
| 33 | + | then throw(((("wrong height: data: " + toString(txheight)) + " /curr: ") + toString(height))) |
---|
| 34 | + | else true |
---|
| 35 | + | } |
---|
24 | 36 | | case other: SetScriptTransaction|DataTransaction => |
---|
25 | 37 | | verified |
---|
26 | 38 | | case _ => |
---|
27 | 39 | | throw("Prohibited transaction") |
---|
28 | 40 | | } |
---|