tx · C9M5xqSBKM3ZKETyBV7YCSYdEcGcd4gwKvwBdneVkaYf 3N4LH5XizMixv95sbA8KzKsWP79LBJ6EQ1K: -0.04000000 Waves 2020.09.26 17:27 [1194416] smart account 3N4LH5XizMixv95sbA8KzKsWP79LBJ6EQ1K > SELF 0.00000000 Waves
{ "type": 13, "id": "C9M5xqSBKM3ZKETyBV7YCSYdEcGcd4gwKvwBdneVkaYf", "fee": 4000000, "feeAssetId": null, "timestamp": 1601130475998, "version": 2, "chainId": 84, "sender": "3N4LH5XizMixv95sbA8KzKsWP79LBJ6EQ1K", "senderPublicKey": "B1L9ADLhT3AgSCGBbDqFgvHGQg23J4vtF6qx38yTzi2V", "proofs": [ "4hpM2QNG1DjPKY2yDB5uGWziovJb9uYSaKPXMhkD8S4eYydPDVuAuFfmwptM724cm35RBnyM8kKVa3QB7h4Q2CeT" ], "script": "base64:AAIDAAAAAAAAAAQIARIAAAAAAQAAAAAFb3duZXIBAAAAIJSqgv33P33K3xXhz0FACThxfYLi7Vx7YjREdx3vVuhiAAAAAQAAAAFpAQAAAAhwdXJjaGFzZQAAAAAEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACBjYW4gdXNlIFdBVkVTIG9ubHkgYXQgdGhlIG1vbWVudAQAAAAPY3VzdG9tZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABXByaWNlBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAE2l0ZW1fQV9jb3Vwb25fcHJpY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAMJAABmAAAAAgUAAAAFcHJpY2UIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAECAAAALnB1cmNoYXNlIGFtb3VudCBjYW5ub3QgYmUgbGVzcyB0aGFuIGl0ZW0gcHJpY2UDCQAAZgAAAAIIBQAAAANwbXQAAAAGYW1vdW50BQAAAAVwcmljZQkAAAIAAAABAgAAADBwdXJjaGFzZSBhbW91bnQgY2Fubm90IGJlIGhpZ2hlciB0aGFuIGl0ZW0gcHJpY2UJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAgc3RhdHVzOnB1cmNoYXNlX2l0ZW1fQV9jdXN0b21lcl8FAAAAD2N1c3RvbWVyQWRkcmVzcwIAAAAJY29uZmlybWVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAAH3ByaWNlOnB1cmNoYXNlX2l0ZW1fQV9jdXN0b21lcl8FAAAAD2N1c3RvbWVyQWRkcmVzcwUAAAAFcHJpY2UFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAABZAUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAABW93bmVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAF0BQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uBAAAAAFkBQAAAAckbWF0Y2gwBgeG7DW1", "height": 1194416, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: RSWvAjuGA2P3jHpddEEiS5Bdi1jvLPwURAebats6t1Z Next: BuqKXdHaY1UuMPhqL6HRRigRXg1b1miCc7dzkHsAzpWo Diff:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let owner = base58'B1L9ADLhT3AgSCGBbDqFgvHGQg23J4vtF6qx38yTzi2V' | |
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | - | func call () = { | |
8 | - | let asset = Issue("Asset", "", 1, 0, true, unit, 0) | |
9 | - | let assetId = calculateAssetId(asset) | |
10 | - | [BinaryEntry("bin", base58''), BooleanEntry("bool", true), IntegerEntry("int", 1), StringEntry("str", ""), DeleteEntry("str"), asset, Reissue(assetId, 1, false), Burn(assetId, 1), ScriptTransfer(i.caller, 1, assetId)] | |
7 | + | func purchase () = { | |
8 | + | let pmt = extract(i.payment) | |
9 | + | if (isDefined(pmt.assetId)) | |
10 | + | then throw("can use WAVES only at the moment") | |
11 | + | else { | |
12 | + | let customerAddress = toBase58String(i.caller.bytes) | |
13 | + | let price = match getInteger(this, "item_A_coupon_price") { | |
14 | + | case a: Int => | |
15 | + | a | |
16 | + | case _ => | |
17 | + | 0 | |
18 | + | } | |
19 | + | if ((price > pmt.amount)) | |
20 | + | then throw("purchase amount cannot be less than item price") | |
21 | + | else if ((pmt.amount > price)) | |
22 | + | then throw("purchase amount cannot be higher than item price") | |
23 | + | else WriteSet([DataEntry(("status:purchase_item_A_customer_" + customerAddress), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + customerAddress), price)]) | |
24 | + | } | |
11 | 25 | } | |
12 | 26 | ||
13 | 27 |
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let owner = base58'B1L9ADLhT3AgSCGBbDqFgvHGQg23J4vtF6qx38yTzi2V' | |
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | - | func call () = { | |
8 | - | let asset = Issue("Asset", "", 1, 0, true, unit, 0) | |
9 | - | let assetId = calculateAssetId(asset) | |
10 | - | [BinaryEntry("bin", base58''), BooleanEntry("bool", true), IntegerEntry("int", 1), StringEntry("str", ""), DeleteEntry("str"), asset, Reissue(assetId, 1, false), Burn(assetId, 1), ScriptTransfer(i.caller, 1, assetId)] | |
7 | + | func purchase () = { | |
8 | + | let pmt = extract(i.payment) | |
9 | + | if (isDefined(pmt.assetId)) | |
10 | + | then throw("can use WAVES only at the moment") | |
11 | + | else { | |
12 | + | let customerAddress = toBase58String(i.caller.bytes) | |
13 | + | let price = match getInteger(this, "item_A_coupon_price") { | |
14 | + | case a: Int => | |
15 | + | a | |
16 | + | case _ => | |
17 | + | 0 | |
18 | + | } | |
19 | + | if ((price > pmt.amount)) | |
20 | + | then throw("purchase amount cannot be less than item price") | |
21 | + | else if ((pmt.amount > price)) | |
22 | + | then throw("purchase amount cannot be higher than item price") | |
23 | + | else WriteSet([DataEntry(("status:purchase_item_A_customer_" + customerAddress), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + customerAddress), price)]) | |
24 | + | } | |
11 | 25 | } | |
12 | 26 | ||
13 | 27 | ||
14 | 28 | @Verifier(tx) | |
15 | 29 | func verify () = match tx { | |
16 | 30 | case d: SetScriptTransaction => | |
17 | 31 | sigVerify(tx.bodyBytes, tx.proofs[0], owner) | |
18 | 32 | case t: TransferTransaction => | |
19 | 33 | true | |
20 | 34 | case d: DataTransaction => | |
21 | 35 | true | |
22 | 36 | case _ => | |
23 | 37 | false | |
24 | 38 | } | |
25 | 39 |
github/deemru/w8io/169f3d6 40.34 ms ◑