2023.04.18 16:27 [3605602] smart account 3PAeYNeiNJUeyZsUqBKqXJZQUoCwPtkSU45 > SELF 0.00000000 Waves

{ "type": 13, "id": "CbjzFVHnc2fULiqRvwPKXwCmfsnQ2QYYF8oM7r9udpXR", "fee": 100000, "feeAssetId": null, "timestamp": 1681824435067, "version": 1, "sender": "3PAeYNeiNJUeyZsUqBKqXJZQUoCwPtkSU45", "senderPublicKey": "6nFLD7tuDey7xhFYfhSdua1jRjsYRxW42zadKxp7UT5q", "proofs": [ "5wwaPtb3tmLUgUmtCY4YD1p93txk8kcnJi36axCt2BuY9AgMYdJVifDKyHMYNaXY1rDnzdB6nmf3YJHiTDYcDtLV" ], "script": "base64:BgIECAISAAQADHBvd2VyQWRkcmVzcwkBB0FkZHJlc3MBARoBV0Ov1RrltOOKrDIfaMeqY/GOXgFS7CVs9QAMb3duZXJBZGRyZXNzCQEHQWRkcmVzcwEBGgFXH6pIrzY5PGamOPVRxf+tjuT3DS6jcjv6AAVQT1dFUgEgHBqDoMT3Lh6CR3PXRUPBKIbTqsytzoIzH7EhqJqevEoBBWFzSW50AQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAUBeAQBdAUHJG1hdGNoMAkAAgECBCNlcnIBAWkBDXVuc3Rha2VfcG93ZXIABAxwb3dlcl9hbW91bnQJAQVhc0ludAEJAPwHBAUMcG93ZXJBZGRyZXNzAgl1c2VyUG93ZXIJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAACBQxwb3dlcl9hbW91bnQFDHBvd2VyX2Ftb3VudAQHdW5zdGFrZQkA/AcEBQxwb3dlckFkZHJlc3MCB3Vuc3Rha2UJAMwIAgUMcG93ZXJfYW1vdW50BQNuaWwFA25pbAMJAAACBQd1bnN0YWtlBQd1bnN0YWtlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDG93bmVyQWRkcmVzcwkA8AcCBQR0aGlzBQVQT1dFUgUFUE9XRVIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgDcUSVp", "chainId": 87, "height": 3605602, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BDgntKQqF4zfMqWm5QccYc9HGBYjcnrKGuDTYUJpMFNy Next: 8TRy8VGG1rG5gmu8DFjwZLF7YrgQ1mbafgx83GianghX Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
4+let powerAddress = Address(base58'3P86ne9inVG1Cf4smrEGSdcXyBuEApPcMAc')
55
6-let SURF = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
6+let ownerAddress = Address(base58'3P4pKfj9UZHqj6pb18921oSftYuQw35gExR')
77
8-let adminAddress = Address(base58'3P6gGsVQbD2xgmaNxN7Rj3arohPsBxvo5GC')
9-
10-let aggrAddress = Address(base58'3P5T88oGg47FEsJcpC2o43BSF34Bs5dcFpP')
11-
12-let usdnAggrAddress = Address(base58'3P2cpE7nusQRRFt3Tg22WtKfdi6bUKwmqVM')
13-
14-let zeftAddress = Address(base58'3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt')
15-
16-func asAnyList (v) = match v {
17- case l: List[Any] =>
18- l
19- case _ =>
20- throw("#err")
21-}
22-
8+let POWER = base58'2thsACuHmzDMuNezPM32wg9a3BwUzBWDeSKakgz3cw21'
239
2410 func asInt (v) = match v {
2511 case x: Int =>
3016
3117
3218 @Callable(i)
33-func usdn_100 (amount) = {
34- let usdnAmountOnStart = assetBalance(this, USDN)
35- if ((usdnAmountOnStart == usdnAmountOnStart))
19+func unstake_power () = {
20+ let power_amount = asInt(invoke(powerAddress, "userPower", [toString(this)], nil))
21+ if ((power_amount == power_amount))
3622 then {
37- let inv = invoke(addressFromStringValue("3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk"), "withdrawVestedAllUSDN", [false, true], nil)
38- if ((inv == inv))
39- then {
40- let usdnAmountAfterWithdraw = assetBalance(this, USDN)
41- if ((usdnAmountAfterWithdraw == usdnAmountAfterWithdraw))
42- then [ScriptTransfer(aggrAddress, (usdnAmountAfterWithdraw - usdnAmountOnStart), USDN)]
43- else throw("Strict value is not equal to itself.")
44- }
23+ let unstake = invoke(powerAddress, "unstake", [power_amount], nil)
24+ if ((unstake == unstake))
25+ then [ScriptTransfer(ownerAddress, assetBalance(this, POWER), POWER)]
4526 else throw("Strict value is not equal to itself.")
4627 }
4728 else throw("Strict value is not equal to itself.")
4829 }
4930
5031
51-
52-@Callable(i)
53-func surf (w) = if (if ((i.caller != adminAddress))
54- then (i.caller != this)
55- else false)
56- then throw("only admin can do")
57- else {
58- let neutrinoMetrics = asAnyList(invoke(addressFromStringValue("3P77iUusNwMMzWFdC8f7bftwpHyG1PBs1gq"), "calcNeutinoMetricsREADONLY", nil, nil))
59- let BR = asInt(neutrinoMetrics[8])
60- if ((w > BR))
61- then {
62- let inv = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "withdrawVestedAllSURF", [false, true], nil)
63- if ((inv == inv))
64- then {
65- let aAmount = assetBalance(this, SURF)
66-[ScriptTransfer(aggrAddress, aAmount, SURF)]
67- }
68- else throw("Strict value is not equal to itself.")
69- }
70- else throw(("br is bad. " + toString(BR)))
71- }
72-
73-
74-
75-@Callable(i)
76-func toVesting (b) = if (if (if ((i.originCaller != adminAddress))
77- then (i.originCaller != this)
78- else false)
79- then (i.originCaller != aggrAddress)
80- else false)
81- then throw("only admin can do")
82- else if ((size(i.payments) != 1))
83- then throw("bad payment")
84- else {
85- let repayAmount = i.payments[0].amount
86- let repayAsset = i.payments[0].assetId
87- let inv1 = invoke(Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'), "repay", [b], [AttachedPayment(repayAsset, repayAmount)])
88- if ((inv1 == inv1))
89- then {
90- let inv2 = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "convertToUSDN", nil, nil)
91- if ((inv2 == inv2))
92- then {
93- let inv3 = invoke(Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'), "withdraw", ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", -1], nil)
94- if ((inv3 == inv3))
95- then {
96- let balance = assetBalance(this, value(repayAsset))
97- if ((balance == balance))
98- then [ScriptTransfer(aggrAddress, balance, repayAsset), ScriptTransfer(usdnAggrAddress, assetBalance(this, USDN), USDN)]
99- else throw("Strict value is not equal to itself.")
100- }
101- else throw("Strict value is not equal to itself.")
102- }
103- else throw("Strict value is not equal to itself.")
104- }
105- else throw("Strict value is not equal to itself.")
106- }
107-
108-
109-
110-@Callable(i)
111-func rewards_vesting (strAddress) = if (if ((i.originCaller != adminAddress))
112- then (i.originCaller != this)
113- else false)
114- then throw("only admin can do")
115- else {
116- let toAddress = if ((strAddress == "3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt"))
117- then zeftAddress
118- else usdnAggrAddress
119- let usdnAmountOnStart = assetBalance(this, USDN)
120- if ((usdnAmountOnStart == usdnAmountOnStart))
121- then {
122- let inv = invoke(addressFromStringValue("3PKZk5TdPCLP2GZviipLFfK46ExTnwkRCBd"), "claimRewards", nil, nil)
123- if ((inv == inv))
124- then {
125- let usdnAmountAfterWithdraw = assetBalance(this, USDN)
126- if ((usdnAmountAfterWithdraw == usdnAmountAfterWithdraw))
127- then [ScriptTransfer(toAddress, (usdnAmountAfterWithdraw - usdnAmountOnStart), USDN)]
128- else throw("Strict value is not equal to itself.")
129- }
130- else throw("Strict value is not equal to itself.")
131- }
132- else throw("Strict value is not equal to itself.")
133- }
134-
135-
136-
137-@Callable(i)
138-func import_lp () = if (if (if (if ((i.originCaller != adminAddress))
139- then (i.originCaller != this)
140- else false)
141- then (i.originCaller != aggrAddress)
142- else false)
143- then (i.originCaller != usdnAggrAddress)
144- else false)
145- then throw("only admin can do")
146- else if ((size(i.payments) != 1))
147- then throw("bad payment")
148- else {
149- let repayAmount = i.payments[0].amount
150- let repayAsset = i.payments[0].assetId
151- let inv = invoke(Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'), "replenishWithAtoken", nil, i.payments)
152- if ((inv == inv))
153- then nil
154- else throw("Strict value is not equal to itself.")
155- }
156-
157-
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
4+let powerAddress = Address(base58'3P86ne9inVG1Cf4smrEGSdcXyBuEApPcMAc')
55
6-let SURF = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
6+let ownerAddress = Address(base58'3P4pKfj9UZHqj6pb18921oSftYuQw35gExR')
77
8-let adminAddress = Address(base58'3P6gGsVQbD2xgmaNxN7Rj3arohPsBxvo5GC')
9-
10-let aggrAddress = Address(base58'3P5T88oGg47FEsJcpC2o43BSF34Bs5dcFpP')
11-
12-let usdnAggrAddress = Address(base58'3P2cpE7nusQRRFt3Tg22WtKfdi6bUKwmqVM')
13-
14-let zeftAddress = Address(base58'3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt')
15-
16-func asAnyList (v) = match v {
17- case l: List[Any] =>
18- l
19- case _ =>
20- throw("#err")
21-}
22-
8+let POWER = base58'2thsACuHmzDMuNezPM32wg9a3BwUzBWDeSKakgz3cw21'
239
2410 func asInt (v) = match v {
2511 case x: Int =>
2612 x
2713 case t =>
2814 throw("#err")
2915 }
3016
3117
3218 @Callable(i)
33-func usdn_100 (amount) = {
34- let usdnAmountOnStart = assetBalance(this, USDN)
35- if ((usdnAmountOnStart == usdnAmountOnStart))
19+func unstake_power () = {
20+ let power_amount = asInt(invoke(powerAddress, "userPower", [toString(this)], nil))
21+ if ((power_amount == power_amount))
3622 then {
37- let inv = invoke(addressFromStringValue("3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk"), "withdrawVestedAllUSDN", [false, true], nil)
38- if ((inv == inv))
39- then {
40- let usdnAmountAfterWithdraw = assetBalance(this, USDN)
41- if ((usdnAmountAfterWithdraw == usdnAmountAfterWithdraw))
42- then [ScriptTransfer(aggrAddress, (usdnAmountAfterWithdraw - usdnAmountOnStart), USDN)]
43- else throw("Strict value is not equal to itself.")
44- }
23+ let unstake = invoke(powerAddress, "unstake", [power_amount], nil)
24+ if ((unstake == unstake))
25+ then [ScriptTransfer(ownerAddress, assetBalance(this, POWER), POWER)]
4526 else throw("Strict value is not equal to itself.")
4627 }
4728 else throw("Strict value is not equal to itself.")
4829 }
4930
5031
51-
52-@Callable(i)
53-func surf (w) = if (if ((i.caller != adminAddress))
54- then (i.caller != this)
55- else false)
56- then throw("only admin can do")
57- else {
58- let neutrinoMetrics = asAnyList(invoke(addressFromStringValue("3P77iUusNwMMzWFdC8f7bftwpHyG1PBs1gq"), "calcNeutinoMetricsREADONLY", nil, nil))
59- let BR = asInt(neutrinoMetrics[8])
60- if ((w > BR))
61- then {
62- let inv = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "withdrawVestedAllSURF", [false, true], nil)
63- if ((inv == inv))
64- then {
65- let aAmount = assetBalance(this, SURF)
66-[ScriptTransfer(aggrAddress, aAmount, SURF)]
67- }
68- else throw("Strict value is not equal to itself.")
69- }
70- else throw(("br is bad. " + toString(BR)))
71- }
72-
73-
74-
75-@Callable(i)
76-func toVesting (b) = if (if (if ((i.originCaller != adminAddress))
77- then (i.originCaller != this)
78- else false)
79- then (i.originCaller != aggrAddress)
80- else false)
81- then throw("only admin can do")
82- else if ((size(i.payments) != 1))
83- then throw("bad payment")
84- else {
85- let repayAmount = i.payments[0].amount
86- let repayAsset = i.payments[0].assetId
87- let inv1 = invoke(Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'), "repay", [b], [AttachedPayment(repayAsset, repayAmount)])
88- if ((inv1 == inv1))
89- then {
90- let inv2 = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "convertToUSDN", nil, nil)
91- if ((inv2 == inv2))
92- then {
93- let inv3 = invoke(Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'), "withdraw", ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", -1], nil)
94- if ((inv3 == inv3))
95- then {
96- let balance = assetBalance(this, value(repayAsset))
97- if ((balance == balance))
98- then [ScriptTransfer(aggrAddress, balance, repayAsset), ScriptTransfer(usdnAggrAddress, assetBalance(this, USDN), USDN)]
99- else throw("Strict value is not equal to itself.")
100- }
101- else throw("Strict value is not equal to itself.")
102- }
103- else throw("Strict value is not equal to itself.")
104- }
105- else throw("Strict value is not equal to itself.")
106- }
107-
108-
109-
110-@Callable(i)
111-func rewards_vesting (strAddress) = if (if ((i.originCaller != adminAddress))
112- then (i.originCaller != this)
113- else false)
114- then throw("only admin can do")
115- else {
116- let toAddress = if ((strAddress == "3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt"))
117- then zeftAddress
118- else usdnAggrAddress
119- let usdnAmountOnStart = assetBalance(this, USDN)
120- if ((usdnAmountOnStart == usdnAmountOnStart))
121- then {
122- let inv = invoke(addressFromStringValue("3PKZk5TdPCLP2GZviipLFfK46ExTnwkRCBd"), "claimRewards", nil, nil)
123- if ((inv == inv))
124- then {
125- let usdnAmountAfterWithdraw = assetBalance(this, USDN)
126- if ((usdnAmountAfterWithdraw == usdnAmountAfterWithdraw))
127- then [ScriptTransfer(toAddress, (usdnAmountAfterWithdraw - usdnAmountOnStart), USDN)]
128- else throw("Strict value is not equal to itself.")
129- }
130- else throw("Strict value is not equal to itself.")
131- }
132- else throw("Strict value is not equal to itself.")
133- }
134-
135-
136-
137-@Callable(i)
138-func import_lp () = if (if (if (if ((i.originCaller != adminAddress))
139- then (i.originCaller != this)
140- else false)
141- then (i.originCaller != aggrAddress)
142- else false)
143- then (i.originCaller != usdnAggrAddress)
144- else false)
145- then throw("only admin can do")
146- else if ((size(i.payments) != 1))
147- then throw("bad payment")
148- else {
149- let repayAmount = i.payments[0].amount
150- let repayAsset = i.payments[0].assetId
151- let inv = invoke(Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'), "replenishWithAtoken", nil, i.payments)
152- if ((inv == inv))
153- then nil
154- else throw("Strict value is not equal to itself.")
155- }
156-
157-

github/deemru/w8io/786bc32 
35.53 ms