tx · 46eWTbMTm2nAfwZk3AAKb3wbtG6gJV6v9DhhDyKmGSEF 3N1kVqVL4USL4Uoy2dEN6Rqk2pXhQgfsqUN: -0.01400000 Waves 2019.09.15 16:31 [677405] smart account 3N1kVqVL4USL4Uoy2dEN6Rqk2pXhQgfsqUN > SELF 0.00000000 Waves
{ "type": 13, "id": "46eWTbMTm2nAfwZk3AAKb3wbtG6gJV6v9DhhDyKmGSEF", "fee": 1400000, "feeAssetId": null, "timestamp": 1568554317189, "version": 1, "sender": "3N1kVqVL4USL4Uoy2dEN6Rqk2pXhQgfsqUN", "senderPublicKey": "6qNq3Wug6srPUuAQrggzvR3nvagzN3AzsR4fABCH1qMm", "proofs": [ "2GPHDV1a7GsJXgTziCCQ1dRRosj3yE5nMw5n8K8bfdYJsuVnGZ7jqiCjtboYoGs3NNBBZpEpwPYtEWDCRkALfmya" ], "script": "base64:AAIDAAAAAAAAAAAAAAAAAAAAAgAAAAFpAQAAAAZjcmVhdGUAAAABAAAAAnBrBAAAAAdwYXltZW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIIBQAAAAFpAAAAB3BheW1lbnQCAAAAE1doZXJlIGlzIGEgcGF5bWVudD8DCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACRZb3UgY2FuIHVzZSBvbmx5IFdBVkVTIGF0IHRoZSBtb21lbnQEAAAACmNvZGVFeGlzdHMEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAJwawIAAAAFX3VzZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAJAQAAAAEhAAAAAQUAAAABYgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAcJAQAAAAV0aHJvdwAAAAADBQAAAApjb2RlRXhpc3RzCQAAAgAAAAECAAAAD1RoZSBjb2RlIGV4aXN0cwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAJwawIAAAAHX2Ftb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAAnBrAgAAAAVfdXNlZAcFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAACcGsAAAADc2lnBAAAAAhjb2RlVXNlZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGwAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAACcGsCAAAABV91c2VkAgAAABZUaGUgY29kZSBkb2Vzbid0IGV4aXN0AwUAAAAIY29kZVVzZWQJAAACAAAAAQIAAAAeVGhlIGNvZGUgaGFzIGFscmVhZHkgYmVlbiB1c2VkAwMJAABmAAAAAggFAAAAAWkAAAADZmVlAAAAAAAAB6EgBgkBAAAAAiE9AAAAAggFAAAAAWkAAAAKZmVlQXNzZXRJZAUAAAAEdW5pdAkAAAIAAAABAgAAAC1GZWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4wMDUgV0FWRVMEAAAABXZhbGlkCQAB9AAAAAMICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMJAAJZAAAAAQUAAAADc2lnCQACWQAAAAEFAAAAAnBrBAAAAAZhbW91bnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAACcGsCAAAAB19hbW91bnQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAAnBrAgAAAAVfdXNlZAYFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABkAAAAAgUAAAAGYW1vdW50CAUAAAABaQAAAANmZWUFAAAABHVuaXQFAAAAA25pbAAAAADWLo2U", "chainId": 84, "height": 677405, "spentComplexity": 0 } View: original | compacted Prev: EkR8CrwUQEaoUjfYcmYZaRBDCDRfTqfSC74ccxfHWNwX Next: G9s1UWtKRvZpv2H2KcB16kJbkeRZ2VQvMFUkxUU5txsp Diff:
Old | New | Differences | |
---|---|---|---|
9 | 9 | if (isDefined(payment.assetId)) | |
10 | 10 | then throw("You can use only WAVES at the moment") | |
11 | 11 | else { | |
12 | - | let | |
12 | + | let codeExists = match getBoolean(this, (pk + "_used")) { | |
13 | 13 | case b: Boolean => | |
14 | - | b | |
14 | + | !(b) | |
15 | 15 | case _: Unit => | |
16 | 16 | false | |
17 | 17 | case _ => | |
18 | 18 | throw() | |
19 | 19 | } | |
20 | - | if ( | |
20 | + | if (codeExists) | |
21 | 21 | then throw("The code exists") | |
22 | 22 | else WriteSet([DataEntry((pk + "_amount"), payment.amount), DataEntry((pk + "_used"), false)]) | |
23 | 23 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | ||
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | 7 | func create (pk) = { | |
8 | 8 | let payment = valueOrErrorMessage(i.payment, "Where is a payment?") | |
9 | 9 | if (isDefined(payment.assetId)) | |
10 | 10 | then throw("You can use only WAVES at the moment") | |
11 | 11 | else { | |
12 | - | let | |
12 | + | let codeExists = match getBoolean(this, (pk + "_used")) { | |
13 | 13 | case b: Boolean => | |
14 | - | b | |
14 | + | !(b) | |
15 | 15 | case _: Unit => | |
16 | 16 | false | |
17 | 17 | case _ => | |
18 | 18 | throw() | |
19 | 19 | } | |
20 | - | if ( | |
20 | + | if (codeExists) | |
21 | 21 | then throw("The code exists") | |
22 | 22 | else WriteSet([DataEntry((pk + "_amount"), payment.amount), DataEntry((pk + "_used"), false)]) | |
23 | 23 | } | |
24 | 24 | } | |
25 | 25 | ||
26 | 26 | ||
27 | 27 | ||
28 | 28 | @Callable(i) | |
29 | 29 | func withdraw (pk,sig) = { | |
30 | 30 | let codeUsed = valueOrErrorMessage(getBoolean(this, (pk + "_used")), "The code doesn't exist") | |
31 | 31 | if (codeUsed) | |
32 | 32 | then throw("The code has already been used") | |
33 | 33 | else if (if ((i.fee > 500000)) | |
34 | 34 | then true | |
35 | 35 | else (i.feeAssetId != unit)) | |
36 | 36 | then throw("Fee must be less than or equal to 0.005 WAVES") | |
37 | 37 | else { | |
38 | 38 | let valid = sigVerify(i.caller.bytes, fromBase58String(sig), fromBase58String(pk)) | |
39 | 39 | let amount = getIntegerValue(this, (pk + "_amount")) | |
40 | 40 | ScriptResult(WriteSet([DataEntry((pk + "_used"), true)]), TransferSet([ScriptTransfer(i.caller, (amount + i.fee), unit)])) | |
41 | 41 | } | |
42 | 42 | } | |
43 | 43 | ||
44 | 44 |
github/deemru/w8io/026f985 56.28 ms ◑