tx · 6zBwn2CVJLQXFzoCB9KXzkUAG6qPHkCKq2D3vvp3RZ2Y 3MtWYHeMrDBXUmBKtXWFq8eBv3p7X7k2fox: -0.01000000 Waves 2022.10.17 13:20 [2276242] smart account 3MtWYHeMrDBXUmBKtXWFq8eBv3p7X7k2fox > SELF 0.00000000 Waves
{ "type": 13, "id": "6zBwn2CVJLQXFzoCB9KXzkUAG6qPHkCKq2D3vvp3RZ2Y", "fee": 1000000, "feeAssetId": null, "timestamp": 1666002107789, "version": 2, "chainId": 84, "sender": "3MtWYHeMrDBXUmBKtXWFq8eBv3p7X7k2fox", "senderPublicKey": "3wSv69WqTiGQVZxyv9hfHfPvXTxrKrWFutonxuaf24vp", "proofs": [ "2EKXhTVQecQF1x4431D69GiizRsTwd6dmtkYLGSR9DH61qEfh7pQPUXdRiNNciRPuwRyBAjgknLi7KaPr5fAfQsx" ], "script": "base64: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", "height": 2276242, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AwMZAK2iLzuoB7DnYSN2nZKMZQJDE94fbgWvn8u5XbPx Next: 4iZyHkmu2beq3hsnxQokWURA3za1JssNxNDvDvwMUYU4 Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let ownerAddress = base58'3MtWYHeMrDBXUmBKtXWFq8eBv3p7X7k2fox' | |
4 | 5 | ||
6 | + | let ownerAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS' | |
7 | + | ||
8 | + | let kGlobalCounter = "GLOBAL_COUNTER" | |
9 | + | ||
10 | + | let feePercent = 5 | |
11 | + | ||
12 | + | func tryGetInteger (key) = { | |
13 | + | let val = match getInteger(this, key) { | |
14 | + | case b: Int => | |
15 | + | b | |
16 | + | case _ => | |
17 | + | 0 | |
18 | + | } | |
19 | + | val | |
20 | + | } | |
21 | + | ||
22 | + | ||
23 | + | func tryGetString (key) = { | |
24 | + | let val = match getString(this, key) { | |
25 | + | case b: String => | |
26 | + | b | |
27 | + | case _ => | |
28 | + | "" | |
29 | + | } | |
30 | + | val | |
31 | + | } | |
32 | + | ||
33 | + | ||
34 | + | func tryGetBoolean (key) = match getBoolean(this, key) { | |
35 | + | case b: Boolean => | |
36 | + | b | |
37 | + | case _ => | |
38 | + | false | |
39 | + | } | |
40 | + | ||
41 | + | ||
42 | + | func getGlobalCounter () = tryGetInteger(kGlobalCounter) | |
43 | + | ||
44 | + | ||
45 | + | func getAssetGenotype (assetId) = if ((value(assetInfo(assetId)).issuer == Address(ownerAddress))) | |
46 | + | then "ART" | |
47 | + | else { | |
48 | + | let asset1 = match getString(Address(ownerAddress), toBase58String(assetId)) { | |
49 | + | case b: String => | |
50 | + | b | |
51 | + | case _ => | |
52 | + | "" | |
53 | + | } | |
54 | + | if ((asset1 != "")) | |
55 | + | then asset1 | |
56 | + | else { | |
57 | + | let asset2 = match getString(Address(ownerAddress), toBase58String(assetId)) { | |
58 | + | case c: String => | |
59 | + | c | |
60 | + | case _ => | |
61 | + | "" | |
62 | + | } | |
63 | + | if ((asset2 != "")) | |
64 | + | then asset2 | |
65 | + | else "" | |
66 | + | } | |
67 | + | } | |
68 | + | ||
69 | + | ||
70 | + | @Callable(i) | |
71 | + | func additem (nft_name,nft_owner,nft_dAppAddress,nft_type,nft_tags,startPrice,instantPrice,description,nft_onSell) = { | |
72 | + | let globalCounter = getGlobalCounter() | |
73 | + | let additemId = (toBase58String(i.transactionId) + toString(globalCounter)) | |
74 | + | let pmt = value(i.payments[0]) | |
75 | + | let assetId = value(pmt.assetId) | |
76 | + | let asset = getAssetGenotype(assetId) | |
77 | + | if ((asset == "")) | |
78 | + | then throw("") | |
79 | + | else [StringEntry((("additem_" + additemId) + "_status"), "open"), BooleanEntry((("additem_" + additemId) + "_nft_onSell"), (nft_onSell == "true")), IntegerEntry(kGlobalCounter, (globalCounter + 1)), StringEntry((("additem_" + toBase58String(assetId)) + "_last"), additemId), StringEntry((("additem_" + additemId) + "_assetGen"), asset), StringEntry((("additem_" + additemId) + "_assetId"), toBase58String(assetId)), IntegerEntry((("additem_" + additemId) + "_startedAt"), lastBlock.timestamp), StringEntry((("additem_" + additemId) + "_owner"), toString(i.originCaller)), StringEntry((("additem_" + additemId) + "_nft_name"), nft_name), StringEntry((("additem_" + additemId) + "_nft_owner"), nft_owner), IntegerEntry((("additem_" + additemId) + "_nft_dAppAddress"), nft_dAppAddress), StringEntry((("additem_" + additemId) + "_nft_type"), nft_type), StringEntry((("additem_" + additemId) + "_nft_tags"), nft_tags), StringEntry((("additem_" + additemId) + "_description"), description), IntegerEntry((("additem_" + additemId) + "_startPrice"), startPrice), BooleanEntry((("additem_" + additemId) + "_isArtefact"), (value(assetInfo(assetId)).issuer == Address(ownerAddress))), IntegerEntry((("additem_" + additemId) + "_instantPrice"), instantPrice), StringEntry((((("address_" + toString(i.originCaller)) + "_additem_") + additemId) + "_lockedNFT"), toBase58String(assetId))] | |
80 | + | } | |
5 | 81 | ||
6 | 82 | ||
7 | 83 | @Verifier(tx) | |
8 | - | func verify () = match tx { | |
9 | - | case d: SetScriptTransaction => | |
10 | - | true | |
11 | - | case d: DataTransaction => | |
12 | - | true | |
13 | - | case _ => | |
14 | - | false | |
15 | - | } | |
84 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
16 | 85 |
github/deemru/w8io/169f3d6 32.54 ms ◑![]()