tx · BKmxNnS46wfZwPUBJgtoSEj2ctp4tY4qnjqCzzUrJGhu

3N1HYdheNiiTtHgi2n3jLAek6N3H4guaciG:  -1.40000000 Waves

2019.11.01 13:42 [745686] smart account 3N1HYdheNiiTtHgi2n3jLAek6N3H4guaciG > SELF 0.00000000 Waves

{ "type": 13, "id": "BKmxNnS46wfZwPUBJgtoSEj2ctp4tY4qnjqCzzUrJGhu", "fee": 140000000, "feeAssetId": null, "timestamp": 1572604696051, "version": 1, "sender": "3N1HYdheNiiTtHgi2n3jLAek6N3H4guaciG", "senderPublicKey": "ABg8e4W86BPhY1TMBNFDsAi6N9qAVf6DqAVAHSXHttzT", "proofs": [ "4Vmce2qfWHUQJV9xQsnDLzsTkTFkPYJfpZnBxDxkAHCM3Jrrn4fJzqSdXKeRqsxBGBEeFPXtVKKy4QZ5gbjLhn7m" ], "script": "base64:AAIDAAAAAAAAAAsIARIAEgUKAwgBCAAAAAcAAAAABE5PTkUCAAAABG5vbmUBAAAAC2dldFN0ckJ5S2V5AAAAAQAAAANrZXkEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAGX3ByaWNlAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAVfZGF0YQEAAAAKZ2V0S2V5SXRlbQAAAAIAAAAIc3VwcGxpZXIAAAAFdGl0bGUJAAEsAAAAAgIAAAAFaXRlbV8JAAJYAAAAAQkAAfcAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAIc3VwcGxpZXIFAAAABXRpdGxlAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAGX293bmVyAQAAABRnZXRWYWx1ZUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0AAAACAAAAAWkBAAAACHB1cmNoYXNlAAAAAAQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAAIGNhbiB1c2UgV0FWRVMgb25seSBhdCB0aGUgbW9tZW50BAAAAA9jdXN0b21lckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAFcHJpY2UEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAATaXRlbV9BX2NvdXBvbl9wcmljZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAwkAAGYAAAACBQAAAAVwcmljZQgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAAucHVyY2hhc2UgYW1vdW50IGNhbm5vdCBiZSBsZXNzIHRoYW4gaXRlbSBwcmljZQMJAABmAAAAAgUAAAAFcHJpY2UIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAECAAAAMHB1cmNoYXNlIGFtb3VudCBjYW5ub3QgYmUgaGlnaGVyIHRoYW4gaXRlbSBwcmljZQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAACBzdGF0dXM6cHVyY2hhc2VfaXRlbV9BX2N1c3RvbWVyXwUAAAAPY3VzdG9tZXJBZGRyZXNzAgAAAAljb25maXJtZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAfcHJpY2U6cHVyY2hhc2VfaXRlbV9BX2N1c3RvbWVyXwUAAAAPY3VzdG9tZXJBZGRyZXNzBQAAAAVwcmljZQUAAAADbmlsAAAAAWkBAAAAB2FkZEl0ZW0AAAADAAAABXRpdGxlAAAABXByaWNlAAAABGRhdGEEAAAAD3N1cHBsaWVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAARpdGVtCQEAAAAKZ2V0S2V5SXRlbQAAAAIFAAAAD3N1cHBsaWVyQWRkcmVzcwUAAAAFdGl0bGUDCQAAZwAAAAIAAAAAAAAAAAAFAAAABXByaWNlCQAAAgAAAAECAAAALnB1cmNoYXNlIGFtb3VudCBjYW5ub3QgYmUgbGVzcyB0aGFuIGl0ZW0gcHJpY2UDCQEAAAACIT0AAAACCQEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAAROT05FCQAAAgAAAAECAAAAGGFuIGl0ZW0gaXMgYWxyZWFkeSBleGlzdAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAAD3N1cHBsaWVyQWRkcmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldEtleUl0ZW1QcmljZQAAAAEFAAAABGl0ZW0FAAAABXByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABBQAAAARpdGVtBQAAAARkYXRhBQAAAANuaWwAAAABAAAAAnR4AQAAABBzdGFuZGFyZFZlcmlmaWVyAAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXnaZKww", "chainId": 84, "height": 745686, "spentComplexity": 0 } View: original | compacted Prev: 6S1bvufpHw8jcvi3tDmxHue3AzkWwij4GaHWHZgyZUKu Next: HrKgdghWapQaKmaEN9smxXMXUr5yhZ7LB5ZbGCenFG16 Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let a = "none"
5+
6+func b (c) = {
7+ let d = {
8+ let e = getString(this, c)
9+ if ($isInstanceOf(e, "String"))
10+ then {
11+ let f = e
12+ f
13+ }
14+ else a
15+ }
16+ d
17+ }
418
519
6-@Callable(a)
20+func g (h) = (h + "_price")
21+
22+
23+func i (h) = (h + "_data")
24+
25+
26+func j (k,l) = ("item_" + toBase58String(sha256(toBytes((k + l)))))
27+
28+
29+func m (h) = (h + "_owner")
30+
31+
32+func n (h) = b(m(h))
33+
34+
35+@Callable(o)
736 func purchase () = {
8- let b = extract(a.payment)
9- if (isDefined(b.assetId))
37+ let p = extract(o.payment)
38+ if (isDefined(p.assetId))
1039 then throw("can use WAVES only at the moment")
1140 else {
12- let c = toBase58String(a.caller.bytes)
13- let d = {
41+ let q = toBase58String(o.caller.bytes)
42+ let r = {
1443 let e = getInteger(this, "item_A_coupon_price")
1544 if ($isInstanceOf(e, "Int"))
1645 then {
1948 }
2049 else 0
2150 }
22- if ((d > b.amount))
51+ if ((r > p.amount))
2352 then throw("purchase amount cannot be less than item price")
24- else if ((d > b.amount))
53+ else if ((r > p.amount))
2554 then throw("purchase amount cannot be higher than item price")
26- else WriteSet([DataEntry(("status:purchase_item_A_customer_" + c), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + c), d)])
55+ else WriteSet([DataEntry(("status:purchase_item_A_customer_" + q), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + q), r)])
2756 }
2857 }
2958
3059
31-@Verifier(g)
32-func h () = sigVerify(g.bodyBytes, g.proofs[0], g.senderPublicKey)
60+
61+@Callable(o)
62+func addItem (l,r,s) = {
63+ let t = toBase58String(o.caller.bytes)
64+ let h = j(t, l)
65+ if ((0 >= r))
66+ then throw("purchase amount cannot be less than item price")
67+ else if ((n(h) != a))
68+ then throw("an item is already exist")
69+ else WriteSet([DataEntry(m(h), t), DataEntry(g(h), r), DataEntry(i(h), s)])
70+ }
71+
72+
73+@Verifier(u)
74+func v () = sigVerify(u.bodyBytes, u.proofs[0], u.senderPublicKey)
3375
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let a = "none"
5+
6+func b (c) = {
7+ let d = {
8+ let e = getString(this, c)
9+ if ($isInstanceOf(e, "String"))
10+ then {
11+ let f = e
12+ f
13+ }
14+ else a
15+ }
16+ d
17+ }
418
519
6-@Callable(a)
20+func g (h) = (h + "_price")
21+
22+
23+func i (h) = (h + "_data")
24+
25+
26+func j (k,l) = ("item_" + toBase58String(sha256(toBytes((k + l)))))
27+
28+
29+func m (h) = (h + "_owner")
30+
31+
32+func n (h) = b(m(h))
33+
34+
35+@Callable(o)
736 func purchase () = {
8- let b = extract(a.payment)
9- if (isDefined(b.assetId))
37+ let p = extract(o.payment)
38+ if (isDefined(p.assetId))
1039 then throw("can use WAVES only at the moment")
1140 else {
12- let c = toBase58String(a.caller.bytes)
13- let d = {
41+ let q = toBase58String(o.caller.bytes)
42+ let r = {
1443 let e = getInteger(this, "item_A_coupon_price")
1544 if ($isInstanceOf(e, "Int"))
1645 then {
1746 let f = e
1847 f
1948 }
2049 else 0
2150 }
22- if ((d > b.amount))
51+ if ((r > p.amount))
2352 then throw("purchase amount cannot be less than item price")
24- else if ((d > b.amount))
53+ else if ((r > p.amount))
2554 then throw("purchase amount cannot be higher than item price")
26- else WriteSet([DataEntry(("status:purchase_item_A_customer_" + c), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + c), d)])
55+ else WriteSet([DataEntry(("status:purchase_item_A_customer_" + q), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + q), r)])
2756 }
2857 }
2958
3059
31-@Verifier(g)
32-func h () = sigVerify(g.bodyBytes, g.proofs[0], g.senderPublicKey)
60+
61+@Callable(o)
62+func addItem (l,r,s) = {
63+ let t = toBase58String(o.caller.bytes)
64+ let h = j(t, l)
65+ if ((0 >= r))
66+ then throw("purchase amount cannot be less than item price")
67+ else if ((n(h) != a))
68+ then throw("an item is already exist")
69+ else WriteSet([DataEntry(m(h), t), DataEntry(g(h), r), DataEntry(i(h), s)])
70+ }
71+
72+
73+@Verifier(u)
74+func v () = sigVerify(u.bodyBytes, u.proofs[0], u.senderPublicKey)
3375

github/deemru/w8io/169f3d6 
44.73 ms