tx · Bcb9y8WGuhSLGMFFop95b9XnoYFA3Jgh4kD84JHhYpVR 3N1iXCNZY1tjDef39ScB9LPBmooxdXoBJkD: -0.01000000 Waves 2023.06.20 04:55 [2630317] smart account 3N1iXCNZY1tjDef39ScB9LPBmooxdXoBJkD > SELF 0.00000000 Waves
{ "type": 13, "id": "Bcb9y8WGuhSLGMFFop95b9XnoYFA3Jgh4kD84JHhYpVR", "fee": 1000000, "feeAssetId": null, "timestamp": 1687226209967, "version": 2, "chainId": 84, "sender": "3N1iXCNZY1tjDef39ScB9LPBmooxdXoBJkD", "senderPublicKey": "9qMg5u3dj3rp3orXEZZNTWN7PUWnoijorcYJQDkwmRVX", "proofs": [ "2PMWujrWYTt6aDrPkn5YcGDFbqZMZ9PMo1ogvu3f9zGkCTzd71SKPGjoj7QL4CWi6J42FfmmxafhcF1oTZqhtRrK" ], "script": "base64:BgINCAISABIDCgEBEgASAAcABkFPNzdJZAEgw6r4SvB42n5NP7kr1SoV2hXFLDHIkyEMqOZzQLoU6KoACUFPNzdJZFN0cgIsRUFvaTNpWHdSYXZkaUw3SGRueDZRN1pCY0V6SGNrOW96ZmdRVnlpQXR6ZVYABVNjYWxlAICglKWNHQENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEMdHJ5R2V0U3RyaW5nAQNrZXkEByRtYXRjaDAJAJ0IAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAARBjbGFpbUFsaWFzUmVzdWx0AgdhZGRyZXNzCmFzc2V0SWRTdHIECmFkZHJlc3NTdHIJAKUIAQUHYWRkcmVzcwQPY3VycmVudEludGVyZXN0CQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAhFnbG9iYWxfbGFzdENoZWNrXwUKYXNzZXRJZFN0cgIJX2ludGVyZXN0BBFsYXN0Q2hlY2tJbnRlcmVzdAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgkArAICBQphZGRyZXNzU3RyAgtfbGFzdENoZWNrXwUKYXNzZXRJZFN0cgIJX2ludGVyZXN0BAxzdGFrZWRBbW91bnQDCQAAAgUKYXNzZXRJZFN0cgUJQU83N0lkU3RyCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgUKYWRkcmVzc1N0cgIHX3N0YWtlZAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgkArAICBQphZGRyZXNzU3RyAgFfBQphc3NldElkU3RyAgdfc3Rha2VkBAZyZXdhcmQDCQBmAgURbGFzdENoZWNrSW50ZXJlc3QAAAkAawMJAGUCBQ9jdXJyZW50SW50ZXJlc3QFEWxhc3RDaGVja0ludGVyZXN0BQxzdGFrZWRBbW91bnQFBVNjYWxlAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFCmFkZHJlc3NTdHICC19sYXN0Q2hlY2tfBQphc3NldElkU3RyAglfaW50ZXJlc3QFD2N1cnJlbnRJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUKYWRkcmVzc1N0cgIBXwUKYXNzZXRJZFN0cgIIX2NsYWltZWQJAGQCCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICCQCsAgIFCmFkZHJlc3NTdHICAV8FCmFzc2V0SWRTdHICCF9jbGFpbWVkBQZyZXdhcmQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFCmFkZHJlc3NTdHICAV8FCmFzc2V0SWRTdHICCl9sYXN0Q2xhaW0IBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFB2FkZHJlc3MFBnJld2FyZAkA2QQBBQphc3NldElkU3RyBQNuaWwBC2NsYWltUmVzdWx0AQdhZGRyZXNzCQEQY2xhaW1BbGlhc1Jlc3VsdAIFB2FkZHJlc3MFCUFPNzdJZFN0cgQBaQEFc3Rha2UABAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAphZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgQKYXNzZXRJZFN0cgkA2AQBBQZBTzc3SWQED2N1cnJlbnRJbnRlcmVzdAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIRZ2xvYmFsX2xhc3RDaGVja18FCmFzc2V0SWRTdHICCV9pbnRlcmVzdAQRdG90YWxTdGFrZWRBbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQINZ2xvYmFsX3N0YWtlZAMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUGQU83N0lkCQACAQIUd3JvbmcgYXNzZXQgYXR0YWNoZWQJAM4IAgkBC2NsYWltUmVzdWx0AQgFAWkGY2FsbGVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAg1nbG9iYWxfc3Rha2VkCQBkAgURdG90YWxTdGFrZWRBbW91bnQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQphZGRyZXNzU3RyAgdfc3Rha2VkCQBkAgkBDXRyeUdldEludGVnZXIBCQCsAgIFCmFkZHJlc3NTdHICB19zdGFrZWQFBmFtb3VudAUDbmlsAWkBB3VuU3Rha2UBBmFtb3VudAQKYWRkcmVzc1N0cgkApQgBCAUBaQZjYWxsZXIEDHN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBCQCsAgIFCmFkZHJlc3NTdHICB19zdGFrZWQDCQBmAgUGYW1vdW50BQxzdGFrZWRBbW91bnQJAAIBAh95b3UgZG9uJ3QgaGF2ZSB0b2tlbnMgYXZhaWxhYmxlCQDOCAIJAQtjbGFpbVJlc3VsdAEIBQFpBmNhbGxlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQphZGRyZXNzU3RyAgdfc3Rha2VkCQBlAgUMc3Rha2VkQW1vdW50BQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICDWdsb2JhbF9zdGFrZWQJAGUCCQENdHJ5R2V0SW50ZWdlcgECDWdsb2JhbF9zdGFrZWQFBmFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAUGQU83N0lkBQNuaWwBaQELY2xhaW1SZXdhcmQACQELY2xhaW1SZXN1bHQBCAUBaQZjYWxsZXIBaQELdG9wVXBSZXdhcmQABAZhbW91bnQJAGsDCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAJAAoEC3VsdHJhQW1vdW50CQBlAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFBmFtb3VudAQKYXNzZXRJZFN0cgkA2AQBCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQED2N1cnJlbnRJbnRlcmVzdAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIRZ2xvYmFsX2xhc3RDaGVja18FCmFzc2V0SWRTdHICCV9pbnRlcmVzdAQRdG90YWxTdGFrZWRBbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQINZ2xvYmFsX3N0YWtlZAQNaW50ZXJlc3REZWx0YQMJAGYCBRF0b3RhbFN0YWtlZEFtb3VudAAACQBrAwUGYW1vdW50BQVTY2FsZQURdG90YWxTdGFrZWRBbW91bnQAAAQUY3VycmVudFVsdHJhSW50ZXJlc3QJAQ10cnlHZXRJbnRlZ2VyAQIfZ2xvYmFsX2xhc3RDaGVja191bHRyYV9pbnRlcmVzdAQWdG90YWxVbHRyYVN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBAhNnbG9iYWxfdWx0cmFfc3Rha2VkBBJ1bHRyYUludGVyZXN0RGVsdGEDCQBmAgURdG90YWxTdGFrZWRBbW91bnQAAAkAawMFBmFtb3VudAUFU2NhbGUFEXRvdGFsU3Rha2VkQW1vdW50AAADCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBkFPNzdJZAkAAgECFHdyb25nIGFzc2V0IGF0dGFjaGVkCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdnbG9iYWxfBQphc3NldElkU3RyAglfZWFybmluZ3MJAGQCCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfBQphc3NldElkU3RyAglfZWFybmluZ3MFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICEWdsb2JhbF9sYXN0Q2hlY2tfBQphc3NldElkU3RyAglfaW50ZXJlc3QJAGQCBQ9jdXJyZW50SW50ZXJlc3QFDWludGVyZXN0RGVsdGEJAMwIAgkBDEludGVnZXJFbnRyeQICFWdsb2JhbF91bHRyYV9lYXJuaW5ncwkAZAIJAQ10cnlHZXRJbnRlZ2VyAQIVZ2xvYmFsX3VsdHJhX2Vhcm5pbmdzBQt1bHRyYUFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgIfZ2xvYmFsX2xhc3RDaGVja191bHRyYV9pbnRlcmVzdAkAZAIFFGN1cnJlbnRVbHRyYUludGVyZXN0BRJ1bHRyYUludGVyZXN0RGVsdGEFA25pbAUGYW1vdW50AQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleTqGVek=", "height": 2630317, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5AkrqBaM8YaRxQvKaaKNw5uqxVKHB6mXpE8Pw2iD7BqU Next: none Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = base58' | |
4 | + | let a = base58'EAoi3iXwRavdiL7Hdnx6Q7ZBcEzHck9ozfgQVyiAtzeV' | |
5 | 5 | ||
6 | - | let b = " | |
6 | + | let b = "EAoi3iXwRavdiL7Hdnx6Q7ZBcEzHck9ozfgQVyiAtzeV" | |
7 | 7 | ||
8 | 8 | let c = 1000000000000 | |
9 | 9 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = base58' | |
4 | + | let a = base58'EAoi3iXwRavdiL7Hdnx6Q7ZBcEzHck9ozfgQVyiAtzeV' | |
5 | 5 | ||
6 | - | let b = " | |
6 | + | let b = "EAoi3iXwRavdiL7Hdnx6Q7ZBcEzHck9ozfgQVyiAtzeV" | |
7 | 7 | ||
8 | 8 | let c = 1000000000000 | |
9 | 9 | ||
10 | 10 | func d (e) = { | |
11 | 11 | let f = getInteger(this, e) | |
12 | 12 | if ($isInstanceOf(f, "Int")) | |
13 | 13 | then { | |
14 | 14 | let g = f | |
15 | 15 | g | |
16 | 16 | } | |
17 | 17 | else 0 | |
18 | 18 | } | |
19 | 19 | ||
20 | 20 | ||
21 | 21 | func h (e) = { | |
22 | 22 | let f = getString(this, e) | |
23 | 23 | if ($isInstanceOf(f, "String")) | |
24 | 24 | then { | |
25 | 25 | let i = f | |
26 | 26 | i | |
27 | 27 | } | |
28 | 28 | else "" | |
29 | 29 | } | |
30 | 30 | ||
31 | 31 | ||
32 | 32 | func j (k,l) = { | |
33 | 33 | let m = toString(k) | |
34 | 34 | let n = d((("global_lastCheck_" + l) + "_interest")) | |
35 | 35 | let o = d((((m + "_lastCheck_") + l) + "_interest")) | |
36 | 36 | let p = if ((l == b)) | |
37 | 37 | then d((m + "_staked")) | |
38 | 38 | else d((((m + "_") + l) + "_staked")) | |
39 | 39 | let q = if ((o > 0)) | |
40 | 40 | then fraction((n - o), p, c) | |
41 | 41 | else 0 | |
42 | 42 | [IntegerEntry((((m + "_lastCheck_") + l) + "_interest"), n), IntegerEntry((((m + "_") + l) + "_claimed"), (d((((m + "_") + l) + "_claimed")) + q)), IntegerEntry((((m + "_") + l) + "_lastClaim"), lastBlock.timestamp), ScriptTransfer(k, q, fromBase58String(l))] | |
43 | 43 | } | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | func r (k) = j(k, b) | |
47 | 47 | ||
48 | 48 | ||
49 | 49 | @Callable(s) | |
50 | 50 | func stake () = { | |
51 | 51 | let t = s.payments[0].amount | |
52 | 52 | let m = toString(s.caller) | |
53 | 53 | let l = toBase58String(a) | |
54 | 54 | let n = d((("global_lastCheck_" + l) + "_interest")) | |
55 | 55 | let u = d("global_staked") | |
56 | 56 | if ((s.payments[0].assetId != a)) | |
57 | 57 | then throw("wrong asset attached") | |
58 | 58 | else (r(s.caller) ++ [IntegerEntry("global_staked", (u + t)), IntegerEntry((m + "_staked"), (d((m + "_staked")) + t))]) | |
59 | 59 | } | |
60 | 60 | ||
61 | 61 | ||
62 | 62 | ||
63 | 63 | @Callable(s) | |
64 | 64 | func unStake (t) = { | |
65 | 65 | let m = toString(s.caller) | |
66 | 66 | let p = d((m + "_staked")) | |
67 | 67 | if ((t > p)) | |
68 | 68 | then throw("you don't have tokens available") | |
69 | 69 | else (r(s.caller) ++ [IntegerEntry((m + "_staked"), (p - t)), IntegerEntry("global_staked", (d("global_staked") - t)), ScriptTransfer(s.caller, t, a)]) | |
70 | 70 | } | |
71 | 71 | ||
72 | 72 | ||
73 | 73 | ||
74 | 74 | @Callable(s) | |
75 | 75 | func claimReward () = r(s.caller) | |
76 | 76 | ||
77 | 77 | ||
78 | 78 | ||
79 | 79 | @Callable(s) | |
80 | 80 | func topUpReward () = { | |
81 | 81 | let t = fraction(s.payments[0].amount, 9, 10) | |
82 | 82 | let v = (s.payments[0].amount - t) | |
83 | 83 | let l = toBase58String(value(s.payments[0].assetId)) | |
84 | 84 | let n = d((("global_lastCheck_" + l) + "_interest")) | |
85 | 85 | let u = d("global_staked") | |
86 | 86 | let w = if ((u > 0)) | |
87 | 87 | then fraction(t, c, u) | |
88 | 88 | else 0 | |
89 | 89 | let x = d("global_lastCheck_ultra_interest") | |
90 | 90 | let y = d("global_ultra_staked") | |
91 | 91 | let z = if ((u > 0)) | |
92 | 92 | then fraction(t, c, u) | |
93 | 93 | else 0 | |
94 | 94 | if ((s.payments[0].assetId != a)) | |
95 | 95 | then throw("wrong asset attached") | |
96 | 96 | else $Tuple2([IntegerEntry((("global_" + l) + "_earnings"), (d((("global_" + l) + "_earnings")) + t)), IntegerEntry((("global_lastCheck_" + l) + "_interest"), (n + w)), IntegerEntry("global_ultra_earnings", (d("global_ultra_earnings") + v)), IntegerEntry("global_lastCheck_ultra_interest", (x + z))], t) | |
97 | 97 | } | |
98 | 98 | ||
99 | 99 | ||
100 | 100 | @Verifier(A) | |
101 | 101 | func B () = sigVerify(A.bodyBytes, A.proofs[0], A.senderPublicKey) | |
102 | 102 |
github/deemru/w8io/026f985 26.52 ms ◑