tx · HyPgGuaHk9PTk6ied7hqhdF7SNc6Zi6LtKQurMdKxaVy 3PGPjoT3EGzgNyRa5Dq9pQL83vYA1SRpQXx: -0.01000000 Waves 2023.11.24 16:19 [3923421] smart account 3PGPjoT3EGzgNyRa5Dq9pQL83vYA1SRpQXx > SELF 0.00000000 Waves
{ "type": 13, "id": "HyPgGuaHk9PTk6ied7hqhdF7SNc6Zi6LtKQurMdKxaVy", "fee": 1000000, "feeAssetId": null, "timestamp": 1700831966432, "version": 2, "chainId": 87, "sender": "3PGPjoT3EGzgNyRa5Dq9pQL83vYA1SRpQXx", "senderPublicKey": "FRdKC2AWUSU3AmWnpiSUDHqm5JiPkvt1PJ7KAr5qqT9c", "proofs": [ "3n76MBZm1zGuazFVjiCLsKyGBdou569Z89odpzk44T1s7gvUJXZfNiPU7FNkaQPQAW74AfET151MqqJTFPiYN3Za" ], "script": "base64:BgIJCAISABIDCgEBCgAHdmVyc2lvbgIFMS4wLjEADmRBcHBTaW5jZVN0YXJ0AMCohIfAMQAGVFJEX0lEASDK1BsYfzeMUSpZQXikM/eLzUX5ssqPS3T2DxNbt8dT4QAFcHJpY2UA+FUAEm1pbmltdW1fb3JkZXJfc2l6ZQCAwtcvABBkYWlseV9idXJuX0xpbWl0CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhFEYWlseV9CdXJuX0xpbWl0cwAFYWRtaW4JAKcIAQEgON+PCdjVr2lARV1VFXv4tLT1TNztXiQqwyT5riBDaQIAAmQ2AMCEPQASY2hlY2tfZGFwcF9iYWxhbmNlCAkA7wcBBQR0aGlzB3JlZ3VsYXIBCWNvdW50ZGF5cwAEB1RTX0RpZmYJAGUCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUOZEFwcFNpbmNlU3RhcnQECWRheW51bWJlcgkAawMAAQUHVFNfRGlmZgCAuJkpBQlkYXludW1iZXICAWkBB0J1cm5UUkQABANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQNY2FsbGVyYWRkcmVzcwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBBBjbGFpbWFibGVfYW1vdW50CQBrAwUFcHJpY2UIBQNwbXQGYW1vdW50BQJkNgQKQ3VycmVudGRheQkBCWNvdW50ZGF5cwAEDlByZXZpb3VzQnVybmVkBAckbWF0Y2gwCQCaCAIFBHRoaXMCE1RvdGFsX1N1cHBseV9CdXJuZWQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1RvdGFsQnVybmVkCQBkAgUOUHJldmlvdXNCdXJuZWQIBQNwbXQGYW1vdW50BBRQcmV2aW91c0J1cm5lZGJ5VXNlcgQHJG1hdGNoMAkAmggCBQR0aGlzCQCsAgIFDWNhbGxlcmFkZHJlc3MCB19CdXJuZWQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEVRvdGFsQnVybmVkYnlVc2VyCQBkAgUUUHJldmlvdXNCdXJuZWRieVVzZXIIBQNwbXQGYW1vdW50BBZQcmV2aW91c1Jld2FyZHNDbGFpbWVkBAckbWF0Y2gwCQCaCAIFBHRoaXMCFVRvdGFsX1Jld2FyZHNfQ2xhaW1lZAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQTVG90YWxSZXdhcmRzQ2xhaW1lZAkAZAIFFlByZXZpb3VzUmV3YXJkc0NsYWltZWQFEGNsYWltYWJsZV9hbW91bnQEHFByZXZpb3VzUmV3YXJkc0NsYWltZWRieVVzZXIEByRtYXRjaDAJAJoIAgUEdGhpcwkArAICBQ1jYWxsZXJhZGRyZXNzAhBfUmV3YXJkc19DbGFpbWVkAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBlUb3RhbFJld2FyZHNDbGFpbWVkYnlVc2VyCQBkAgUcUHJldmlvdXNSZXdhcmRzQ2xhaW1lZGJ5VXNlcgUQY2xhaW1hYmxlX2Ftb3VudAMJAQIhPQIIBQNwbXQHYXNzZXRJZAUGVFJEX0lECQACAQkArAICCQCsAgIJAKwCAgIORW5nbGlzaDogT25seSAJANgEAQUGVFJEX0lEAjMgVHJhZGVvaW4gVG9rZW5zIGFyZSBBY2NlcHRlZCB0byBBdHRhY2ggYXMgcGF5bWVudC4Ca9Cg0YPRgdGB0LrQuNC5OiDQkiDQutCw0YfQtdGB0YLQstC1INC+0L/Qu9Cw0YLRiyDQv9GA0LjQvdC40LzQsNGO0YLRgdGPINGC0L7Qu9GM0LrQviDRgtC+0LrQtdC90YsgVHJhZGVvaW4uAwkAZgIFEm1pbmltdW1fb3JkZXJfc2l6ZQgFA3BtdAZhbW91bnQJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIfRW5nbGlzaDogUGxlYXNlIEF0dGFjaCBBdGxlYXN0IAkApAMBCQBpAgUSbWluaW11bV9vcmRlcl9zaXplBQJkNgIFIFRSRC4CSdCg0YPRgdGB0LrQuNC5OiDQn9C+0LbQsNC70YPQudGB0YLQsCwg0L/RgNC40LvQvtC20LjRgtC1INC90LUg0LzQtdC90LXQtSAJAKQDAQkAaQIFEm1pbmltdW1fb3JkZXJfc2l6ZQUCZDYCBSBUUkQuAwkAZgIIBQNwbXQGYW1vdW50BRBkYWlseV9idXJuX0xpbWl0CQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICMUVuZ2xpc2g6IFRoZSBtYXhpbXVtIGRhaWx5IGJ1cm5pbmcgbGltaXQgaXMgb25seSAJAKQDAQkAaQIFEGRhaWx5X2J1cm5fTGltaXQFAmQ2AhEgVFJEIHBlciBBZGRyZXNzLgJ00KDRg9GB0YHQutC40Lk6INCc0LDQutGB0LjQvNCw0LvRjNC90YvQuSDQtNC90LXQstC90L7QuSDQu9C40LzQuNGCINGB0LbQuNCz0LDQvdC40Y8g0YHQvtGB0YLQsNCy0LvRj9C10YIg0LLRgdC10LPQviAJAKQDAQkAaQIFEGRhaWx5X2J1cm5fTGltaXQFAmQ2AgUgVFJELgMJAGYCBRBjbGFpbWFibGVfYW1vdW50BRJjaGVja19kYXBwX2JhbGFuY2UJAAIBCQCsAgICMk5vdCBFbm91Z2ggV2F2ZXMgQXZhaWxhYmxlIG9uIERhcHAgdG8gQnVybiBUb2tlbnMuApwB0JIgRGFwcCDQvdC10LTQvtGB0YLQsNGC0L7Rh9C90L4g0LLQvtC70L0g0LTQu9GPINGB0LbQuNCz0LDQvdC40Y8g0YLQvtC60LXQvdC+0LIuINCf0L7Qv9GA0L7RgdC40YLQtSDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNCwINC/0L7Qv9C+0LvQvdC40YLRjCDQtdCz0L4uCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhNUb3RhbF9TdXBwbHlfQnVybmVkBQtUb3RhbEJ1cm5lZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQ1jYWxsZXJhZGRyZXNzAgdfQnVybmVkBRFUb3RhbEJ1cm5lZGJ5VXNlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgIVVG90YWxfUmV3YXJkc19DbGFpbWVkBRNUb3RhbFJld2FyZHNDbGFpbWVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtDdXJyZW50X0RheQUKQ3VycmVudGRheQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQ1jYWxsZXJhZGRyZXNzAhBfUmV3YXJkc19DbGFpbWVkBRlUb3RhbFJld2FyZHNDbGFpbWVkYnlVc2VyCQDMCAIJAQRCdXJuAgUGVFJEX0lECAUDcG10BmFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFEGNsYWltYWJsZV9hbW91bnQFBHVuaXQFA25pbAFpARJ1cGRhdGVfYnVybl9saW1pdHMBBkFtb3VudAQQbmV3X2RhaWx5X2xpbWl0cwkAaAIFBkFtb3VudAUCZDYDCQECIT0CCAUBaQZjYWxsZXIFBWFkbWluCQACAQkArAICCQCsAgICJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAKUIAQUFYWRtaW4CIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4JAMwIAgkBDEludGVnZXJFbnRyeQICEURhaWx5X0J1cm5fTGltaXRzBRBuZXdfZGFpbHlfbGltaXRzBQNuaWwBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5uXeIZg==", "height": 3923421, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GfGtCkgjhyrSzja583ZwV3TpcNZeuFvXJqdMTCkxASFp Next: none Diff:
Old | New | Differences | |
---|---|---|---|
11 | 11 | ||
12 | 12 | let minimum_order_size = 100000000 | |
13 | 13 | ||
14 | - | let daily_burn_Limit = 1000000000 | |
14 | + | let daily_burn_Limit = getIntegerValue(this, "Daily_Burn_Limits") | |
15 | + | ||
16 | + | let admin = addressFromPublicKey(base58'4q1YkzkM4pYzHp4jBtugQowp6LREYGvhceFaBBAVt3bo') | |
15 | 17 | ||
16 | 18 | let d6 = 1000000 | |
17 | 19 | ||
70 | 72 | } | |
71 | 73 | ||
72 | 74 | ||
75 | + | ||
76 | + | @Callable(i) | |
77 | + | func update_burn_limits (Amount) = { | |
78 | + | let new_daily_limits = (Amount * d6) | |
79 | + | if ((i.caller != admin)) | |
80 | + | then throw((("This Address is not Authorized. Only " + toString(admin)) + " is Authorized Address to Sign it.")) | |
81 | + | else [IntegerEntry("Daily_Burn_Limits", new_daily_limits)] | |
82 | + | } | |
83 | + | ||
84 | + | ||
73 | 85 | @Verifier(tx) | |
74 | 86 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
75 | 87 |
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 | - | let daily_burn_Limit = 1000000000 | |
14 | + | let daily_burn_Limit = getIntegerValue(this, "Daily_Burn_Limits") | |
15 | + | ||
16 | + | let admin = addressFromPublicKey(base58'4q1YkzkM4pYzHp4jBtugQowp6LREYGvhceFaBBAVt3bo') | |
15 | 17 | ||
16 | 18 | let d6 = 1000000 | |
17 | 19 | ||
18 | 20 | let check_dapp_balance = wavesBalance(this).regular | |
19 | 21 | ||
20 | 22 | func countdays () = { | |
21 | 23 | let TS_Diff = (lastBlock.timestamp - dAppSinceStart) | |
22 | 24 | let daynumber = fraction(1, TS_Diff, 86400000) | |
23 | 25 | daynumber | |
24 | 26 | } | |
25 | 27 | ||
26 | 28 | ||
27 | 29 | @Callable(i) | |
28 | 30 | func BurnTRD () = { | |
29 | 31 | let pmt = value(i.payments[0]) | |
30 | 32 | let calleraddress = toBase58String(i.caller.bytes) | |
31 | 33 | let claimable_amount = fraction(price, pmt.amount, d6) | |
32 | 34 | let Currentday = countdays() | |
33 | 35 | let PreviousBurned = match getInteger(this, "Total_Supply_Burned") { | |
34 | 36 | case a: Int => | |
35 | 37 | a | |
36 | 38 | case _ => | |
37 | 39 | 0 | |
38 | 40 | } | |
39 | 41 | let TotalBurned = (PreviousBurned + pmt.amount) | |
40 | 42 | let PreviousBurnedbyUser = match getInteger(this, (calleraddress + "_Burned")) { | |
41 | 43 | case a: Int => | |
42 | 44 | a | |
43 | 45 | case _ => | |
44 | 46 | 0 | |
45 | 47 | } | |
46 | 48 | let TotalBurnedbyUser = (PreviousBurnedbyUser + pmt.amount) | |
47 | 49 | let PreviousRewardsClaimed = match getInteger(this, "Total_Rewards_Claimed") { | |
48 | 50 | case a: Int => | |
49 | 51 | a | |
50 | 52 | case _ => | |
51 | 53 | 0 | |
52 | 54 | } | |
53 | 55 | let TotalRewardsClaimed = (PreviousRewardsClaimed + claimable_amount) | |
54 | 56 | let PreviousRewardsClaimedbyUser = match getInteger(this, (calleraddress + "_Rewards_Claimed")) { | |
55 | 57 | case a: Int => | |
56 | 58 | a | |
57 | 59 | case _ => | |
58 | 60 | 0 | |
59 | 61 | } | |
60 | 62 | let TotalRewardsClaimedbyUser = (PreviousRewardsClaimedbyUser + claimable_amount) | |
61 | 63 | if ((pmt.assetId != TRD_ID)) | |
62 | 64 | then throw(((("English: Only " + toBase58String(TRD_ID)) + " Tradeoin Tokens are Accepted to Attach as payment.") + "Русский: В качестве оплаты принимаются только токены Tradeoin.")) | |
63 | 65 | else if ((minimum_order_size > pmt.amount)) | |
64 | 66 | then throw(((((("English: Please Attach Atleast " + toString((minimum_order_size / d6))) + " TRD.") + "Русский: Пожалуйста, приложите не менее ") + toString((minimum_order_size / d6))) + " TRD.")) | |
65 | 67 | else if ((pmt.amount > daily_burn_Limit)) | |
66 | 68 | 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 | 69 | else if ((claimable_amount > check_dapp_balance)) | |
68 | 70 | then throw(("Not Enough Waves Available on Dapp to Burn Tokens." + "В Dapp недостаточно волн для сжигания токенов. Попросите администратора пополнить его.")) | |
69 | 71 | 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 | 72 | } | |
71 | 73 | ||
72 | 74 | ||
75 | + | ||
76 | + | @Callable(i) | |
77 | + | func update_burn_limits (Amount) = { | |
78 | + | let new_daily_limits = (Amount * d6) | |
79 | + | if ((i.caller != admin)) | |
80 | + | then throw((("This Address is not Authorized. Only " + toString(admin)) + " is Authorized Address to Sign it.")) | |
81 | + | else [IntegerEntry("Daily_Burn_Limits", new_daily_limits)] | |
82 | + | } | |
83 | + | ||
84 | + | ||
73 | 85 | @Verifier(tx) | |
74 | 86 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
75 | 87 |
github/deemru/w8io/6500d08 37.60 ms ◑