tx · HMCGqz6S9msHiYVboZp6usfXyahtwVGgXJppsyeDV1Qk 3N61Xs9cTetvoP1uZSrtuRxxJ4A4RCR7a4G: -0.01000000 Waves 2020.10.02 14:43 [1202885] smart account 3N61Xs9cTetvoP1uZSrtuRxxJ4A4RCR7a4G > SELF 0.00000000 Waves
{ "type": 13, "id": "HMCGqz6S9msHiYVboZp6usfXyahtwVGgXJppsyeDV1Qk", "fee": 1000000, "feeAssetId": null, "timestamp": 1601639002039, "version": 2, "chainId": 84, "sender": "3N61Xs9cTetvoP1uZSrtuRxxJ4A4RCR7a4G", "senderPublicKey": "DjYkFAzpGaY6gNruMz81SkVbRsemgpfr6KJbXXgyH3UM", "proofs": [ "4wnSSegpyiYZjychLfESG9S12nv88QXpru8mx7aCTXRTg9AUnBdZSkARF2N3LRcgWf7VULtgVj6es7GrcF96Bunc" ], "script": "base64:AAIDAAAAAAAAAAcIARIDCgEIAAAACwAAAAAETk9ORQIAAAAETk9ORQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQEAAAALZ2V0S2V5T3JkZXIAAAACAAAAC3Nob3BBZGRyZXNzAAAAB29yZGVySWQEAAAAFXNob3BBZGRyZXNzQW5kT3JkZXJJZAkAASwAAAACBQAAAAtzaG9wQWRkcmVzcwUAAAAHb3JkZXJJZAkAASwAAAACAgAAAAZvcmRlcl8JAAJYAAAAAQkAAfcAAAABCQABmwAAAAEFAAAAFXNob3BBZGRyZXNzQW5kT3JkZXJJZAEAAAAWZ2V0S2V5T3JkZXJTaG9wQWRkcmVzcwAAAAEAAAAFb3JkZXIJAAEsAAAAAgUAAAAFb3JkZXICAAAABV9zaG9wAQAAABhnZXRLZXlPcmRlclNoaXBwaW5nQ29zdHMAAAABAAAABW9yZGVyCQABLAAAAAIFAAAABW9yZGVyAgAAAAlfc2hpcHBpbmcBAAAAEmdldEtleU9yZGVyT3JkZXJJZAAAAAEAAAAFb3JkZXIJAAEsAAAAAgUAAAAFb3JkZXICAAAACF9vcmRlcklkAQAAABJnZXRLZXlPcmRlckNvdXJpZXIAAAABAAAABW9yZGVyCQABLAAAAAIFAAAABW9yZGVyAgAAAApfY291cmllcklkAQAAABVnZXRLZXlPcmRlcklzQWNjZXB0ZWQAAAABAAAABW9yZGVyCQABLAAAAAIFAAAABW9yZGVyAgAAAAtfaXNBY2NlcHRlZAEAAAAXZ2V0S2V5T3JkZXJJc0luRGVsaXZlcnkAAAABAAAABW9yZGVyCQABLAAAAAIFAAAABW9yZGVyAgAAAA1faXNJbkRlbGl2ZXJ5AQAAABZnZXRLZXlPcmRlcklzRGVsaXZlcmVkAAAAAQAAAAVvcmRlcgkAASwAAAACBQAAAAVvcmRlcgIAAAAMX2lzRGVsaXZlcmVkAQAAAA9nZXRWYWx1ZU9mT3JkZXIAAAABAAAABW9yZGVyCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAWZ2V0S2V5T3JkZXJTaG9wQWRkcmVzcwAAAAEFAAAABW9yZGVyAAAAAQAAAAFpAQAAAAhhZGRPcmRlcgAAAAEAAAAHb3JkZXJJZAQAAAALc2hvcEFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAADXNoaXBwaW5nQ29zdHMIBQAAAANwbXQAAAAGYW1vdW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAADVDdXJyZW50bHkgeW91IGNhbiBwbGFjZSBvcmRlcnMgb25seSB3aXRoIFdhdmVzIHRva2VucwQAAAAFb3JkZXIJAQAAAAtnZXRLZXlPcmRlcgAAAAIFAAAAC3Nob3BBZGRyZXNzBQAAAAdvcmRlcklkAwkAAGcAAAACAAAAAAAAAAAABQAAAA1zaGlwcGluZ0Nvc3RzCQAAAgAAAAECAAAAO1lvdSBjYW5ub3QgY3JlYXRlIGFuIG9yZGVyIHdpdGggc2hpcHBpbmcgY29zdHMgbG93ZXIgdGhhbiAwAwkBAAAAAiE9AAAAAgkBAAAAD2dldFZhbHVlT2ZPcmRlcgAAAAEFAAAABW9yZGVyBQAAAAROT05FCQAAAgAAAAECAAAAKEFuIG9yZGVyIHdpdGggdGhlIHNhbWUgaWQgYWxyZWFkeSBleGlzdHMJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRLZXlPcmRlclNob3BBZGRyZXNzAAAAAQUAAAAFb3JkZXIFAAAAC3Nob3BBZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0S2V5T3JkZXJTaGlwcGluZ0Nvc3RzAAAAAQUAAAAFb3JkZXIFAAAADXNoaXBwaW5nQ29zdHMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABJnZXRLZXlPcmRlck9yZGVySWQAAAABBQAAAAVvcmRlcgUAAAAHb3JkZXJJZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleU9yZGVyQ291cmllcgAAAAEFAAAABW9yZGVyBQAAAAROT05FCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5T3JkZXJJc0FjY2VwdGVkAAAAAQUAAAAFb3JkZXIHCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAXZ2V0S2V5T3JkZXJJc0luRGVsaXZlcnkAAAABBQAAAAVvcmRlcgcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRLZXlPcmRlcklzRGVsaXZlcmVkAAAAAQUAAAAFb3JkZXIHBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tlefk1nBM=", "height": 1202885, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: Agyc8u9FSrVg8DJXgPZJsxsdiU7da4FMhE89uKPYUayu Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 3 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let NONE = "NONE" | |
5 | + | ||
6 | + | func getStringByKey (key) = match getString(this, key) { | |
7 | + | case a: String => | |
8 | + | a | |
9 | + | case _ => | |
10 | + | NONE | |
11 | + | } | |
12 | + | ||
13 | + | ||
14 | + | func getKeyOrder (shopAddress,orderId) = { | |
15 | + | let shopAddressAndOrderId = (shopAddress + orderId) | |
16 | + | ("order_" + toBase58String(sha256(toBytes(shopAddressAndOrderId)))) | |
17 | + | } | |
18 | + | ||
19 | + | ||
20 | + | func getKeyOrderShopAddress (order) = (order + "_shop") | |
21 | + | ||
22 | + | ||
23 | + | func getKeyOrderShippingCosts (order) = (order + "_shipping") | |
24 | + | ||
25 | + | ||
26 | + | func getKeyOrderOrderId (order) = (order + "_orderId") | |
27 | + | ||
28 | + | ||
29 | + | func getKeyOrderCourier (order) = (order + "_courierId") | |
30 | + | ||
31 | + | ||
32 | + | func getKeyOrderIsAccepted (order) = (order + "_isAccepted") | |
33 | + | ||
34 | + | ||
35 | + | func getKeyOrderIsInDelivery (order) = (order + "_isInDelivery") | |
36 | + | ||
37 | + | ||
38 | + | func getKeyOrderIsDelivered (order) = (order + "_isDelivered") | |
39 | + | ||
40 | + | ||
41 | + | func getValueOfOrder (order) = getStringByKey(getKeyOrderShopAddress(order)) | |
42 | + | ||
43 | + | ||
44 | + | @Callable(i) | |
45 | + | func addOrder (orderId) = { | |
46 | + | let shopAddress = toBase58String(i.caller.bytes) | |
47 | + | let pmt = extract(i.payment) | |
48 | + | let shippingCosts = pmt.amount | |
49 | + | if (isDefined(pmt.assetId)) | |
50 | + | then throw("Currently you can place orders only with Waves tokens") | |
51 | + | else { | |
52 | + | let order = getKeyOrder(shopAddress, orderId) | |
53 | + | if ((0 >= shippingCosts)) | |
54 | + | then throw("You cannot create an order with shipping costs lower than 0") | |
55 | + | else if ((getValueOfOrder(order) != NONE)) | |
56 | + | then throw("An order with the same id already exists") | |
57 | + | else WriteSet([DataEntry(getKeyOrderShopAddress(order), shopAddress), DataEntry(getKeyOrderShippingCosts(order), shippingCosts), DataEntry(getKeyOrderOrderId(order), orderId), DataEntry(getKeyOrderCourier(order), NONE), DataEntry(getKeyOrderIsAccepted(order), false), DataEntry(getKeyOrderIsInDelivery(order), false), DataEntry(getKeyOrderIsDelivered(order), false)]) | |
58 | + | } | |
59 | + | } | |
60 | + | ||
61 | + | ||
62 | + | @Verifier(tx) | |
63 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
64 | + |
github/deemru/w8io/169f3d6 18.02 ms ◑![]()