tx · ALSyjvDVKxkFhaACEuVFweozBT7CFNdrKEn7h1dDQboC

3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h:  -0.05000000 Waves

2023.03.27 13:19 [2508251] smart account 3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h > SELF 0.00000000 Waves

{ "type": 13, "id": "ALSyjvDVKxkFhaACEuVFweozBT7CFNdrKEn7h1dDQboC", "fee": 5000000, "feeAssetId": null, "timestamp": 1679912378771, "version": 2, "chainId": 84, "sender": "3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h", "senderPublicKey": "3z8Q6Zu3KppVmn6fJJvrLc1Wo3krVHSvfaNcerm82md2", "proofs": [ "CA5ZK2ZAME1QXkL71CKHY7MZ7F6oDZBdynva8yTQnmat7tVM4oMKvGshZQxarhGxP337ivBkyofqkDtZFvypHDQ" ], "script": "base64:BgIPCAISABIAEgASBQoDAQEBCwAMY29udHJhY3RGaWxlAglyZWJhbGFuY2UAD2tleXNUYXJnZXRSYXRpbwIPJXNfX3RhcmdldFJhdGlvABRrZXlBZGRpdGlvbmFsQmFsYW5jZQIaJXNfX2FkZGl0aW9uYWxXYXZlc0JhbGFuY2UAGmtleVNXYXZlc0FkZGl0aW9uYWxCYWxhbmNlAhElc19fc1dhdmVzQmFsYW5jZQAQa2V5U1dhdmVzQXNzZXRJZAIRJXNfX3NXYXZlc0Fzc2V0SWQAD2tleVByb3h5QWRkcmVzcwIQJXNfX3Byb3h5QWRkcmVzcwEQZ2V0SW50ZWdlck9yWmVybwEKaW50ZWdlcktleQQHJG1hdGNoMAkAmggCBQR0aGlzBQppbnRlZ2VyS2V5AwkAAQIFByRtYXRjaDACA0ludAQDdmFsBQckbWF0Y2gwBQN2YWwAAAEQZ2V0U3RyaW5nT3JUaHJvdwEJc3RyaW5nS2V5BAckbWF0Y2gwCQCdCAIFBHRoaXMFCXN0cmluZ0tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMJAAIBCQCsAgIJAKwCAgIBWwUJc3RyaW5nS2V5AgpdIGlzIGVtcHR5ARRpbnRlcm5hbFdhdmVzQmFsYW5jZQAJAGQCCAkA7wcBBQR0aGlzB3JlZ3VsYXIJARBnZXRJbnRlZ2VyT3JaZXJvAQUUa2V5QWRkaXRpb25hbEJhbGFuY2UBC2N1cnJlbnRSYXRlAAQRYWRkaXRpb25hbEJhbGFuY2UJARBnZXRJbnRlZ2VyT3JaZXJvAQUUa2V5QWRkaXRpb25hbEJhbGFuY2UEDXNXYXZlc0JhbGFuY2UJARBnZXRJbnRlZ2VyT3JaZXJvAQUaa2V5U1dhdmVzQWRkaXRpb25hbEJhbGFuY2UDCQAAAgURYWRkaXRpb25hbEJhbGFuY2UAAAAACQBrAwCAyK+gJQURYWRkaXRpb25hbEJhbGFuY2UFDXNXYXZlc0JhbGFuY2UBB2dldFJhdGUABAVwcm94eQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEGdldFN0cmluZ09yVGhyb3cBBQ9rZXlQcm94eUFkZHJlc3MJAPwHBAUFcHJveHkCB2dldHJhdGUFA25pbAUDbmlsBAFpARJyZXR1cm5XYXZlc0JhbGFuY2UACQCUCgIFA25pbAkBFGludGVybmFsV2F2ZXNCYWxhbmNlAAFpARNyZXR1cm5TV2F2ZXNCYWxhbmNlAAkAlAoCBQNuaWwJARBnZXRJbnRlZ2VyT3JaZXJvAQUaa2V5U1dhdmVzQWRkaXRpb25hbEJhbGFuY2UBaQEJY2FsY1JhdGlvAAQTcmVndWxhcldhdmVzQmFsYW5jZQgJAO8HAQUEdGhpcwdyZWd1bGFyBAphZGRpdGlvbmFsCQEQZ2V0SW50ZWdlck9yWmVybwEFFGtleUFkZGl0aW9uYWxCYWxhbmNlBAVyYXRpbwkAawMAZAUKYWRkaXRpb25hbAkAZAIFCmFkZGl0aW9uYWwFE3JlZ3VsYXJXYXZlc0JhbGFuY2UJAJQKAgUDbmlsBQVyYXRpbwFpAQ1jYWxjUmF0aW9UZXN0Aw5yZWd1bGFyQmFsYW5jZQphZGRpdGlvbmFsC3RhcmdldFJhdGlvBANzdW0JAGQCBQ5yZWd1bGFyQmFsYW5jZQUKYWRkaXRpb25hbAQXdGFyZ2V0QWRkaXRpb25hbEJhbGFuY2UJAGsDBQt0YXJnZXRSYXRpbwUDc3VtAGQEBmNoYW5nZQkAZQIFCmFkZGl0aW9uYWwFF3RhcmdldEFkZGl0aW9uYWxCYWxhbmNlBAZuZXdSZWcJAGQCBQ5yZWd1bGFyQmFsYW5jZQUGY2hhbmdlAwkAZgIAAAUGY2hhbmdlBApzZW5kQW1vdW50CQBoAgUGY2hhbmdlAP///////////wEJAJQKAgUDbmlsCQDMCAIFBm5ld1JlZwkAzAgCBRd0YXJnZXRBZGRpdGlvbmFsQmFsYW5jZQkAzAgCBQZjaGFuZ2UJAMwIAgkArAICAglkZXBvc2l0OiAJAKQDAQUKc2VuZEFtb3VudAUDbmlsBApzZW5kQW1vdW50BQZjaGFuZ2UJAJQKAgUDbmlsCQDMCAIFBm5ld1JlZwkAzAgCBRd0YXJnZXRBZGRpdGlvbmFsQmFsYW5jZQkAzAgCBQZjaGFuZ2UJAMwIAgkArAICAgp3aXRoZHJhdzogCQCkAwEFCnNlbmRBbW91bnQFA25pbADwfy0W", "height": 2508251, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7udwsQSXbHLwcqkw8Wt1byuy3hDwZmnBPDmTp27xMMy2 Next: 6qZasWNEcJVm1eUmdNVzTegkBZVf4PBbf7BsRfchMfJB Diff:
OldNewDifferences
3838 if ((additionalBalance == 0))
3939 then 0
4040 else fraction(10000000000, additionalBalance, sWavesBalance)
41+ }
42+
43+
44+func getRate () = {
45+ let proxy = addressFromStringValue(getStringOrThrow(keyProxyAddress))
46+ invoke(proxy, "getrate", nil, nil)
4147 }
4248
4349
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let contractFile = "rebalance"
55
66 let keysTargetRatio = "%s__targetRatio"
77
88 let keyAdditionalBalance = "%s__additionalWavesBalance"
99
1010 let keySWavesAdditionalBalance = "%s__sWavesBalance"
1111
1212 let keySWavesAssetId = "%s__sWavesAssetId"
1313
1414 let keyProxyAddress = "%s__proxyAddress"
1515
1616 func getIntegerOrZero (integerKey) = match getInteger(this, integerKey) {
1717 case val: Int =>
1818 val
1919 case _ =>
2020 0
2121 }
2222
2323
2424 func getStringOrThrow (stringKey) = match getString(this, stringKey) {
2525 case s: String =>
2626 s
2727 case _ =>
2828 throw((("[" + stringKey) + "] is empty"))
2929 }
3030
3131
3232 func internalWavesBalance () = (wavesBalance(this).regular + getIntegerOrZero(keyAdditionalBalance))
3333
3434
3535 func currentRate () = {
3636 let additionalBalance = getIntegerOrZero(keyAdditionalBalance)
3737 let sWavesBalance = getIntegerOrZero(keySWavesAdditionalBalance)
3838 if ((additionalBalance == 0))
3939 then 0
4040 else fraction(10000000000, additionalBalance, sWavesBalance)
41+ }
42+
43+
44+func getRate () = {
45+ let proxy = addressFromStringValue(getStringOrThrow(keyProxyAddress))
46+ invoke(proxy, "getrate", nil, nil)
4147 }
4248
4349
4450 @Callable(i)
4551 func returnWavesBalance () = $Tuple2(nil, internalWavesBalance())
4652
4753
4854
4955 @Callable(i)
5056 func returnSWavesBalance () = $Tuple2(nil, getIntegerOrZero(keySWavesAdditionalBalance))
5157
5258
5359
5460 @Callable(i)
5561 func calcRatio () = {
5662 let regularWavesBalance = wavesBalance(this).regular
5763 let additional = getIntegerOrZero(keyAdditionalBalance)
5864 let ratio = fraction(100, additional, (additional + regularWavesBalance))
5965 $Tuple2(nil, ratio)
6066 }
6167
6268
6369
6470 @Callable(i)
6571 func calcRatioTest (regularBalance,additional,targetRatio) = {
6672 let sum = (regularBalance + additional)
6773 let targetAdditionalBalance = fraction(targetRatio, sum, 100)
6874 let change = (additional - targetAdditionalBalance)
6975 let newReg = (regularBalance + change)
7076 if ((0 > change))
7177 then {
7278 let sendAmount = (change * -1)
7379 $Tuple2(nil, [newReg, targetAdditionalBalance, change, ("deposit: " + toString(sendAmount))])
7480 }
7581 else {
7682 let sendAmount = change
7783 $Tuple2(nil, [newReg, targetAdditionalBalance, change, ("withdraw: " + toString(sendAmount))])
7884 }
7985 }
8086
8187

github/deemru/w8io/873ac7e 
27.16 ms