tx · 8bQBiW1Ls5PgrUgZGde395t6gyaUzUYsCT9WTAwS2hpE 3ND6EFqVoR6r9jWRL87nSf2Zs5AMiNnGWD3: -0.01000000 Waves 2021.07.06 17:41 [1601882] smart account 3ND6EFqVoR6r9jWRL87nSf2Zs5AMiNnGWD3 > SELF 0.00000000 Waves
{ "type": 13, "id": "8bQBiW1Ls5PgrUgZGde395t6gyaUzUYsCT9WTAwS2hpE", "fee": 1000000, "feeAssetId": null, "timestamp": 1625582518177, "version": 2, "chainId": 84, "sender": "3ND6EFqVoR6r9jWRL87nSf2Zs5AMiNnGWD3", "senderPublicKey": "KUUrvP3E8GJqJe8m89JhbWoFxA5Y6ZArXcUs6XDthT6", "proofs": [ "5tTuXKVFBBfUBEi1U8UiDJ49p3ywCMeXZ192ukN1kMjUBVSNKJCuJukx27KKTKoSkc44cRL7rTuMRAHxy5Jm8Q2T" ], "script": "base64:AAIDAAAAAAAAASQIARIFCgMIAQgaCgoCYTESBE5PTkUaEAoCYTISCmdldEtleUl0ZW0aDgoCYTMSCHN1cHBsaWVyGgsKAmE0EgV0aXRsZRoTCgJhNRINc3VwcGxpZXJUaXRsZRoYCgJhNhISZ2V0S2V5SXRlbVN1cHBsaWVyGgoKAmE3EgRpdGVtGhUKAmE4Eg9nZXRLZXlJdGVtUHJpY2UaFAoCYTkSDmdldEtleUl0ZW1EYXRhGhoKAmIxEhRnZXRWYWx1ZUl0ZW1TdXBwbGllchoJCgJiMhIDa2V5Gg0KAmIzEgckbWF0Y2gwGgcKAmI0EgF0GgcKAmI1EgFpGgsKAmI2EgVwcmljZRoKCgJiNxIEZGF0YRoVCgJiOBIPc3VwcGxpZXJBZGRyZXNzAAAABgAAAAACYTECAAAABE5PTkUBAAAAAmEyAAAAAgAAAAJhMwAAAAJhNAQAAAACYTUJAAEsAAAAAgUAAAACYTMFAAAAAmE0CQABLAAAAAICAAAABWl0ZW1fCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABBQAAAAJhNQEAAAACYTYAAAABAAAAAmE3CQABLAAAAAIFAAAAAmE3AgAAAAZfb3duZXIBAAAAAmE4AAAAAQAAAAJhNwkAASwAAAACBQAAAAJhNwIAAAAGX3ByaWNlAQAAAAJhOQAAAAEAAAACYTcJAAEsAAAAAgUAAAACYTcCAAAABV9kYXRhAQAAAAJiMQAAAAEAAAACYTcEAAAAAmIyBAAAAAJiMwkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAAmE3AgAAAAZfb3duZXIDCQAAAQAAAAIFAAAAAmIzAgAAAAZTdHJpbmcEAAAAAmI0BQAAAAJiMwUAAAACYjQFAAAAAmExBQAAAAJiMgAAAAEAAAACYjUBAAAAB2FkZEl0ZW0AAAADAAAAAmE0AAAAAmI2AAAAAmI3BAAAAAJiOAkAAlgAAAABCAgFAAAAAmI1AAAABmNhbGxlcgAAAAVieXRlcwQAAAACYTcJAQAAAAJhMgAAAAIFAAAAAmI4BQAAAAJhNAMJAABnAAAAAgAAAAAAAAAAAAUAAAACYjYJAAACAAAAAQIAAAAucHVyY2hhc2UgYW1vdW50IGNhbm5vdCBiZSBsZXNzIHRoYW4gaXRlbSBwcmljZQMJAQAAAAIhPQAAAAIJAQAAAAJiMQAAAAEFAAAAAmE3BQAAAAJhMQkAAAIAAAABAgAAABZBbiBpdGVtIGFscmVhZHkgZXhpc3RzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAACYTYAAAABBQAAAAJhNwUAAAACYjgJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAAJhOAAAAAEFAAAAAmE3BQAAAAJiNgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAAmE5AAAAAQUAAAACYTcFAAAAAmI3BQAAAANuaWwAAAAAI4HrJQ==", "height": 1601882, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GaKGnfCY9v2xN684AoLBqMn5mE8zGVxwihPf5eciB6T3 Next: 8H1ayE7nm48vp3Rn6eMhteBorsxKc8rGKTMvS31on4qt Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let NONE = "NONE" | |
5 | + | ||
6 | + | func getKeyItem (supplier,title) = { | |
7 | + | let supplierTitle = (supplier + title) | |
8 | + | ("item_" + toBase58String(sha256(toBytes(supplierTitle)))) | |
9 | + | } | |
10 | + | ||
11 | + | ||
12 | + | func getKeyItemSupplier (item) = (item + "_owner") | |
13 | + | ||
14 | + | ||
15 | + | func getKeyItemPrice (item) = (item + "_price") | |
16 | + | ||
17 | + | ||
18 | + | func getKeyItemData (item) = (item + "_data") | |
19 | + | ||
20 | + | ||
21 | + | func getValueItemSupplier (item) = { | |
22 | + | let key = match getString(this, (item + "_owner")) { | |
23 | + | case t: String => | |
24 | + | t | |
25 | + | case _ => | |
26 | + | NONE | |
27 | + | } | |
28 | + | key | |
29 | + | } | |
4 | 30 | ||
5 | 31 | ||
6 | 32 | @Callable(i) | |
7 | - | func addcoupon (key,name,price) = WriteSet([DataEntry((("item_" + key) + "_coupon_name"), name), DataEntry((("item_" + key) + "_coupon_price"), price)]) | |
8 | - | ||
9 | - | ||
10 | - | ||
11 | - | @Callable(i) | |
12 | - | func purchase (key) = { | |
13 | - | let pmt = extract(i.payment) | |
14 | - | if (isDefined(pmt.assetId)) | |
15 | - | then throw("Can use waves only at the moment") | |
16 | - | else { | |
17 | - | let cutomerAddress = toBase58String(i.caller.bytes) | |
18 | - | let price = match getInteger(this, (("item_" + key) + "_coupon_price")) { | |
19 | - | case a: Int => | |
20 | - | a | |
21 | - | case _ => | |
22 | - | 0 | |
23 | - | } | |
24 | - | if ((price > pmt.amount)) | |
25 | - | then throw("Purchase amount cannot be less then item price") | |
26 | - | else if ((pmt.amount > price)) | |
27 | - | then throw("Purchase amount cannot be less then item price") | |
28 | - | else WriteSet([DataEntry(((("status:purchase_item_" + key) + "_customer_") + cutomerAddress), "confirmed"), DataEntry(((("price:purchase_item_" + key) + "_customer_") + cutomerAddress), price)]) | |
29 | - | } | |
33 | + | func addItem (title,price,data) = { | |
34 | + | let supplierAddress = toBase58String(i.caller.bytes) | |
35 | + | let item = getKeyItem(supplierAddress, title) | |
36 | + | if ((0 >= price)) | |
37 | + | then throw("purchase amount cannot be less than item price") | |
38 | + | else if ((getValueItemSupplier(item) != NONE)) | |
39 | + | then throw("An item already exists") | |
40 | + | else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)]) | |
30 | 41 | } | |
31 | 42 | ||
32 | 43 |
github/deemru/w8io/c3f4982 22.59 ms ◑