tx · 3ZoT7WiTHKzGU7ZT6PYfhBy7U8NQW8ut6iS3evdG6QdT 3MtEFgs9JgvadLTPHxmNTLoYdWeb2q6S8NB: -0.01000000 Waves 2022.05.23 13:41 [2064230] smart account 3MtEFgs9JgvadLTPHxmNTLoYdWeb2q6S8NB > SELF 0.00000000 Waves
{ "type": 13, "id": "3ZoT7WiTHKzGU7ZT6PYfhBy7U8NQW8ut6iS3evdG6QdT", "fee": 1000000, "feeAssetId": null, "timestamp": 1653302464584, "version": 2, "chainId": 84, "sender": "3MtEFgs9JgvadLTPHxmNTLoYdWeb2q6S8NB", "senderPublicKey": "1TPcHyMLh4VbFSScV3oHKxxgdSwY4XC6TaGyrqhFrhd", "proofs": [ "51zEP3eyk5fR25MtZtX9o8RAmxThT1997rQY7eqRCzZyA5paogQ2jGSatfPjcznwcE8Y6GKDH6Pcvib3LzNcC2on" ], "script": "base64:BgIECAISAAIBD2NoZWNrRmVlQXNzZXRJZAEBaQQHJG1hdGNoMAgFAWkKZmVlQXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAVhc3NldAUHJG1hdGNoMAkAzAgCCQDYBAEFBWFzc2V0BQNuaWwJAMwIAgIFd2F2ZXMFA25pbAEMY2hlY2tQYXltZW50AQFpBAFwCQCRAwIIBQFpCHBheW1lbnRzAAADCQBmAggFAXAGYW1vdW50AAAEByRtYXRjaDAIBQFwB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQFYXNzZXQFByRtYXRjaDAJAMwIAgkA2AQBBQVhc3NldAUDbmlsCQDMCAICBXdhdmVzBQNuaWwJAMwIAgAABQNuaWwBAWkBBGNhbGwABAZjYWxsZXIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQMb3JpZ2luQ2FsbGVyCQDYBAEICAUBaQxvcmlnaW5DYWxsZXIFYnl0ZXMECGNhbGxlclBLCQDYBAEIBQFpD2NhbGxlclB1YmxpY0tleQQOb3JpZ2luQ2FsbGVyUEsJANgEAQgFAWkVb3JpZ2luQ2FsbGVyUHVibGljS2V5BA1hZGRyZXNzRnJvbVBLCQCnCAEIBQFpD2NhbGxlclB1YmxpY0tleQQDZmVlCAUBaQNmZWUECmZlZUFzc2V0SWQJAJEDAgkBD2NoZWNrRmVlQXNzZXRJZAEFAWkAAAQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkCQDMCAIJAQtTdHJpbmdFbnRyeQICBmNhbGxlcgUGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQICDG9yaWdpbkNhbGxlcgUMb3JpZ2luQ2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQICCGNhbGxlclBLBQhjYWxsZXJQSwkAzAgCCQELU3RyaW5nRW50cnkCAg5vcmlnaW5DYWxsZXJQSwUOb3JpZ2luQ2FsbGVyUEsJAMwIAgkBDEJvb2xlYW5FbnRyeQICBnNhbWVQSwkAAAIFCGNhbGxlclBLBQ5vcmlnaW5DYWxsZXJQSwkAzAgCCQEMQm9vbGVhbkVudHJ5AgIRYWRkcmVzc0Zyb21QS0lzT2sJAAACBQ1hZGRyZXNzRnJvbVBLCAUBaQZjYWxsZXIJAMwIAgkBDEludGVnZXJFbnRyeQICA2ZlZQUDZmVlCQDMCAIJAQtTdHJpbmdFbnRyeQICCmZlZUFzc2V0SWQFCmZlZUFzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgIEdHhJZAUEdHhJZAUDbmlsANwK6XM=", "height": 2064230, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: NR4GQqYLGivbNd9WFgjvZZPgqANfhUYq9QekWpGJogx Next: 4pM6NhTb2xGyG1CPk2mkzax4ULioEDN6aWm9CygVDPsj Diff:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func checkFeeAssetId (i) = match i.feeAssetId { | |
26 | 26 | func call () = { | |
27 | 27 | let caller = toBase58String(i.caller.bytes) | |
28 | 28 | let originCaller = toBase58String(i.originCaller.bytes) | |
29 | - | let callerPK = i.callerPublicKey | |
30 | - | let originCallerPK = i.originCallerPublicKey | |
29 | + | let callerPK = toBase58String(i.callerPublicKey) | |
30 | + | let originCallerPK = toBase58String(i.originCallerPublicKey) | |
31 | + | let addressFromPK = addressFromPublicKey(i.callerPublicKey) | |
31 | 32 | let fee = i.fee | |
32 | 33 | let feeAssetId = checkFeeAssetId(i)[0] | |
33 | - | let txId = i.transactionId | |
34 | - | [StringEntry("caller", caller), StringEntry("originCaller", originCaller), | |
34 | + | let txId = toBase58String(i.transactionId) | |
35 | + | [StringEntry("caller", caller), StringEntry("originCaller", originCaller), StringEntry("callerPK", callerPK), StringEntry("originCallerPK", originCallerPK), BooleanEntry("samePK", (callerPK == originCallerPK)), BooleanEntry("addressFromPKIsOk", (addressFromPK == i.caller)), IntegerEntry("fee", fee), StringEntry("feeAssetId", feeAssetId), StringEntry("txId", txId)] | |
35 | 36 | } | |
36 | 37 | ||
37 | - | ||
38 | - | @Verifier(tx) | |
39 | - | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
40 | 38 |
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func checkFeeAssetId (i) = match i.feeAssetId { | |
5 | 5 | case asset: ByteVector => | |
6 | 6 | [toBase58String(asset)] | |
7 | 7 | case _ => | |
8 | 8 | ["waves"] | |
9 | 9 | } | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | func checkPayment (i) = { | |
13 | 13 | let p = i.payments[0] | |
14 | 14 | if ((p.amount > 0)) | |
15 | 15 | then match p.assetId { | |
16 | 16 | case asset: ByteVector => | |
17 | 17 | [toBase58String(asset)] | |
18 | 18 | case _ => | |
19 | 19 | ["waves"] | |
20 | 20 | } | |
21 | 21 | else [0] | |
22 | 22 | } | |
23 | 23 | ||
24 | 24 | ||
25 | 25 | @Callable(i) | |
26 | 26 | func call () = { | |
27 | 27 | let caller = toBase58String(i.caller.bytes) | |
28 | 28 | let originCaller = toBase58String(i.originCaller.bytes) | |
29 | - | let callerPK = i.callerPublicKey | |
30 | - | let originCallerPK = i.originCallerPublicKey | |
29 | + | let callerPK = toBase58String(i.callerPublicKey) | |
30 | + | let originCallerPK = toBase58String(i.originCallerPublicKey) | |
31 | + | let addressFromPK = addressFromPublicKey(i.callerPublicKey) | |
31 | 32 | let fee = i.fee | |
32 | 33 | let feeAssetId = checkFeeAssetId(i)[0] | |
33 | - | let txId = i.transactionId | |
34 | - | [StringEntry("caller", caller), StringEntry("originCaller", originCaller), | |
34 | + | let txId = toBase58String(i.transactionId) | |
35 | + | [StringEntry("caller", caller), StringEntry("originCaller", originCaller), StringEntry("callerPK", callerPK), StringEntry("originCallerPK", originCallerPK), BooleanEntry("samePK", (callerPK == originCallerPK)), BooleanEntry("addressFromPKIsOk", (addressFromPK == i.caller)), IntegerEntry("fee", fee), StringEntry("feeAssetId", feeAssetId), StringEntry("txId", txId)] | |
35 | 36 | } | |
36 | 37 | ||
37 | - | ||
38 | - | @Verifier(tx) | |
39 | - | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
40 | 38 |
github/deemru/w8io/169f3d6 30.46 ms ◑