tx · J2pfVtYh398qCRhyxLjYiZm48cWu39RCDWRDMiMuVrpj

3PHeFExuCuK2QkR64j83u2tVom4YJUUXYZA:  -0.01000000 Waves

2023.01.19 19:13 [3477536] smart account 3PHeFExuCuK2QkR64j83u2tVom4YJUUXYZA > SELF 0.00000000 Waves

{ "type": 13, "id": "J2pfVtYh398qCRhyxLjYiZm48cWu39RCDWRDMiMuVrpj", "fee": 1000000, "feeAssetId": null, "timestamp": 1674144803198, "version": 2, "chainId": 87, "sender": "3PHeFExuCuK2QkR64j83u2tVom4YJUUXYZA", "senderPublicKey": "2HQLGX6a8xxw6QLPKVnKhR7WNTSNiw4XboN8pYoCfwzR", "proofs": [ "5vogWidMkrAvnyX5Gbkoj8CaGRX2ELhCb11yx3xrMZ8pxD8TEsMqiAZYuAWSefeoFwiNHxa9kXrr7EdwfobhBsn1" ], "script": "base64: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dmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAFpAQAAABRjbGFpbVRyZWFzdXJ5UmV3YXJkcwAAAAAEAAAACnd4QmFsYW5jZTAJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAEd3hJZAMJAAAAAAAAAgUAAAAKd3hCYWxhbmNlMAUAAAAKd3hCYWxhbmNlMAQAAAAEaW52MQkBAAAAB2NsYWltV1gAAAABAgAAACw5N3pIRnAxQzNjQjdxZnZ4OFh2NWYycldwOW5VU0c1VW5BYW1mUGNXNnR4ZgMJAAAAAAAAAgUAAAAEaW52MQUAAAAEaW52MQQAAAAEaW52MgkBAAAAB2NsYWltV1gAAAABAgAAACxFUGhkRWZtUWFOY0h5dkRtUkdobkxoZ2NKdEtaMmE0azNaQm1LV3RBRVd5SAMJAAAAAAAAAgUAAAAEaW52MgUAAAAEaW52MgQAAAAEaW52MwkBAAAAB2NsYWltV1gAAAABAgAAACxFTXNacHFjVDhOdU1ZWkNFUEh6dnJoUUNRS2hmWGpkZWVrWnZjV3BIc052aAMJAAAAAAAAAgUAAAAEaW52MwUAAAAEaW52MwQAAAAId3hFYXJuZWQJAABlAAAAAgkBAAAACmdldEJhbGFuY2UAAAABBQAAAAR3eElkBQAAAAp3eEJhbGFuY2UwAwkAAAAAAAACBQAAAAh3eEVhcm5lZAUAAAAId3hFYXJuZWQEAAAADmV4Y2hhbmdlUmVzdWx0CQEAAAAXZXhjaGFuZ2VBblNlbmRUb1N0YWtpbmcAAAADBQAAAAR3eElkBQAAAAdwbHV0b0lkBQAAAAh3eEVhcm5lZAMJAAAAAAAAAgUAAAAOZXhjaGFuZ2VSZXN1bHQFAAAADmV4Y2hhbmdlUmVzdWx0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAPXN0YXRzX2NsYWltZWRBdF9BdHF2NTlFWXpqRkd1aXRLVm5NUms2SDhGdWtqb1Yza3RQb3JiRXlzMjVvbl8JAAGkAAAAAQUAAAAGaGVpZ2h0BQAAAAh3eEVhcm5lZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPc3RhdHNfbGFzdENsYWltBQAAAAZoZWlnaHQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5M2IthQ==", "height": 3477536, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 35kZrpgjRGUm8SshvLQNPaf9htHcSpCznvBeg85YV6Vs Next: 3gjzDb6H3R6ErM3qderHEpPte9tbsSoghtQNGauYz6wz Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func tryGetInteger (key) = match getInteger(this, key) {
5- case b: Int =>
4+let wxId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
5+
6+let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
7+
8+let plutoId = base58'Ajso6nTTjptu2UHLx6hfSXVtHFtRBJCkKYd5SAyj7zf5'
9+
10+let plutoStakingAddress = "3P7dGTVZp8VLDYy3XEaUQbiqfi9cMK1Ly5q"
11+
12+func tryGetString (key) = match getString(this, key) {
13+ case b: String =>
614 b
715 case _ =>
8- 0
16+ ""
917 }
1018
1119
12-@Callable(i)
13-func putWaves () = {
14- let pmt = i.payments[0]
15- if (if ((pmt.assetId != unit))
20+func getAssetString (assetId) = match assetId {
21+ case b: ByteVector =>
22+ toBase58String(b)
23+ case _ =>
24+ "WAVES"
25+}
26+
27+
28+func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
29+ then unit
30+ else fromBase58String(assetIdStr)
31+
32+
33+func getBalance (assetId) = match assetId {
34+ case x: Unit =>
35+ wavesBalance(this).available
36+ case _ =>
37+ assetBalance(this, value(assetId))
38+}
39+
40+
41+func exchangeAnSendToStaking (asset0Id,asset1Id,amount0) = {
42+ let exchangeInvoke = invoke(Address(base58'3PLPCb3wF2H2gtzohoAjeWcGaMKEiJvtE5X'), "exchangeAndSendTo", [getAssetString(asset1Id), plutoStakingAddress], [AttachedPayment(asset0Id, amount0)])
43+ if ((exchangeInvoke == exchangeInvoke))
1644 then true
17- else (0 >= pmt.amount))
18- then throw("please attach WAVES as a payment")
19- else [IntegerEntry((toString(i.caller) + "_wavesPut"), (tryGetInteger((toString(i.caller) + "_wavesPut")) + pmt.amount))]
45+ else throw("Strict value is not equal to itself.")
2046 }
2147
2248
49+func claimWX (lpId) = {
50+ let evaluation = split({
51+ let @ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "claimWxREADONLY", [lpId, toString(this)], nil)
52+ if ($isInstanceOf(@, "String"))
53+ then @
54+ else throw("Couldn't cast Any to String")
55+ }, "__")
56+ if ((evaluation == evaluation))
57+ then {
58+ let claimInv = if (((parseIntValue(evaluation[3]) - parseIntValue(evaluation[4])) > 0))
59+ then invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "claimWx", [lpId], nil)
60+ else unit
61+ if ((claimInv == claimInv))
62+ then true
63+ else throw("Strict value is not equal to itself.")
64+ }
65+ else throw("Strict value is not equal to itself.")
66+ }
67+
2368
2469 @Callable(i)
25-func claimWaves (amount) = {
26- let wavesPut = tryGetInteger((toString(i.caller) + "_wavesPut"))
27- if ((wavesPut > amount))
28- then throw("you don't have that much WAVES available")
29- else [IntegerEntry((toString(i.caller) + "_wavesPut"), (wavesPut - amount))]
70+func claimTreasuryRewards () = {
71+ let wxBalance0 = getBalance(wxId)
72+ if ((wxBalance0 == wxBalance0))
73+ then {
74+ let inv1 = claimWX("97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf")
75+ if ((inv1 == inv1))
76+ then {
77+ let inv2 = claimWX("EPhdEfmQaNcHyvDmRGhnLhgcJtKZ2a4k3ZBmKWtAEWyH")
78+ if ((inv2 == inv2))
79+ then {
80+ let inv3 = claimWX("EMsZpqcT8NuMYZCEPHzvrhQCQKhfXjdeekZvcWpHsNvh")
81+ if ((inv3 == inv3))
82+ then {
83+ let wxEarned = (getBalance(wxId) - wxBalance0)
84+ if ((wxEarned == wxEarned))
85+ then {
86+ let exchangeResult = exchangeAnSendToStaking(wxId, plutoId, wxEarned)
87+ if ((exchangeResult == exchangeResult))
88+ then [IntegerEntry(("stats_claimedAt_Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on_" + toString(height)), wxEarned), IntegerEntry("stats_lastClaim", height)]
89+ else throw("Strict value is not equal to itself.")
90+ }
91+ else throw("Strict value is not equal to itself.")
92+ }
93+ else throw("Strict value is not equal to itself.")
94+ }
95+ else throw("Strict value is not equal to itself.")
96+ }
97+ else throw("Strict value is not equal to itself.")
98+ }
99+ else throw("Strict value is not equal to itself.")
30100 }
31101
32102
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func tryGetInteger (key) = match getInteger(this, key) {
5- case b: Int =>
4+let wxId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
5+
6+let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
7+
8+let plutoId = base58'Ajso6nTTjptu2UHLx6hfSXVtHFtRBJCkKYd5SAyj7zf5'
9+
10+let plutoStakingAddress = "3P7dGTVZp8VLDYy3XEaUQbiqfi9cMK1Ly5q"
11+
12+func tryGetString (key) = match getString(this, key) {
13+ case b: String =>
614 b
715 case _ =>
8- 0
16+ ""
917 }
1018
1119
12-@Callable(i)
13-func putWaves () = {
14- let pmt = i.payments[0]
15- if (if ((pmt.assetId != unit))
20+func getAssetString (assetId) = match assetId {
21+ case b: ByteVector =>
22+ toBase58String(b)
23+ case _ =>
24+ "WAVES"
25+}
26+
27+
28+func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
29+ then unit
30+ else fromBase58String(assetIdStr)
31+
32+
33+func getBalance (assetId) = match assetId {
34+ case x: Unit =>
35+ wavesBalance(this).available
36+ case _ =>
37+ assetBalance(this, value(assetId))
38+}
39+
40+
41+func exchangeAnSendToStaking (asset0Id,asset1Id,amount0) = {
42+ let exchangeInvoke = invoke(Address(base58'3PLPCb3wF2H2gtzohoAjeWcGaMKEiJvtE5X'), "exchangeAndSendTo", [getAssetString(asset1Id), plutoStakingAddress], [AttachedPayment(asset0Id, amount0)])
43+ if ((exchangeInvoke == exchangeInvoke))
1644 then true
17- else (0 >= pmt.amount))
18- then throw("please attach WAVES as a payment")
19- else [IntegerEntry((toString(i.caller) + "_wavesPut"), (tryGetInteger((toString(i.caller) + "_wavesPut")) + pmt.amount))]
45+ else throw("Strict value is not equal to itself.")
2046 }
2147
2248
49+func claimWX (lpId) = {
50+ let evaluation = split({
51+ let @ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "claimWxREADONLY", [lpId, toString(this)], nil)
52+ if ($isInstanceOf(@, "String"))
53+ then @
54+ else throw("Couldn't cast Any to String")
55+ }, "__")
56+ if ((evaluation == evaluation))
57+ then {
58+ let claimInv = if (((parseIntValue(evaluation[3]) - parseIntValue(evaluation[4])) > 0))
59+ then invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "claimWx", [lpId], nil)
60+ else unit
61+ if ((claimInv == claimInv))
62+ then true
63+ else throw("Strict value is not equal to itself.")
64+ }
65+ else throw("Strict value is not equal to itself.")
66+ }
67+
2368
2469 @Callable(i)
25-func claimWaves (amount) = {
26- let wavesPut = tryGetInteger((toString(i.caller) + "_wavesPut"))
27- if ((wavesPut > amount))
28- then throw("you don't have that much WAVES available")
29- else [IntegerEntry((toString(i.caller) + "_wavesPut"), (wavesPut - amount))]
70+func claimTreasuryRewards () = {
71+ let wxBalance0 = getBalance(wxId)
72+ if ((wxBalance0 == wxBalance0))
73+ then {
74+ let inv1 = claimWX("97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf")
75+ if ((inv1 == inv1))
76+ then {
77+ let inv2 = claimWX("EPhdEfmQaNcHyvDmRGhnLhgcJtKZ2a4k3ZBmKWtAEWyH")
78+ if ((inv2 == inv2))
79+ then {
80+ let inv3 = claimWX("EMsZpqcT8NuMYZCEPHzvrhQCQKhfXjdeekZvcWpHsNvh")
81+ if ((inv3 == inv3))
82+ then {
83+ let wxEarned = (getBalance(wxId) - wxBalance0)
84+ if ((wxEarned == wxEarned))
85+ then {
86+ let exchangeResult = exchangeAnSendToStaking(wxId, plutoId, wxEarned)
87+ if ((exchangeResult == exchangeResult))
88+ then [IntegerEntry(("stats_claimedAt_Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on_" + toString(height)), wxEarned), IntegerEntry("stats_lastClaim", height)]
89+ else throw("Strict value is not equal to itself.")
90+ }
91+ else throw("Strict value is not equal to itself.")
92+ }
93+ else throw("Strict value is not equal to itself.")
94+ }
95+ else throw("Strict value is not equal to itself.")
96+ }
97+ else throw("Strict value is not equal to itself.")
98+ }
99+ else throw("Strict value is not equal to itself.")
30100 }
31101
32102
33103 @Verifier(tx)
34104 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
35105

github/deemru/w8io/3ef1775 
23.09 ms