2023.01.20 16:21 [3478822] smart account 3PPLTJ25gTULcpxr9y7B9HN8oVRMY6hHE9B > SELF 0.00000000 Waves

{ "type": 13, "id": "HG6qTj1kJUvg5A5J7AMjWfPgGQTNFY1Bsy9NHcrsHhu9", "fee": 500000, "feeAssetId": null, "timestamp": 1674220895691, "version": 1, "sender": "3PPLTJ25gTULcpxr9y7B9HN8oVRMY6hHE9B", "senderPublicKey": "D1aXuYE6vuQXC48mM3eumvW2FxaSronQrPyi1QXhb5Qg", "proofs": [ "3sevkiqour4CYmQZ6epeeN66v374AeHpfXXZAfXw3SQUGHy1F1EQ68KmC2EJTVDtbFKBw5xQM4gjHK3iNKGcgZbe" ], "script": "base64:BgIYCAISAwoBARIDCgEBEgMKAQgSAwoBCBIACAAEVVNETgEgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEABFNVUkYBIJLR9EriEQEr9H7q3iGOPcX7yfJ9zoey7VIZ8DpOJFj1AAxhZG1pbkFkZHJlc3MJAQdBZGRyZXNzAQEaAVc0FN9xREbfMFTR97icc0UMqzorm02OJmEAC2FnZ3JBZGRyZXNzCQEHQWRkcmVzcwEBGgFXJqAMCkZONGXCherIE8gqRGALS8LL8ZtsAA91c2RuQWdnckFkZHJlc3MJAQdBZGRyZXNzAQEaAVcHjOFVob2YfPYA61m/TjnrxEWlXnNk32wAC3plZnRBZGRyZXNzCQEHQWRkcmVzcwEBGgFXbzqFfFF8HEJnS7j6bl/S88SZ3WHnKFgLAQlhc0FueUxpc3QBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIJTGlzdFtBbnldBAFsBQckbWF0Y2gwBQFsCQACAQIEI2VycgEFYXNJbnQBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIDSW50BAF4BQckbWF0Y2gwBQF4BAF0BQckbWF0Y2gwCQACAQIEI2VycgUBaQEIdXNkbl8xMDABBmFtb3VudAQRdXNkbkFtb3VudE9uU3RhcnQJAPAHAgUEdGhpcwUEVVNETgMJAAACBRF1c2RuQW1vdW50T25TdGFydAURdXNkbkFtb3VudE9uU3RhcnQEA2ludgkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUENidlBWUWZTdlZ1ODhpcDhGbTVZandKaGpFWWsxVHhoawIVd2l0aGRyYXdWZXN0ZWRBbGxVU0ROCQDMCAIHCQDMCAIGBQNuaWwFA25pbAMJAAACBQNpbnYFA2ludgQXdXNkbkFtb3VudEFmdGVyV2l0aGRyYXcJAPAHAgUEdGhpcwUEVVNETgMJAAACBRd1c2RuQW1vdW50QWZ0ZXJXaXRoZHJhdwUXdXNkbkFtb3VudEFmdGVyV2l0aGRyYXcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULYWdnckFkZHJlc3MJAGUCBRd1c2RuQW1vdW50QWZ0ZXJXaXRoZHJhdwURdXNkbkFtb3VudE9uU3RhcnQFBFVTRE4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQRzdXJmAQF3AwMJAQIhPQIIBQFpBmNhbGxlcgUMYWRtaW5BZGRyZXNzCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMHCQACAQIRb25seSBhZG1pbiBjYW4gZG8ED25ldXRyaW5vTWV0cmljcwkBCWFzQW55TGlzdAEJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A3N2lVdXNOd01NeldGZEM4ZjdiZnR3cEh5RzFQQnMxZ3ECGmNhbGNOZXV0aW5vTWV0cmljc1JFQURPTkxZBQNuaWwFA25pbAQCQlIJAQVhc0ludAEJAJEDAgUPbmV1dHJpbm9NZXRyaWNzAAgDCQBmAgUBdwUCQlIEA2ludgkA/AcECQEHQWRkcmVzcwEBGgFXdRLdk4IPW94ldhU5y0nVH1MoCcTocV4nAhV3aXRoZHJhd1Zlc3RlZEFsbFNVUkYJAMwIAgcJAMwIAgYFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52BAdhQW1vdW50CQDwBwIFBHRoaXMFBFNVUkYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULYWdnckFkZHJlc3MFB2FBbW91bnQFBFNVUkYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgEJAKwCAgILYnIgaXMgYmFkLiAJAKQDAQUCQlIBaQEJdG9WZXN0aW5nAQFiAwMDCQECIT0CCAUBaQxvcmlnaW5DYWxsZXIFDGFkbWluQWRkcmVzcwkBAiE9AggFAWkMb3JpZ2luQ2FsbGVyBQR0aGlzBwkBAiE9AggFAWkMb3JpZ2luQ2FsbGVyBQthZ2dyQWRkcmVzcwcJAAIBAhFvbmx5IGFkbWluIGNhbiBkbwMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECC2JhZCBwYXltZW50BAtyZXBheUFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECnJlcGF5QXNzZXQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQEaW52MQkA/AcECQEHQWRkcmVzcwEBGgFXXsGWGTDJokN4RmnWJtbx5rhD0L32TB64AgVyZXBheQkAzAgCBQFiBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCnJlcGF5QXNzZXQFC3JlcGF5QW1vdW50BQNuaWwDCQAAAgUEaW52MQUEaW52MQQEaW52MgkA/AcECQEHQWRkcmVzcwEBGgFXdRLdk4IPW94ldhU5y0nVH1MoCcTocV4nAg1jb252ZXJ0VG9VU0ROBQNuaWwFA25pbAMJAAACBQRpbnYyBQRpbnYyBARpbnYzCQD8BwQJAQdBZGRyZXNzAQEaAVdewZYZMMmiQ3hGadYm1vHmuEPQvfZMHrgCCHdpdGhkcmF3CQDMCAICLERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwCQDMCAIA////////////AQUDbmlsBQNuaWwDCQAAAgUEaW52MwUEaW52MwQHYmFsYW5jZQkA8AcCBQR0aGlzCQEFdmFsdWUBBQpyZXBheUFzc2V0AwkAAAIFB2JhbGFuY2UFB2JhbGFuY2UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULYWdnckFkZHJlc3MFB2JhbGFuY2UFCnJlcGF5QXNzZXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUPdXNkbkFnZ3JBZGRyZXNzCQDwBwIFBHRoaXMFBFVTRE4FBFVTRE4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ9yZXdhcmRzX3Zlc3RpbmcBCnN0ckFkZHJlc3MDAwkBAiE9AggFAWkMb3JpZ2luQ2FsbGVyBQxhZG1pbkFkZHJlc3MJAQIhPQIIBQFpDG9yaWdpbkNhbGxlcgUEdGhpcwcJAAIBAhFvbmx5IGFkbWluIGNhbiBkbwQJdG9BZGRyZXNzAwkAAAIFCnN0ckFkZHJlc3MCIzNQQzUxcWdOUXo0eHg3bTFEaExkQ0RZRVNhZU5LVDZ6ZUZ0BQt6ZWZ0QWRkcmVzcwUPdXNkbkFnZ3JBZGRyZXNzBBF1c2RuQW1vdW50T25TdGFydAkA8AcCBQR0aGlzBQRVU0ROAwkAAAIFEXVzZG5BbW91bnRPblN0YXJ0BRF1c2RuQW1vdW50T25TdGFydAQDaW52CQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQS1prNVRkUENMUDJHWnZpaXBMRmZLNDZFeFRud2tSQ0JkAgxjbGFpbVJld2FyZHMFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52BBd1c2RuQW1vdW50QWZ0ZXJXaXRoZHJhdwkA8AcCBQR0aGlzBQRVU0ROAwkAAAIFF3VzZG5BbW91bnRBZnRlcldpdGhkcmF3BRd1c2RuQW1vdW50QWZ0ZXJXaXRoZHJhdwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQl0b0FkZHJlc3MJAGUCBRd1c2RuQW1vdW50QWZ0ZXJXaXRoZHJhdwURdXNkbkFtb3VudE9uU3RhcnQFBFVTRE4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQlpbXBvcnRfbHAAAwMDAwkBAiE9AggFAWkMb3JpZ2luQ2FsbGVyBQxhZG1pbkFkZHJlc3MJAQIhPQIIBQFpDG9yaWdpbkNhbGxlcgUEdGhpcwcJAQIhPQIIBQFpDG9yaWdpbkNhbGxlcgULYWdnckFkZHJlc3MHCQECIT0CCAUBaQxvcmlnaW5DYWxsZXIFD3VzZG5BZ2dyQWRkcmVzcwcJAAIBAhFvbmx5IGFkbWluIGNhbiBkbwMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECC2JhZCBwYXltZW50BAtyZXBheUFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECnJlcGF5QXNzZXQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQDaW52CQD8BwQJAQdBZGRyZXNzAQEaAVdewZYZMMmiQ3hGadYm1vHmuEPQvfZMHrgCE3JlcGxlbmlzaFdpdGhBdG9rZW4FA25pbAgFAWkIcGF5bWVudHMDCQAAAgUDaW52BQNpbnYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgBoMAFB", "chainId": 87, "height": 3478822, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9k9WZ6STV77UTedWM6Bb4xj3yd7F6U5bStkcHEgMoRff Next: DRKHfSg1t8ECKWjCtN69kWoXKwrFD5m7CXEbxF7wNmdP Diff:
OldNewDifferences
1010 let aggrAddress = Address(base58'3P5T88oGg47FEsJcpC2o43BSF34Bs5dcFpP')
1111
1212 let usdnAggrAddress = Address(base58'3P2cpE7nusQRRFt3Tg22WtKfdi6bUKwmqVM')
13+
14+let zeftAddress = Address(base58'3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt')
1315
1416 func asAnyList (v) = match v {
1517 case l: List[Any] =>
104106 }
105107
106108
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 #-}
44 let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
55
66 let SURF = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
77
88 let adminAddress = Address(base58'3P6gGsVQbD2xgmaNxN7Rj3arohPsBxvo5GC')
99
1010 let aggrAddress = Address(base58'3P5T88oGg47FEsJcpC2o43BSF34Bs5dcFpP')
1111
1212 let usdnAggrAddress = Address(base58'3P2cpE7nusQRRFt3Tg22WtKfdi6bUKwmqVM')
13+
14+let zeftAddress = Address(base58'3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt')
1315
1416 func asAnyList (v) = match v {
1517 case l: List[Any] =>
1618 l
1719 case _ =>
1820 throw("#err")
1921 }
2022
2123
2224 func asInt (v) = match v {
2325 case x: Int =>
2426 x
2527 case t =>
2628 throw("#err")
2729 }
2830
2931
3032 @Callable(i)
3133 func usdn_100 (amount) = {
3234 let usdnAmountOnStart = assetBalance(this, USDN)
3335 if ((usdnAmountOnStart == usdnAmountOnStart))
3436 then {
3537 let inv = invoke(addressFromStringValue("3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk"), "withdrawVestedAllUSDN", [false, true], nil)
3638 if ((inv == inv))
3739 then {
3840 let usdnAmountAfterWithdraw = assetBalance(this, USDN)
3941 if ((usdnAmountAfterWithdraw == usdnAmountAfterWithdraw))
4042 then [ScriptTransfer(aggrAddress, (usdnAmountAfterWithdraw - usdnAmountOnStart), USDN)]
4143 else throw("Strict value is not equal to itself.")
4244 }
4345 else throw("Strict value is not equal to itself.")
4446 }
4547 else throw("Strict value is not equal to itself.")
4648 }
4749
4850
4951
5052 @Callable(i)
5153 func surf (w) = if (if ((i.caller != adminAddress))
5254 then (i.caller != this)
5355 else false)
5456 then throw("only admin can do")
5557 else {
5658 let neutrinoMetrics = asAnyList(invoke(addressFromStringValue("3P77iUusNwMMzWFdC8f7bftwpHyG1PBs1gq"), "calcNeutinoMetricsREADONLY", nil, nil))
5759 let BR = asInt(neutrinoMetrics[8])
5860 if ((w > BR))
5961 then {
6062 let inv = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "withdrawVestedAllSURF", [false, true], nil)
6163 if ((inv == inv))
6264 then {
6365 let aAmount = assetBalance(this, SURF)
6466 [ScriptTransfer(aggrAddress, aAmount, SURF)]
6567 }
6668 else throw("Strict value is not equal to itself.")
6769 }
6870 else throw(("br is bad. " + toString(BR)))
6971 }
7072
7173
7274
7375 @Callable(i)
7476 func toVesting (b) = if (if (if ((i.originCaller != adminAddress))
7577 then (i.originCaller != this)
7678 else false)
7779 then (i.originCaller != aggrAddress)
7880 else false)
7981 then throw("only admin can do")
8082 else if ((size(i.payments) != 1))
8183 then throw("bad payment")
8284 else {
8385 let repayAmount = i.payments[0].amount
8486 let repayAsset = i.payments[0].assetId
8587 let inv1 = invoke(Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'), "repay", [b], [AttachedPayment(repayAsset, repayAmount)])
8688 if ((inv1 == inv1))
8789 then {
8890 let inv2 = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "convertToUSDN", nil, nil)
8991 if ((inv2 == inv2))
9092 then {
9193 let inv3 = invoke(Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'), "withdraw", ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", -1], nil)
9294 if ((inv3 == inv3))
9395 then {
9496 let balance = assetBalance(this, value(repayAsset))
9597 if ((balance == balance))
9698 then [ScriptTransfer(aggrAddress, balance, repayAsset), ScriptTransfer(usdnAggrAddress, assetBalance(this, USDN), USDN)]
9799 else throw("Strict value is not equal to itself.")
98100 }
99101 else throw("Strict value is not equal to itself.")
100102 }
101103 else throw("Strict value is not equal to itself.")
102104 }
103105 else throw("Strict value is not equal to itself.")
104106 }
105107
106108
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 
24.51 ms