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: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",
"chainId": 84,
"height": 745686,
"spentComplexity": 0
}
View: original | compacted
Prev: 6S1bvufpHw8jcvi3tDmxHue3AzkWwij4GaHWHZgyZUKu
Next: HrKgdghWapQaKmaEN9smxXMXUr5yhZ7LB5ZbGCenFG16
Diff:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# 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 | + | } |
---|
4 | 18 | | |
---|
5 | 19 | | |
---|
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) |
---|
7 | 36 | | func purchase () = { |
---|
8 | | - | let b = extract(a.payment) |
---|
9 | | - | if (isDefined(b.assetId)) |
---|
| 37 | + | let p = extract(o.payment) |
---|
| 38 | + | if (isDefined(p.assetId)) |
---|
10 | 39 | | then throw("can use WAVES only at the moment") |
---|
11 | 40 | | else { |
---|
12 | | - | let c = toBase58String(a.caller.bytes) |
---|
13 | | - | let d = { |
---|
| 41 | + | let q = toBase58String(o.caller.bytes) |
---|
| 42 | + | let r = { |
---|
14 | 43 | | let e = getInteger(this, "item_A_coupon_price") |
---|
15 | 44 | | if ($isInstanceOf(e, "Int")) |
---|
16 | 45 | | then { |
---|
|
19 | 48 | | } |
---|
20 | 49 | | else 0 |
---|
21 | 50 | | } |
---|
22 | | - | if ((d > b.amount)) |
---|
| 51 | + | if ((r > p.amount)) |
---|
23 | 52 | | then throw("purchase amount cannot be less than item price") |
---|
24 | | - | else if ((d > b.amount)) |
---|
| 53 | + | else if ((r > p.amount)) |
---|
25 | 54 | | 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)]) |
---|
27 | 56 | | } |
---|
28 | 57 | | } |
---|
29 | 58 | | |
---|
30 | 59 | | |
---|
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) |
---|
33 | 75 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# 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 | + | } |
---|
4 | 18 | | |
---|
5 | 19 | | |
---|
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) |
---|
7 | 36 | | func purchase () = { |
---|
8 | | - | let b = extract(a.payment) |
---|
9 | | - | if (isDefined(b.assetId)) |
---|
| 37 | + | let p = extract(o.payment) |
---|
| 38 | + | if (isDefined(p.assetId)) |
---|
10 | 39 | | then throw("can use WAVES only at the moment") |
---|
11 | 40 | | else { |
---|
12 | | - | let c = toBase58String(a.caller.bytes) |
---|
13 | | - | let d = { |
---|
| 41 | + | let q = toBase58String(o.caller.bytes) |
---|
| 42 | + | let r = { |
---|
14 | 43 | | let e = getInteger(this, "item_A_coupon_price") |
---|
15 | 44 | | if ($isInstanceOf(e, "Int")) |
---|
16 | 45 | | then { |
---|
17 | 46 | | let f = e |
---|
18 | 47 | | f |
---|
19 | 48 | | } |
---|
20 | 49 | | else 0 |
---|
21 | 50 | | } |
---|
22 | | - | if ((d > b.amount)) |
---|
| 51 | + | if ((r > p.amount)) |
---|
23 | 52 | | then throw("purchase amount cannot be less than item price") |
---|
24 | | - | else if ((d > b.amount)) |
---|
| 53 | + | else if ((r > p.amount)) |
---|
25 | 54 | | 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)]) |
---|
27 | 56 | | } |
---|
28 | 57 | | } |
---|
29 | 58 | | |
---|
30 | 59 | | |
---|
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) |
---|
33 | 75 | | |
---|