tx · 3RNTM4psVpJKuvLij89M2WKPpJnjtzEuGSKrmuwimZKt 3PGPjoT3EGzgNyRa5Dq9pQL83vYA1SRpQXx: -0.01000000 Waves 2023.11.24 14:59 [3923336] smart account 3PGPjoT3EGzgNyRa5Dq9pQL83vYA1SRpQXx > SELF 0.00000000 Waves
{ "type": 13, "id": "3RNTM4psVpJKuvLij89M2WKPpJnjtzEuGSKrmuwimZKt", "fee": 1000000, "feeAssetId": null, "timestamp": 1700827175846, "version": 2, "chainId": 87, "sender": "3PGPjoT3EGzgNyRa5Dq9pQL83vYA1SRpQXx", "senderPublicKey": "FRdKC2AWUSU3AmWnpiSUDHqm5JiPkvt1PJ7KAr5qqT9c", "proofs": [ "1bLYdtiA8WZBJ57mm1Dg6ArS4o7xyMKotJCSgTHrUx97jxosxsB8rwJG823vMgJmChG5PLkNs8eTcKAhGyYc42w" ], "script": "base64:BgIECAISAAkAB3ZlcnNpb24CBTEuMC4xAA5kQXBwU2luY2VTdGFydADAqISHwDEABlRSRF9JRAEgytQbGH83jFEqWUF4pDP3i81F+bLKj0t09g8TW7fHU+EABXByaWNlAPhVABJtaW5pbXVtX29yZGVyX3NpemUAgMLXLwAQZGFpbHlfYnVybl9MaW1pdACAlOvcAwACZDYAwIQ9ABJjaGVja19kYXBwX2JhbGFuY2UICQDvBwEFBHRoaXMHcmVndWxhcgEJY291bnRkYXlzAAQHVFNfRGlmZgkAZQIIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQ5kQXBwU2luY2VTdGFydAQJZGF5bnVtYmVyCQBrAwABBQdUU19EaWZmAIC4mSkFCWRheW51bWJlcgEBaQEHQnVyblRSRAAEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABA1jYWxsZXJhZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEEGNsYWltYWJsZV9hbW91bnQJAGsDBQVwcmljZQgFA3BtdAZhbW91bnQFAmQ2BApDdXJyZW50ZGF5CQEJY291bnRkYXlzAAQOUHJldmlvdXNCdXJuZWQEByRtYXRjaDAJAJoIAgUEdGhpcwITVG90YWxfU3VwcGx5X0J1cm5lZAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQLVG90YWxCdXJuZWQJAGQCBQ5QcmV2aW91c0J1cm5lZAgFA3BtdAZhbW91bnQEFFByZXZpb3VzQnVybmVkYnlVc2VyBAckbWF0Y2gwCQCaCAIFBHRoaXMJAKwCAgUNY2FsbGVyYWRkcmVzcwIHX0J1cm5lZAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQRVG90YWxCdXJuZWRieVVzZXIJAGQCBRRQcmV2aW91c0J1cm5lZGJ5VXNlcggFA3BtdAZhbW91bnQEFlByZXZpb3VzUmV3YXJkc0NsYWltZWQEByRtYXRjaDAJAJoIAgUEdGhpcwIVVG90YWxfUmV3YXJkc19DbGFpbWVkAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBNUb3RhbFJld2FyZHNDbGFpbWVkCQBkAgUWUHJldmlvdXNSZXdhcmRzQ2xhaW1lZAUQY2xhaW1hYmxlX2Ftb3VudAQcUHJldmlvdXNSZXdhcmRzQ2xhaW1lZGJ5VXNlcgQHJG1hdGNoMAkAmggCBQR0aGlzCQCsAgIFDWNhbGxlcmFkZHJlc3MCEF9SZXdhcmRzX0NsYWltZWQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEGVRvdGFsUmV3YXJkc0NsYWltZWRieVVzZXIJAGQCBRxQcmV2aW91c1Jld2FyZHNDbGFpbWVkYnlVc2VyBRBjbGFpbWFibGVfYW1vdW50AwkBAiE9AggFA3BtdAdhc3NldElkBQZUUkRfSUQJAAIBCQCsAgIJAKwCAgkArAICAg5FbmdsaXNoOiBPbmx5IAkA2AQBBQZUUkRfSUQCMyBUcmFkZW9pbiBUb2tlbnMgYXJlIEFjY2VwdGVkIHRvIEF0dGFjaCBhcyBwYXltZW50LgJr0KDRg9GB0YHQutC40Lk6INCSINC60LDRh9C10YHRgtCy0LUg0L7Qv9C70LDRgtGLINC/0YDQuNC90LjQvNCw0Y7RgtGB0Y8g0YLQvtC70YzQutC+INGC0L7QutC10L3RiyBUcmFkZW9pbi4DCQBmAgUSbWluaW11bV9vcmRlcl9zaXplCAUDcG10BmFtb3VudAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAh9FbmdsaXNoOiBQbGVhc2UgQXR0YWNoIEF0bGVhc3QgCQCkAwEJAGkCBRJtaW5pbXVtX29yZGVyX3NpemUFAmQ2AgUgVFJELgJJ0KDRg9GB0YHQutC40Lk6INCf0L7QttCw0LvRg9C50YHRgtCwLCDQv9GA0LjQu9C+0LbQuNGC0LUg0L3QtSDQvNC10L3QtdC1IAkApAMBCQBpAgUSbWluaW11bV9vcmRlcl9zaXplBQJkNgIFIFRSRC4DCQBmAggFA3BtdAZhbW91bnQFEGRhaWx5X2J1cm5fTGltaXQJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIxRW5nbGlzaDogVGhlIG1heGltdW0gZGFpbHkgYnVybmluZyBsaW1pdCBpcyBvbmx5IAkApAMBCQBpAgUQZGFpbHlfYnVybl9MaW1pdAUCZDYCESBUUkQgcGVyIEFkZHJlc3MuAnTQoNGD0YHRgdC60LjQuTog0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INC00L3QtdCy0L3QvtC5INC70LjQvNC40YIg0YHQttC40LPQsNC90LjRjyDRgdC+0YHRgtCw0LLQu9GP0LXRgiDQstGB0LXQs9C+IAkApAMBCQBpAgUQZGFpbHlfYnVybl9MaW1pdAUCZDYCBSBUUkQuAwkAZgIFEmNoZWNrX2RhcHBfYmFsYW5jZQUQY2xhaW1hYmxlX2Ftb3VudAkAAgEJAKwCAgIyTm90IEVub3VnaCBXYXZlcyBBdmFpbGFibGUgb24gRGFwcCB0byBCdXJuIFRva2Vucy4CnAHQkiBEYXBwINC90LXQtNC+0YHRgtCw0YLQvtGH0L3QviDQstC+0LvQvSDQtNC70Y8g0YHQttC40LPQsNC90LjRjyDRgtC+0LrQtdC90L7Qsi4g0J/QvtC/0YDQvtGB0LjRgtC1INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0LAg0L/QvtC/0L7Qu9C90LjRgtGMINC10LPQvi4JAMwIAgkBDEludGVnZXJFbnRyeQICE1RvdGFsX1N1cHBseV9CdXJuZWQFC1RvdGFsQnVybmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFDWNhbGxlcmFkZHJlc3MCB19CdXJuZWQFEVRvdGFsQnVybmVkYnlVc2VyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhVUb3RhbF9SZXdhcmRzX0NsYWltZWQFE1RvdGFsUmV3YXJkc0NsYWltZWQJAMwIAgkBDEludGVnZXJFbnRyeQICC0N1cnJlbnRfRGF5BQpDdXJyZW50ZGF5CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFDWNhbGxlcmFkZHJlc3MCEF9SZXdhcmRzX0NsYWltZWQFGVRvdGFsUmV3YXJkc0NsYWltZWRieVVzZXIJAMwIAgkBBEJ1cm4CBQZUUkRfSUQIBQNwbXQGYW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUQY2xhaW1hYmxlX2Ftb3VudAUEdW5pdAUDbmlsAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQ5RJVU=", "height": 3923336, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C9XMaEh7TfHEL8TZPLLiHUKwi2pTPyWPnWU9Vu7MoL6y Next: GsPTEu6LfRcJ9FzsqvU2ht4mTdEqJKMNQ2USqrGyEcGG Diff:
Old | New | Differences | |
---|---|---|---|
63 | 63 | else if ((minimum_order_size > pmt.amount)) | |
64 | 64 | then throw(((((("English: Please Attach Atleast " + toString((minimum_order_size / d6))) + " TRD.") + "Русский: Пожалуйста, приложите не менее ") + toString((minimum_order_size / d6))) + " TRD.")) | |
65 | 65 | else if ((pmt.amount > daily_burn_Limit)) | |
66 | - | then throw(((((("English: The maximum daily burning limit is only " + toString((daily_burn_Limit / d6))) + " TRD.") + "Русский: Максимальный дневной лимит сжигания составляет всего ") + toString(( | |
66 | + | then throw(((((("English: The maximum daily burning limit is only " + toString((daily_burn_Limit / d6))) + " TRD per Address.") + "Русский: Максимальный дневной лимит сжигания составляет всего ") + toString((daily_burn_Limit / d6))) + " TRD.")) | |
67 | 67 | else if ((check_dapp_balance > claimable_amount)) | |
68 | 68 | then throw(("Not Enough Waves Available on Dapp to Burn Tokens." + "В Dapp недостаточно волн для сжигания токенов. Попросите администратора пополнить его.")) | |
69 | 69 | else [IntegerEntry("Total_Supply_Burned", TotalBurned), IntegerEntry((calleraddress + "_Burned"), TotalBurnedbyUser), IntegerEntry("Total_Rewards_Claimed", TotalRewardsClaimed), IntegerEntry("Current_Day", Currentday), IntegerEntry((calleraddress + "_Rewards_Claimed"), TotalRewardsClaimedbyUser), Burn(TRD_ID, pmt.amount), ScriptTransfer(i.caller, claimable_amount, unit)] |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let version = "1.0.1" | |
5 | 5 | ||
6 | 6 | let dAppSinceStart = 1700821800000 | |
7 | 7 | ||
8 | 8 | let TRD_ID = base58'EekwfLSAkbREneBHrXdZSRAEPvmijq71Nf2GDNqBStz4' | |
9 | 9 | ||
10 | 10 | let price = 11000 | |
11 | 11 | ||
12 | 12 | let minimum_order_size = 100000000 | |
13 | 13 | ||
14 | 14 | let daily_burn_Limit = 1000000000 | |
15 | 15 | ||
16 | 16 | let d6 = 1000000 | |
17 | 17 | ||
18 | 18 | let check_dapp_balance = wavesBalance(this).regular | |
19 | 19 | ||
20 | 20 | func countdays () = { | |
21 | 21 | let TS_Diff = (lastBlock.timestamp - dAppSinceStart) | |
22 | 22 | let daynumber = fraction(1, TS_Diff, 86400000) | |
23 | 23 | daynumber | |
24 | 24 | } | |
25 | 25 | ||
26 | 26 | ||
27 | 27 | @Callable(i) | |
28 | 28 | func BurnTRD () = { | |
29 | 29 | let pmt = value(i.payments[0]) | |
30 | 30 | let calleraddress = toBase58String(i.caller.bytes) | |
31 | 31 | let claimable_amount = fraction(price, pmt.amount, d6) | |
32 | 32 | let Currentday = countdays() | |
33 | 33 | let PreviousBurned = match getInteger(this, "Total_Supply_Burned") { | |
34 | 34 | case a: Int => | |
35 | 35 | a | |
36 | 36 | case _ => | |
37 | 37 | 0 | |
38 | 38 | } | |
39 | 39 | let TotalBurned = (PreviousBurned + pmt.amount) | |
40 | 40 | let PreviousBurnedbyUser = match getInteger(this, (calleraddress + "_Burned")) { | |
41 | 41 | case a: Int => | |
42 | 42 | a | |
43 | 43 | case _ => | |
44 | 44 | 0 | |
45 | 45 | } | |
46 | 46 | let TotalBurnedbyUser = (PreviousBurnedbyUser + pmt.amount) | |
47 | 47 | let PreviousRewardsClaimed = match getInteger(this, "Total_Rewards_Claimed") { | |
48 | 48 | case a: Int => | |
49 | 49 | a | |
50 | 50 | case _ => | |
51 | 51 | 0 | |
52 | 52 | } | |
53 | 53 | let TotalRewardsClaimed = (PreviousRewardsClaimed + claimable_amount) | |
54 | 54 | let PreviousRewardsClaimedbyUser = match getInteger(this, (calleraddress + "_Rewards_Claimed")) { | |
55 | 55 | case a: Int => | |
56 | 56 | a | |
57 | 57 | case _ => | |
58 | 58 | 0 | |
59 | 59 | } | |
60 | 60 | let TotalRewardsClaimedbyUser = (PreviousRewardsClaimedbyUser + claimable_amount) | |
61 | 61 | if ((pmt.assetId != TRD_ID)) | |
62 | 62 | then throw(((("English: Only " + toBase58String(TRD_ID)) + " Tradeoin Tokens are Accepted to Attach as payment.") + "Русский: В качестве оплаты принимаются только токены Tradeoin.")) | |
63 | 63 | else if ((minimum_order_size > pmt.amount)) | |
64 | 64 | then throw(((((("English: Please Attach Atleast " + toString((minimum_order_size / d6))) + " TRD.") + "Русский: Пожалуйста, приложите не менее ") + toString((minimum_order_size / d6))) + " TRD.")) | |
65 | 65 | else if ((pmt.amount > daily_burn_Limit)) | |
66 | - | then throw(((((("English: The maximum daily burning limit is only " + toString((daily_burn_Limit / d6))) + " TRD.") + "Русский: Максимальный дневной лимит сжигания составляет всего ") + toString(( | |
66 | + | then throw(((((("English: The maximum daily burning limit is only " + toString((daily_burn_Limit / d6))) + " TRD per Address.") + "Русский: Максимальный дневной лимит сжигания составляет всего ") + toString((daily_burn_Limit / d6))) + " TRD.")) | |
67 | 67 | else if ((check_dapp_balance > claimable_amount)) | |
68 | 68 | then throw(("Not Enough Waves Available on Dapp to Burn Tokens." + "В Dapp недостаточно волн для сжигания токенов. Попросите администратора пополнить его.")) | |
69 | 69 | else [IntegerEntry("Total_Supply_Burned", TotalBurned), IntegerEntry((calleraddress + "_Burned"), TotalBurnedbyUser), IntegerEntry("Total_Rewards_Claimed", TotalRewardsClaimed), IntegerEntry("Current_Day", Currentday), IntegerEntry((calleraddress + "_Rewards_Claimed"), TotalRewardsClaimedbyUser), Burn(TRD_ID, pmt.amount), ScriptTransfer(i.caller, claimable_amount, unit)] | |
70 | 70 | } | |
71 | 71 | ||
72 | 72 | ||
73 | 73 | @Verifier(tx) | |
74 | 74 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
75 | 75 |
github/deemru/w8io/6500d08 28.80 ms ◑