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