tx · 326DugJPSMm2YiAxGBmqf1CVDQRXSCMP6vdeQtw6FVVX

3MpMuGN8rW9EpPwzETAQz88Pe9TQhSwiriq:  -0.01000000 Waves

2023.07.19 09:13 [2672376] smart account 3MpMuGN8rW9EpPwzETAQz88Pe9TQhSwiriq > SELF 0.00000000 Waves

{ "type": 13, "id": "326DugJPSMm2YiAxGBmqf1CVDQRXSCMP6vdeQtw6FVVX", "fee": 1000000, "feeAssetId": null, "timestamp": 1689747210993, "version": 2, "chainId": 84, "sender": "3MpMuGN8rW9EpPwzETAQz88Pe9TQhSwiriq", "senderPublicKey": "57SkjQUEwC1ayCqLbXLuzBqifK6B6SR6rfxtGsbAo3zW", "proofs": [ "hY4EUo9DtdGUsUTKpkwQVxSifkERPh4KsFXUiVa7v4n4VLUkoc84JVUJRbfa225EURBkbtEpeB9h897xMh3ttwG" ], "script": "base64:BgIVCAISAwoBARIAEgMKAQESAwoBCBIAFAAMY29udHJhY3RGaWxlAhBtcnRfc3Rha2luZy5yaWRlAANTRVACAl9fAAZzY2FsZTgAgMLXLwEIdGhyb3dFcnIBA21zZwkAAgEJAKwCAgkArAICBQxjb250cmFjdEZpbGUCAjogBQNtc2cACmtleUFzc2V0SWQJALkJAgkAzAgCAgIlcwkAzAgCAgdhc3NldElkBQNuaWwFA1NFUAATa2V5RW1pc3Npb25QZXJCbG9jawkAuQkCCQDMCAICAiVzCQDMCAICEGVtaXNzaW9uUGVyQmxvY2sFA25pbAUDU0VQAA1rZXlTdGFydEJsb2NrCQC5CQIJAMwIAgICJXMJAMwIAgIKc3RhcnRCbG9jawUDbmlsBQNTRVAAEGtleVRvdGFsTHBBbW91bnQJALkJAgkAzAgCAgIlcwkAzAgCAg10b3RhbExwQW1vdW50BQNuaWwFA1NFUAATa2V5VG90YWxBc3NldEFtb3VudAkAuQkCCQDMCAICAiVzCQDMCAICEHRvdGFsQXNzZXRBbW91bnQFA25pbAUDU0VQAQ9rZXlVc2VyTHBBbW91bnQBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgx1c2VyTHBBbW91bnQJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARprZXlVc2VyVG90YWxBc3NldFdpdGhkcmF3bgELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICE3RvdGFsQXNzZXRXaXRoZHJhd24JAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARdrZXlVc2VyVG90YWxBc3NldFN0YWtlZAELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICEHRvdGFsQXNzZXRTdGFrZWQJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQAA10b3RhbExwQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEGtleVRvdGFsTHBBbW91bnQAAAAQdG90YWxBc3NldEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlUb3RhbEFzc2V0QW1vdW50AAAADWFzc2V0SWRTdHJpbmcJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUKa2V5QXNzZXRJZAIFV0FWRVMADGFzc2V0SWRCeXRlcwMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwUEdW5pdAkA2QQBBQ1hc3NldElkU3RyaW5nAQ9nZXRVc2VyTHBBbW91bnQBC3VzZXJBZGRyZXNzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwAAAQ9jYWxjVG90YWxQcm9maXQABBBlbWlzc2lvblBlckJsb2NrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFE2tleUVtaXNzaW9uUGVyQmxvY2sAAAQKc3RhcnRCbG9jawkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ1rZXlTdGFydEJsb2NrAAAEDWVsYXBzZWRCbG9ja3MJAGUCBQZoZWlnaHQFCnN0YXJ0QmxvY2sJAJYDAQkAzAgCAAAJAMwIAgkAaAIFEGVtaXNzaW9uUGVyQmxvY2sFDWVsYXBzZWRCbG9ja3MFA25pbAErZ2V0VG90YWxBc3NldEFtb3VudFdpdGhQcm9maXRPck1heEF2YWlsYWJsZQAEGnRvdGFsQXNzZXRBbW91bnRXaXRoUHJvZml0CQBkAgUQdG90YWxBc3NldEFtb3VudAkBD2NhbGNUb3RhbFByb2ZpdAAEByRtYXRjaDAFDGFzc2V0SWRCeXRlcwMJAAECBQckbWF0Y2gwAgRVbml0BAF1BQckbWF0Y2gwCQCXAwEJAMwIAgUadG90YWxBc3NldEFtb3VudFdpdGhQcm9maXQJAMwIAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFA25pbAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQCXAwEJAMwIAgUadG90YWxBc3NldEFtb3VudFdpdGhQcm9maXQJAMwIAgkA8AcCBQR0aGlzBQFiBQNuaWwJAAIBAgtNYXRjaCBlcnJvcgEPZ2V0Q3VycmVudFByaWNlAAQMY3VycmVudFByaWNlAwkBAiE9AgUNdG90YWxMcEFtb3VudAAACQBrAwkBK2dldFRvdGFsQXNzZXRBbW91bnRXaXRoUHJvZml0T3JNYXhBdmFpbGFibGUABQZzY2FsZTgFDXRvdGFsTHBBbW91bnQJAGgCAAEFBnNjYWxlOAUMY3VycmVudFByaWNlBQFpARNzZXRFbWlzc2lvblBlckJsb2NrARBlbWlzc2lvblBlckJsb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRNrZXlUb3RhbEFzc2V0QW1vdW50CQErZ2V0VG90YWxBc3NldEFtb3VudFdpdGhQcm9maXRPck1heEF2YWlsYWJsZQAJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleVN0YXJ0QmxvY2sFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUTa2V5RW1pc3Npb25QZXJCbG9jawkAlgMBCQDMCAIAAAkAzAgCBRBlbWlzc2lvblBlckJsb2NrBQNuaWwFA25pbAFpAQVzdGFrZQAEBmNoZWNrcwkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQh0aHJvd0VycgECGHNob3VsZCBpbmNsdWRlIDEgcGF5bWVudAkAzAgCAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUMYXNzZXRJZEJ5dGVzBgkBCHRocm93RXJyAQkArAICAhVwYXltZW50IHNob3VsZCBiZSBpbiAFDWFzc2V0SWRTdHJpbmcJAMwIAgMJAGYCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAABgIncGF5bWVudCBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDXBheW1lbnRBbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BA9wYXltZW50THBBbW91bnQJAGsDBQ1wYXltZW50QW1vdW50BQZzY2FsZTgJAQ9nZXRDdXJyZW50UHJpY2UABAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEDHVzZXJMcEFtb3VudAkBD2dldFVzZXJMcEFtb3VudAEFC3VzZXJBZGRyZXNzBBd1c2VyVG90YWxJbnZlc3RlZEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEXa2V5VXNlclRvdGFsQXNzZXRTdGFrZWQBBQt1c2VyQWRkcmVzcwAABBBuZXdUb3RhbExwQW1vdW50CQBkAgUNdG90YWxMcEFtb3VudAUPcGF5bWVudExwQW1vdW50BBNuZXdUb3RhbEFzc2V0QW1vdW50CQBkAgUQdG90YWxBc3NldEFtb3VudAUNcGF5bWVudEFtb3VudAQPbmV3VXNlckxwQW1vdW50CQBkAgUMdXNlckxwQW1vdW50BQ9wYXltZW50THBBbW91bnQEGm5ld1VzZXJUb3RhbEludmVzdGVkQW1vdW50CQBkAgUXdXNlclRvdGFsSW52ZXN0ZWRBbW91bnQFDXBheW1lbnRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleVRvdGFsTHBBbW91bnQFEG5ld1RvdGFsTHBBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleVRvdGFsQXNzZXRBbW91bnQFE25ld1RvdGFsQXNzZXRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwUPbmV3VXNlckxwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEXa2V5VXNlclRvdGFsQXNzZXRTdGFrZWQBBQt1c2VyQWRkcmVzcwUabmV3VXNlclRvdGFsSW52ZXN0ZWRBbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQh3aXRoZHJhdwEVbHBBc3NldFdpdGhkcmF3QW1vdW50BAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEDHVzZXJMcEFtb3VudAkBD2dldFVzZXJMcEFtb3VudAEFC3VzZXJBZGRyZXNzBAVjaGVjawkAzAgCAwkAZwIFDHVzZXJMcEFtb3VudAUVbHBBc3NldFdpdGhkcmF3QW1vdW50BgkBCHRocm93RXJyAQkArAICCQCsAgICJWNhbm5vdCB3aXRoZHJhdyBtb3JlIHRoYW4gYXZhaWxhYmxlICgJAKQDAQUMdXNlckxwQW1vdW50AgEpBQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrBA9uZXdVc2VyTHBBbW91bnQJAGUCBQx1c2VyTHBBbW91bnQFFWxwQXNzZXRXaXRoZHJhd0Ftb3VudAQTd2l0aGRyYXdBc3NldEFtb3VudAkAawMFFWxwQXNzZXRXaXRoZHJhd0Ftb3VudAkBD2dldEN1cnJlbnRQcmljZQAFBnNjYWxlOAQQbmV3VG90YWxMcEFtb3VudAkAZQIFDXRvdGFsTHBBbW91bnQFFWxwQXNzZXRXaXRoZHJhd0Ftb3VudAQTbmV3VG90YWxBc3NldEFtb3VudAkAawMFEG5ld1RvdGFsTHBBbW91bnQJAQ9nZXRDdXJyZW50UHJpY2UABQZzY2FsZTgEF3VzZXJUb3RhbEFzc2V0V2l0aGRyYXduCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARprZXlVc2VyVG90YWxBc3NldFdpdGhkcmF3bgEFC3VzZXJBZGRyZXNzAAAEGm5ld1VzZXJUb3RhbEFzc2V0V2l0aGRyYXduCQBkAgUXdXNlclRvdGFsQXNzZXRXaXRoZHJhd24FE3dpdGhkcmF3QXNzZXRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleVRvdGFsTHBBbW91bnQFEG5ld1RvdGFsTHBBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleVRvdGFsQXNzZXRBbW91bnQFE25ld1RvdGFsQXNzZXRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwUPbmV3VXNlckxwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaa2V5VXNlclRvdGFsQXNzZXRXaXRoZHJhd24BBQt1c2VyQWRkcmVzcwUabmV3VXNlclRvdGFsQXNzZXRXaXRoZHJhd24JAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleVN0YXJ0QmxvY2sFBmhlaWdodAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFE3dpdGhkcmF3QXNzZXRBbW91bnQFDGFzc2V0SWRCeXRlcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBHmdldEF2YWlsYWJsZVRvV2l0aGRyYXdSRUFET05MWQELdXNlckFkZHJlc3MEDHVzZXJMcEFtb3VudAkBD2dldFVzZXJMcEFtb3VudAEFC3VzZXJBZGRyZXNzBBx1c2VyQXZhaWxhYmxlQXNzZXRUb1dpdGhkcmF3CQBrAwUMdXNlckxwQW1vdW50CQEPZ2V0Q3VycmVudFByaWNlAAUGc2NhbGU4CQCUCgIFA25pbAkAlAoCBQx1c2VyTHBBbW91bnQFHHVzZXJBdmFpbGFibGVBc3NldFRvV2l0aGRyYXcBaQEWZ2V0VG90YWxBc3NldHNSRUFET05MWQAJAJQKAgUDbmlsCQCUCgIFDXRvdGFsTHBBbW91bnQJAStnZXRUb3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdE9yTWF4QXZhaWxhYmxlAADoPcAs", "height": 2672376, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CfstKQdLaqwaxAsCWFeZurVu4Uo4vwGhRsvnZxcL4d6r Next: 8GEqyqv1MR2KCmXDZWivdm8NRPUBjmZiXaL8vXZTC2Kp Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "mrt_staking.ride"
55
66 let b = "__"
77
88 let c = 100000000
99
1010 func d (e) = throw(((a + ": ") + e))
1111
1212
1313 let f = makeString(["%s", "assetId"], b)
1414
1515 let g = makeString(["%s", "emissionPerBlock"], b)
1616
1717 let h = makeString(["%s", "startBlock"], b)
1818
1919 let i = makeString(["%s", "totalLpAmount"], b)
2020
2121 let j = makeString(["%s", "totalAssetAmount"], b)
2222
2323 func k (l) = makeString(["%s%s", "userLpAmount", l], b)
2424
2525
2626 func m (l) = makeString(["%s%s", "totalAssetWithdrawn", l], b)
2727
2828
2929 func n (l) = makeString(["%s%s", "totalAssetStaked", l], b)
3030
3131
3232 let o = valueOrElse(getInteger(this, i), 0)
3333
3434 let p = valueOrElse(getInteger(this, j), 0)
3535
3636 let q = valueOrElse(getString(this, f), "WAVES")
3737
3838 let r = if ((q == "WAVES"))
3939 then unit
4040 else fromBase58String(q)
4141
4242 func s (l) = valueOrElse(getInteger(this, k(l)), 0)
4343
4444
4545 func t () = {
4646 let u = valueOrElse(getInteger(this, g), 0)
4747 let v = valueOrElse(getInteger(this, h), 0)
4848 let w = (height - v)
4949 max([0, (u * w)])
5050 }
5151
5252
5353 func x () = {
5454 let y = (p + t())
5555 let z = r
5656 if ($isInstanceOf(z, "Unit"))
5757 then {
5858 let A = z
5959 min([y, wavesBalance(this).available])
6060 }
6161 else if ($isInstanceOf(z, "ByteVector"))
6262 then {
6363 let B = z
6464 min([y, assetBalance(this, B)])
6565 }
6666 else throw("Match error")
6767 }
6868
6969
7070 func C () = {
7171 let D = if ((o != 0))
7272 then fraction(x(), c, o)
7373 else (1 * c)
7474 D
7575 }
7676
7777
7878 @Callable(E)
7979 func setEmissionPerBlock (u) = [IntegerEntry(j, x()), IntegerEntry(h, height), IntegerEntry(g, max([0, u]))]
8080
8181
8282
8383 @Callable(E)
8484 func stake () = {
8585 let F = [if ((size(E.payments) == 1))
8686 then true
8787 else d("should include 1 payment"), if ((E.payments[0].assetId == r))
8888 then true
8989 else d(("payment should be in " + q)), if ((E.payments[0].amount > 0))
9090 then true
9191 else "payment amount should be greater than 0"]
9292 if ((F == F))
9393 then {
9494 let G = E.payments[0].amount
9595 let H = fraction(G, c, C())
9696 let l = toString(E.caller)
9797 let I = s(l)
9898 let J = valueOrElse(getInteger(this, n(l)), 0)
9999 let K = (o + H)
100100 let L = (p + G)
101101 let M = (I + H)
102102 let N = (J + G)
103103 [IntegerEntry(i, K), IntegerEntry(j, L), IntegerEntry(k(l), M), IntegerEntry(n(l), N)]
104104 }
105105 else throw("Strict value is not equal to itself.")
106106 }
107107
108108
109109
110110 @Callable(E)
111111 func withdraw (O) = {
112112 let l = toString(E.caller)
113113 let I = s(l)
114114 let P = [if ((I >= O))
115115 then true
116116 else d((("cannot withdraw more than available (" + toString(I)) + ")"))]
117117 if ((P == P))
118118 then {
119119 let M = (I - O)
120120 let Q = fraction(O, C(), c)
121121 let K = (o - O)
122122 let L = fraction(K, C(), c)
123123 let R = valueOrElse(getInteger(this, m(l)), 0)
124124 let S = (R + Q)
125125 [IntegerEntry(i, K), IntegerEntry(j, L), IntegerEntry(k(l), M), IntegerEntry(m(l), S), IntegerEntry(h, height), ScriptTransfer(E.caller, Q, r)]
126126 }
127127 else throw("Strict value is not equal to itself.")
128128 }
129129
130130
131131
132132 @Callable(E)
133133 func getAvailableToWithdrawREADONLY (l) = {
134134 let I = s(l)
135135 let T = fraction(I, C(), c)
136136 $Tuple2(nil, $Tuple2(I, T))
137137 }
138138
139139
140140
141141 @Callable(E)
142142 func getTotalAssetsREADONLY () = $Tuple2(nil, $Tuple2(o, x()))
143143
144144

github/deemru/w8io/169f3d6 
35.35 ms