tx · BCHCeG5kUqPm1GRRg8KEDiUWDod8EgCanB1Xc3BrtfQs

3PChRF3AsJG9YX78ED7wkXLwgCz6LuJBT1Z:  -0.01000000 Waves

2024.01.31 23:56 [4022004] smart account 3PChRF3AsJG9YX78ED7wkXLwgCz6LuJBT1Z > SELF 0.00000000 Waves

{ "type": 13, "id": "BCHCeG5kUqPm1GRRg8KEDiUWDod8EgCanB1Xc3BrtfQs", "fee": 1000000, "feeAssetId": null, "timestamp": 1706734633751, "version": 2, "chainId": 87, "sender": "3PChRF3AsJG9YX78ED7wkXLwgCz6LuJBT1Z", "senderPublicKey": "Zqe5SqPv6kYySiE63WTvm2zCtWbEqfp7H1DwyaK8H5n", "proofs": [ "3971AVDPj6amgVDjgTYiqQi2aKuwz9EVadpscrsKZcGb7xEHML1UYVTYuW7p9edU116PSztHwUFcdWMptphFfVPL" ], "script": "base64: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dHMAAAABBQAAAAtwb29sQWRkcmVzcwUAAAADU0VQBAAAABNhbW91bnRBc3NldEludGVybmFsCQABkQAAAAIFAAAACnBvb2xBc3NldHMAAAAAAAAAAAEEAAAAEnByaWNlQXNzZXRJbnRlcm5hbAkAAZEAAAACBQAAAApwb29sQXNzZXRzAAAAAAAAAAACCQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAAAdmYWN0b3J5AAAAAAkBAAAADWtleVBvb2xDb25maWcAAAACBQAAABNhbW91bnRBc3NldEludGVybmFsBQAAABJwcmljZUFzc2V0SW50ZXJuYWwFAAAAA1NFUAEAAAAQY2hlY2tIZWlnaHREZWx0YQAAAAEAAAALcHJpY2VIZWlnaHQEAAAADm1heEhlaWdodERlbHRhBQAAABVNQVhfUkFURV9IRUlHSFRfREVMVEEEAAAAC2N1cnJlbnREaWZmCQAAZQAAAAIIBQAAAAlsYXN0QmxvY2sAAAAGaGVpZ2h0BQAAAAtwcmljZUhlaWdodAMJAABnAAAAAgUAAAAObWF4SGVpZ2h0RGVsdGEFAAAAC2N1cnJlbnREaWZmBQAAAAR1bml0CQAAAgAAAAECAAAAEkxhcmdlIHByaWNlIGRlbHRhLgEAAAATZ2V0QW10QXNzZXRVc2RQcmljZQAAAAAEAAAABnRpY2tlcgkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQkBAAAACWtleVRpY2tlcgAAAAAEAAAAC3ByaWNlSGVpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACCQEAAAAGb3JhY2xlAAAAAAkBAAAAGmtleU9yYWNsZVRpY2tlclByaWNlSGVpZ2h0AAAAAQUAAAAGdGlja2VyBAAAAAtjaGVja0hlaWdodAkBAAAAEGNoZWNrSGVpZ2h0RGVsdGEAAAABBQAAAAtwcmljZUhlaWdodAMJAAAAAAAAAgUAAAALY2hlY2tIZWlnaHQFAAAAC2NoZWNrSGVpZ2h0BAAAAAVwcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAABm9yYWNsZQAAAAAJAQAAABRrZXlPcmFjbGVUaWNrZXJQcmljZQAAAAEFAAAABnRpY2tlcgkAAGsAAAADBQAA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", "height": 4022004, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ERmjmuXdRBwcMhRDP8eTCB8Eui2TKxa2UFL72QH2jGJZ Next: 2i1jQW5DFctdbaq769vF1dYZg7FgqGJV8e7yRmmpk2Zb Diff:
OldNewDifferences
162162 let accAmtAssetEq = (toBigInt(accAmtAssetBalance) + fraction(toBigInt(accPriceAssetBalance), DECIMAL_18, accPriceAssetPrice))
163163 let accAmtAssetPrice = getAmtAssetUsdPrice()
164164 let LPPrice = fraction(accAmtAssetEq, toBigInt(accAmtAssetPrice), toBigInt(poolLpBalance))
165- $Tuple2(nil, LPPrice)
165+ $Tuple2(nil, [LPPrice, accPriceAssetPrice, accAmtAssetPrice, poolLpBalance])
166166 }
167167
168168
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let DEFAULT_FACTORY = "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv"
55
66 let DECIMAL_18 = toBigInt(1000000000000000000)
77
88 let SEP = "__"
99
1010 let EMPTY = ""
1111
1212 let PRECISION = 1000000000000
1313
1414 let DECIMALS = 100000000
1515
1616 let MAX_RATE_HEIGHT_DELTA = 5
1717
1818 let ORACLE_DECIMALS = 1000000
1919
2020 func join (ar) = makeString(ar, SEP)
2121
2222
2323 func checkAddress (_address) = match addressFromString(_address) {
2424 case address: Address =>
2525 true
2626 case _: Unit =>
2727 throw("Invalid address")
2828 case _ =>
2929 throw("Match error")
3030 }
3131
3232
3333 let IdxPoolAddress = 1
3434
3535 let IdxPoolStatus = 2
3636
3737 let IdxPoolLPAssetId = 3
3838
3939 let IdxAmtAssetId = 4
4040
4141 let IdxPriceAssetId = 5
4242
4343 let IdxAmtAssetDcm = 6
4444
4545 let IdxPriceAssetDcm = 7
4646
4747 let IdxIAmtAssetId = 8
4848
4949 let IdxIPriceAssetId = 9
5050
5151 let IdxLPAssetDcm = 10
5252
5353 let IdxPoolType = 11
5454
5555 func keyPoolAddress () = join(["%s", "poolAddress"])
5656
5757
5858 func keyPoolFactoryAddress () = join(["%s", "poolFactoryAddress"])
5959
6060
6161 func keyTicker () = join(["%s", "ticker"])
6262
6363
6464 func keyOracleTickerPriceHeight (ticker) = join(["%s%s", "lastHeight", ticker])
6565
6666
6767 func keyOracleAddress () = join(["%s", "oracleAddress"])
6868
6969
7070 func keyOracleTickerPrice (ticker) = join(["%s%s", "price", ticker])
7171
7272
7373 func getPoolAddress () = getStringValue(keyPoolAddress())
7474
7575
7676 func getPoolFactoryAddress () = valueOrElse(getString(keyPoolFactoryAddress()), DEFAULT_FACTORY)
7777
7878
7979 func pool () = addressFromStringValue(getPoolAddress())
8080
8181
8282 func factory () = addressFromStringValue(getPoolFactoryAddress())
8383
8484
8585 func oracle () = addressFromStringValue(valueOrErrorMessage(getString(keyOracleAddress()), "Oracle is not set"))
8686
8787
8888 func keyMappingPoolContractAddressToPoolAssets (poolContractAddress) = join(["%s%s%s", poolContractAddress, "mappings", "poolContract2PoolAssets"])
8989
9090
9191 func keyPoolConfig (amountAssetInternal,priceAssetInternal) = join(["%d%d%s", amountAssetInternal, priceAssetInternal, "config"])
9292
9393
9494 func asInt (val) = match val {
9595 case valInt: Int =>
9696 valInt
9797 case _ =>
9898 throw("fail to cast into Int")
9999 }
100100
101101
102102 func asString (val) = match val {
103103 case valStr: String =>
104104 valStr
105105 case _ =>
106106 throw("fail to cast into String")
107107 }
108108
109109
110110 func getPoolConfig () = {
111111 let poolAddress = getPoolAddress()
112112 let poolAssets = split(getStringValue(factory(), keyMappingPoolContractAddressToPoolAssets(poolAddress)), SEP)
113113 let amountAssetInternal = poolAssets[1]
114114 let priceAssetInternal = poolAssets[2]
115115 split(getStringValue(factory(), keyPoolConfig(amountAssetInternal, priceAssetInternal)), SEP)
116116 }
117117
118118
119119 func checkHeightDelta (priceHeight) = {
120120 let maxHeightDelta = MAX_RATE_HEIGHT_DELTA
121121 let currentDiff = (lastBlock.height - priceHeight)
122122 if ((maxHeightDelta >= currentDiff))
123123 then unit
124124 else throw("Large price delta.")
125125 }
126126
127127
128128 func getAmtAssetUsdPrice () = {
129129 let ticker = getStringValue(keyTicker())
130130 let priceHeight = getIntegerValue(oracle(), keyOracleTickerPriceHeight(ticker))
131131 let checkHeight = checkHeightDelta(priceHeight)
132132 if ((checkHeight == checkHeight))
133133 then {
134134 let price = getIntegerValue(oracle(), keyOracleTickerPrice(ticker))
135135 fraction(price, PRECISION, ORACLE_DECIMALS)
136136 }
137137 else throw("Strict value is not equal to itself.")
138138 }
139139
140140
141141 func getAssetUsdPrice () = {
142142 let cfg = getPoolConfig()
143143 let lpAssetId = fromBase58String(cfg[IdxPoolLPAssetId])
144144 let amtAssetId = cfg[IdxAmtAssetId]
145145 let priceAssetId = cfg[IdxPriceAssetId]
146146 let poolLpBalance = value(assetInfo(lpAssetId)).quantity
147147 let accAmtAssetBalance = asInt(invoke(pool(), "getAccBalanceWrapperREADONLY", [amtAssetId], nil))
148148 let accPriceAssetBalance = asInt(invoke(pool(), "getAccBalanceWrapperREADONLY", [priceAssetId], nil))
149149 let accPriceAssetPrice = if ((poolLpBalance == 0))
150150 then toBigInt(0)
151151 else parseBigIntValue({
152152 let @ = ({
153153 let @ = invoke(pool(), "calcPricesWrapperREADONLY", [accAmtAssetBalance, accPriceAssetBalance, poolLpBalance], nil)
154154 if ($isInstanceOf(@, "List[Any]"))
155155 then @
156156 else throw("Couldn't cast Any to List[Any]")
157157 })[0]
158158 if ($isInstanceOf(@, "String"))
159159 then @
160160 else throw("Couldn't cast Any to String")
161161 })
162162 let accAmtAssetEq = (toBigInt(accAmtAssetBalance) + fraction(toBigInt(accPriceAssetBalance), DECIMAL_18, accPriceAssetPrice))
163163 let accAmtAssetPrice = getAmtAssetUsdPrice()
164164 let LPPrice = fraction(accAmtAssetEq, toBigInt(accAmtAssetPrice), toBigInt(poolLpBalance))
165- $Tuple2(nil, LPPrice)
165+ $Tuple2(nil, [LPPrice, accPriceAssetPrice, accAmtAssetPrice, poolLpBalance])
166166 }
167167
168168
169169 @Callable(i)
170170 func initialize (_oracleAddress,_poolAddress,_ticker) = {
171171 let doChecks = [checkAddress(_oracleAddress), checkAddress(_poolAddress)]
172172 if ((doChecks == doChecks))
173173 then [StringEntry(keyOracleAddress(), _oracleAddress), StringEntry(keyPoolAddress(), _poolAddress), StringEntry(keyTicker(), _ticker)]
174174 else throw("Strict value is not equal to itself.")
175175 }
176176
177177
178178
179179 @Callable(i)
180180 func getCurrentUsdPrice () = $Tuple2(nil, getAssetUsdPrice())
181181
182182
183183 @Verifier(tx)
184184 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
185185

github/deemru/w8io/6500d08 
24.84 ms