tx · uhgm62U4fdnqNM4reuwS3hUQDtbgcovE76u9RVdFwca 3N6duRDuMLd3cGKK2SyUEQqzwSnszE2ref9: -0.01000000 Waves 2022.05.27 20:07 [2070355] smart account 3N6duRDuMLd3cGKK2SyUEQqzwSnszE2ref9 > SELF 0.00000000 Waves
{ "type": 13, "id": "uhgm62U4fdnqNM4reuwS3hUQDtbgcovE76u9RVdFwca", "fee": 1000000, "feeAssetId": null, "timestamp": 1653671235328, "version": 2, "chainId": 84, "sender": "3N6duRDuMLd3cGKK2SyUEQqzwSnszE2ref9", "senderPublicKey": "6zr1iyU8SSf8L5v5mqH2NPVtQTNceVtet4Hf1wFLqoy9", "proofs": [ "f8jed9j1nfc3fFzXJokQ7DhowDxU8a674j88WDuhmzYBuK3vdqrbHfCqqxTCRtqN8UE4osjDfRMPCpArZTBMhiX" ], "script": "base64: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", "height": 2070355, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5sFckGZotCEAFfYKT1xHHZCrHYzhEfzJZHTMdy4JdCCL Next: none Diff:
Old | New | Differences | |
---|---|---|---|
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | 7 | func start (action,type,valueAction) = { | |
8 | - | let | |
9 | - | let | |
10 | - | let | |
11 | - | let | |
12 | - | let | |
13 | - | let | |
14 | - | let | |
8 | + | let a1 = toBase58String(i.transactionId) | |
9 | + | let a2 = i.caller | |
10 | + | let a3 = value(i.payments[0].amount) | |
11 | + | let a4 = toBase58String(i.caller.bytes) | |
12 | + | let a5 = ((((((("nft_" + type) + "_") + take(a1, 10)) + "_") + a4) + "_") + a1) | |
13 | + | let a6 = take(toString(lastBlock.timestamp), 10) | |
14 | + | let a7 = match getInteger(this, ("exan_balance_" + a4)) { | |
15 | 15 | case t: Int => | |
16 | 16 | t | |
17 | 17 | case _ => | |
18 | 18 | 0 | |
19 | 19 | } | |
20 | - | let | |
20 | + | let a8 = match getInteger(this, ("crown_balance_" + a4)) { | |
21 | 21 | case t: Int => | |
22 | 22 | t | |
23 | 23 | case _ => | |
24 | 24 | 0 | |
25 | 25 | } | |
26 | - | let | |
26 | + | let a9 = match getInteger(this, "historicId") { | |
27 | 27 | case t: Int => | |
28 | 28 | t | |
29 | 29 | case _ => | |
30 | 30 | 0 | |
31 | 31 | } | |
32 | - | let | |
32 | + | let b1 = match getInteger(this, ("List_NFT_" + type)) { | |
33 | 33 | case t: Int => | |
34 | 34 | t | |
35 | 35 | case _ => | |
36 | 36 | 0 | |
37 | 37 | } | |
38 | - | let | |
38 | + | let b2 = match getInteger(this, ("power_" + a4)) { | |
39 | 39 | case t: Int => | |
40 | 40 | t | |
41 | 41 | case _ => | |
42 | 42 | 0 | |
43 | 43 | } | |
44 | - | let | |
44 | + | let b3 = match getInteger(this, valueAction) { | |
45 | 45 | case t: Int => | |
46 | 46 | t | |
47 | 47 | case _ => | |
48 | 48 | 0 | |
49 | 49 | } | |
50 | - | let | |
50 | + | let b4 = match getInteger(this, ("crown_timestamp_" + a4)) { | |
51 | 51 | case t: Int => | |
52 | 52 | t | |
53 | 53 | case _ => | |
54 | 54 | 0 | |
55 | 55 | } | |
56 | - | let | |
56 | + | let b5 = match getInteger(this, ("save_crown_" + a4)) { | |
57 | 57 | case t: Int => | |
58 | 58 | t | |
59 | 59 | case _ => | |
60 | 60 | 0 | |
61 | 61 | } | |
62 | - | let | |
63 | - | let | |
64 | - | let | |
65 | - | let | |
66 | - | let | |
67 | - | let | |
68 | - | then (86400 / ( | |
62 | + | let b6 = (i.payments[0].amount * 10000) | |
63 | + | let b7 = (a7 + b6) | |
64 | + | let b8 = (b2 + b1) | |
65 | + | let b9 = parseIntValue(a6) | |
66 | + | let c1 = (b9 - b4) | |
67 | + | let c2 = if ((b2 > 0)) | |
68 | + | then (86400 / (b2 / 100)) | |
69 | 69 | else 0 | |
70 | - | let | |
71 | - | then (( | |
70 | + | let c3 = if ((c2 > 0)) | |
71 | + | then ((c1 * 100000000) / c2) | |
72 | 72 | else 0 | |
73 | - | let | |
74 | - | let | |
73 | + | let c4 = ((a8 + c3) + b5) | |
74 | + | let c5 = if ((b2 == 0)) | |
75 | 75 | then 0 | |
76 | - | else ( | |
77 | - | if (if ((action == "Buy | |
78 | - | then ( | |
76 | + | else (b5 + c3) | |
77 | + | if (if ((action == "Buy Tokens")) | |
78 | + | then (a3 >= 10000000) | |
79 | 79 | else false) | |
80 | - | then [ | |
81 | - | else if (if ( | |
82 | - | then ( | |
80 | + | then [IntegerEntry(("exan_balance_" + a4), b7), IntegerEntry(((("buy_tokens_" + a4) + "_") + a1), b6)] | |
81 | + | else if (if ((action == "Buy NFT")) | |
82 | + | then ((a3 / 100000) == b1) | |
83 | 83 | else false) | |
84 | - | then (payAmount == 1000000) | |
85 | - | else false) | |
86 | - | then [ScriptTransfer(Address(fromBase58String(type)), 1, fromBase58String(valueAction))] | |
87 | - | else if (if (if ((action == "Request")) | |
88 | - | then (calcTotalCrowns > 0) | |
84 | + | then [Issue(((take(type, 6) + "_") + take(a1, 9)), "", 1, 0, false), IntegerEntry(a5, b1), IntegerEntry(("power_" + a4), b8), IntegerEntry(("crown_timestamp_" + a4), b9), IntegerEntry(("save_crown_" + a4), c5)] | |
85 | + | else if (if (if ((action == "Send NFT")) | |
86 | + | then (a4 == "3NAx9AnXvb5nH6oEynVKoBgfyvSst59Qeg2") | |
89 | 87 | else false) | |
90 | - | then ( | |
88 | + | then (a3 == 1000000) | |
91 | 89 | else false) | |
92 | - | then [IntegerEntry(("crown_balance_" + currentWallet), newBalance), IntegerEntry(("crown_timestamp_" + currentWallet), nowTimestamp), IntegerEntry(("save_crown_" + currentWallet), 0)] | |
93 | - | else throw("We were unable to fulfill your request! Make sure you have enough balance for the transaction!") | |
90 | + | then [ScriptTransfer(Address(fromBase58String(type)), 1, fromBase58String(valueAction))] | |
91 | + | else if (if (if ((action == "Request")) | |
92 | + | then (c3 > 0) | |
93 | + | else false) | |
94 | + | then (a3 == 1000000) | |
95 | + | else false) | |
96 | + | then [IntegerEntry(("crown_balance_" + a4), c4), IntegerEntry(("crown_timestamp_" + a4), b9), IntegerEntry(("save_crown_" + a4), 0)] | |
97 | + | else throw("We were unable to fulfill your request! Make sure you have enough balance for the transaction!") | |
94 | 98 | } | |
95 | 99 | ||
96 | 100 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | ||
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | 7 | func start (action,type,valueAction) = { | |
8 | - | let | |
9 | - | let | |
10 | - | let | |
11 | - | let | |
12 | - | let | |
13 | - | let | |
14 | - | let | |
8 | + | let a1 = toBase58String(i.transactionId) | |
9 | + | let a2 = i.caller | |
10 | + | let a3 = value(i.payments[0].amount) | |
11 | + | let a4 = toBase58String(i.caller.bytes) | |
12 | + | let a5 = ((((((("nft_" + type) + "_") + take(a1, 10)) + "_") + a4) + "_") + a1) | |
13 | + | let a6 = take(toString(lastBlock.timestamp), 10) | |
14 | + | let a7 = match getInteger(this, ("exan_balance_" + a4)) { | |
15 | 15 | case t: Int => | |
16 | 16 | t | |
17 | 17 | case _ => | |
18 | 18 | 0 | |
19 | 19 | } | |
20 | - | let | |
20 | + | let a8 = match getInteger(this, ("crown_balance_" + a4)) { | |
21 | 21 | case t: Int => | |
22 | 22 | t | |
23 | 23 | case _ => | |
24 | 24 | 0 | |
25 | 25 | } | |
26 | - | let | |
26 | + | let a9 = match getInteger(this, "historicId") { | |
27 | 27 | case t: Int => | |
28 | 28 | t | |
29 | 29 | case _ => | |
30 | 30 | 0 | |
31 | 31 | } | |
32 | - | let | |
32 | + | let b1 = match getInteger(this, ("List_NFT_" + type)) { | |
33 | 33 | case t: Int => | |
34 | 34 | t | |
35 | 35 | case _ => | |
36 | 36 | 0 | |
37 | 37 | } | |
38 | - | let | |
38 | + | let b2 = match getInteger(this, ("power_" + a4)) { | |
39 | 39 | case t: Int => | |
40 | 40 | t | |
41 | 41 | case _ => | |
42 | 42 | 0 | |
43 | 43 | } | |
44 | - | let | |
44 | + | let b3 = match getInteger(this, valueAction) { | |
45 | 45 | case t: Int => | |
46 | 46 | t | |
47 | 47 | case _ => | |
48 | 48 | 0 | |
49 | 49 | } | |
50 | - | let | |
50 | + | let b4 = match getInteger(this, ("crown_timestamp_" + a4)) { | |
51 | 51 | case t: Int => | |
52 | 52 | t | |
53 | 53 | case _ => | |
54 | 54 | 0 | |
55 | 55 | } | |
56 | - | let | |
56 | + | let b5 = match getInteger(this, ("save_crown_" + a4)) { | |
57 | 57 | case t: Int => | |
58 | 58 | t | |
59 | 59 | case _ => | |
60 | 60 | 0 | |
61 | 61 | } | |
62 | - | let | |
63 | - | let | |
64 | - | let | |
65 | - | let | |
66 | - | let | |
67 | - | let | |
68 | - | then (86400 / ( | |
62 | + | let b6 = (i.payments[0].amount * 10000) | |
63 | + | let b7 = (a7 + b6) | |
64 | + | let b8 = (b2 + b1) | |
65 | + | let b9 = parseIntValue(a6) | |
66 | + | let c1 = (b9 - b4) | |
67 | + | let c2 = if ((b2 > 0)) | |
68 | + | then (86400 / (b2 / 100)) | |
69 | 69 | else 0 | |
70 | - | let | |
71 | - | then (( | |
70 | + | let c3 = if ((c2 > 0)) | |
71 | + | then ((c1 * 100000000) / c2) | |
72 | 72 | else 0 | |
73 | - | let | |
74 | - | let | |
73 | + | let c4 = ((a8 + c3) + b5) | |
74 | + | let c5 = if ((b2 == 0)) | |
75 | 75 | then 0 | |
76 | - | else ( | |
77 | - | if (if ((action == "Buy | |
78 | - | then ( | |
76 | + | else (b5 + c3) | |
77 | + | if (if ((action == "Buy Tokens")) | |
78 | + | then (a3 >= 10000000) | |
79 | 79 | else false) | |
80 | - | then [ | |
81 | - | else if (if ( | |
82 | - | then ( | |
80 | + | then [IntegerEntry(("exan_balance_" + a4), b7), IntegerEntry(((("buy_tokens_" + a4) + "_") + a1), b6)] | |
81 | + | else if (if ((action == "Buy NFT")) | |
82 | + | then ((a3 / 100000) == b1) | |
83 | 83 | else false) | |
84 | - | then (payAmount == 1000000) | |
85 | - | else false) | |
86 | - | then [ScriptTransfer(Address(fromBase58String(type)), 1, fromBase58String(valueAction))] | |
87 | - | else if (if (if ((action == "Request")) | |
88 | - | then (calcTotalCrowns > 0) | |
84 | + | then [Issue(((take(type, 6) + "_") + take(a1, 9)), "", 1, 0, false), IntegerEntry(a5, b1), IntegerEntry(("power_" + a4), b8), IntegerEntry(("crown_timestamp_" + a4), b9), IntegerEntry(("save_crown_" + a4), c5)] | |
85 | + | else if (if (if ((action == "Send NFT")) | |
86 | + | then (a4 == "3NAx9AnXvb5nH6oEynVKoBgfyvSst59Qeg2") | |
89 | 87 | else false) | |
90 | - | then ( | |
88 | + | then (a3 == 1000000) | |
91 | 89 | else false) | |
92 | - | then [IntegerEntry(("crown_balance_" + currentWallet), newBalance), IntegerEntry(("crown_timestamp_" + currentWallet), nowTimestamp), IntegerEntry(("save_crown_" + currentWallet), 0)] | |
93 | - | else throw("We were unable to fulfill your request! Make sure you have enough balance for the transaction!") | |
90 | + | then [ScriptTransfer(Address(fromBase58String(type)), 1, fromBase58String(valueAction))] | |
91 | + | else if (if (if ((action == "Request")) | |
92 | + | then (c3 > 0) | |
93 | + | else false) | |
94 | + | then (a3 == 1000000) | |
95 | + | else false) | |
96 | + | then [IntegerEntry(("crown_balance_" + a4), c4), IntegerEntry(("crown_timestamp_" + a4), b9), IntegerEntry(("save_crown_" + a4), 0)] | |
97 | + | else throw("We were unable to fulfill your request! Make sure you have enough balance for the transaction!") | |
94 | 98 | } | |
95 | 99 | ||
96 | 100 |
github/deemru/w8io/169f3d6 57.94 ms ◑