tx · HvUr2B356u5yF9UmXMi8LaSzcVFtt1MxGzpDjgGqb1px

3PChRF3AsJG9YX78ED7wkXLwgCz6LuJBT1Z:  -0.01000000 Waves

2024.02.01 14:11 [4022855] smart account 3PChRF3AsJG9YX78ED7wkXLwgCz6LuJBT1Z > SELF 0.00000000 Waves

{ "type": 13, "id": "HvUr2B356u5yF9UmXMi8LaSzcVFtt1MxGzpDjgGqb1px", "fee": 1000000, "feeAssetId": null, "timestamp": 1706785934815, "version": 2, "chainId": 87, "sender": "3PChRF3AsJG9YX78ED7wkXLwgCz6LuJBT1Z", "senderPublicKey": "Zqe5SqPv6kYySiE63WTvm2zCtWbEqfp7H1DwyaK8H5n", "proofs": [ "Vx5egN5uaqQXzecEs5pR52e8aBQaU5qykHfawYMPtxDtV3hyHCQQoW8xf56ckhEc8NbxvCqAN7unCPSLDUdGF1S" ], "script": "base64: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AAARQGV4dHJOYXRpdmUoMTA1OCkAAAABCQEAAAAOa2V5UG9vbEFkZHJlc3MAAAAAAQAAABVnZXRQb29sRmFjdG9yeUFkZHJlc3MAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEIgAAAAEJAQAAABVrZXlQb29sRmFjdG9yeUFkZHJlc3MAAAAABQAAAA9ERUZBVUxUX0ZBQ1RPUlkBAAAABHBvb2wAAAAACQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAOZ2V0UG9vbEFkZHJlc3MAAAAAAQAAAAdmYWN0b3J5AAAAAAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAFWdldFBvb2xGYWN0b3J5QWRkcmVzcwAAAAABAAAABm9yYWNsZQAAAAAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCIAAAABCQEAAAAQa2V5T3JhY2xlQWRkcmVzcwAAAAACAAAAEU9yYWNsZSBpcyBub3Qgc2V0AQAAAClrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cwAAAAEAAAATcG9vbENvbnRyYWN0QWRkcmVzcwkBAAAABGpvaW4AAAABCQAETAAAAAICAAAABiVzJXMlcwkABEwAAAACBQAAABNwb29sQ29udHJhY3RBZGRyZXNzCQAETAAAAAICAAAACG1hcHBpbmdzCQAETAAAAAICAAAAF3Bvb2xDb250cmFjdDJQb29sQXNzZXRzBQAAAANuaWwBAAAADWtleVBvb2xDb25maWcAAAACAAAAE2Ftb3VudEFzc2V0SW50ZXJuYWwAAAAScHJpY2VBc3NldEludGVybmFsCQEAAAAEam9pbgAAAAEJAARMAAAAAgIAAAAGJWQlZCVzCQAETAAAAAIFAAAAE2Ftb3VudEFzc2V0SW50ZXJuYWwJAARMAAAAAgUAAAAScHJpY2VBc3NldEludGVybmFsCQAETAAAAAICAAAABmNvbmZpZwUAAAADbmlsAQAAAA1nZXRQb29sQ29uZmlnAAAAAAQAAAALcG9vbEFkZHJlc3MJAQAAAA5nZXRQb29sQWRkcmVzcwAAAAAEAAAACnBvb2xBc3NldHMJAAS1AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgkBAAAAB2ZhY3RvcnkAAAAACQEAAAApa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMAAAABBQAAAAtwb29sQWRkcmVzcwUAAAADU0VQBAAAABNhbW91bnRBc3NldEludGVybmFsCQABkQAAAAIFAAAACnBvb2xBc3NldHMAAAAAAAAAAAEEAAAAEnByaWNlQXNzZXRJbnRlcm5hbAkAAZEAAAACBQAAAApwb29sQXNzZXRzAAAAAAAAAAACCQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAAAdmYWN0b3J5AAAAAAkBAAAADWtleVBvb2xDb25maWcAAAACBQAAABNhbW91bnRBc3NldEludGVybmFsBQAAABJwcmljZUFzc2V0SW50ZXJuYWwFAAAAA1NFUAEAAAAQY2hlY2tIZWlnaHREZWx0YQAAAAEAAAALcHJpY2VIZWlnaHQEAAAADm1heEhlaWdodERlbHRhBQAAABVNQVhfUkFURV9IRUlHSFRfREVMVEEEAAAAC2N1cnJlbnREaWZmCQAAZQAAAAIIBQAAAAlsYXN0QmxvY2sAAAAGaGVpZ2h0BQAAAAtwcmljZUhlaWdodAMJAABnAAAAAgUAAAAObWF4SGVpZ2h0RGVsdGEFAAAAC2N1cnJlbnREaWZmBQAAAAR1bml0CQAAAgAAAAECAAAAEkxhcmdlIHByaWNlIGRlbHRhLgEAAAATZ2V0QW10QXNzZXRVc2RQcmljZQAAAAAEAAAABnRpY2tlcgkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQkBAAAACWtleVRpY2tlcgAAAAAEAAAAC3ByaWNlSGVpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACCQEAAAAGb3JhY2xlAAAAAAkBAAAAGmtleU9yYWNsZVRpY2tlclByaWNlSGVpZ2h0AAAAAQUAAAAGdGlja2VyBAAAAAtjaGVja0hlaWdodAkBAAAAEGNoZWNrSGVpZ2h0RGVsdGEAAAABBQAAAAtwcmljZUhlaWdodAMJAAAAAAAAAgUAAAALY2hlY2tIZWlnaHQFAAAAC2NoZWNrSGVpZ2h0BAAAAAVwcmljZQkBAAAA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", "height": 4022855, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2i1jQW5DFctdbaq769vF1dYZg7FgqGJV8e7yRmmpk2Zb Next: GFAXnuQrWD66GaC8oU43ZfWyPodBryQynaktP3MdhtRc Diff:
OldNewDifferences
44 let DEFAULT_FACTORY = "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv"
55
66 let DECIMAL_18 = 1000000000000000000
7+
8+let DECIMAL_10 = 10000000000
79
810 let SEP = "__"
911
4648 }
4749
4850
49-func toIntScale8 (val) = toInt((val / toBigInt(10000000000)))
51+func toIntScale8 (val) = toInt((val / toBigInt(DECIMAL_18)))
5052
5153
5254 let IdxPoolAddress = 1
151153 let accPriceAssetBalance = asInt(invoke(pool(), "getAccBalanceWrapperREADONLY", [priceAssetId], nil))
152154 let accPriceAssetPrice = if ((poolLpBalance == 0))
153155 then 0
154- else toIntScale8(parseBigIntValue({
156+ else parseBigIntValue({
155157 let @ = ({
156158 let @ = invoke(pool(), "calcPricesWrapperREADONLY", [accAmtAssetBalance, accPriceAssetBalance, poolLpBalance], nil)
157159 if ($isInstanceOf(@, "List[Any]"))
161163 if ($isInstanceOf(@, "String"))
162164 then @
163165 else throw("Couldn't cast Any to String")
164- }))
165- let accAmtAssetEq = (accAmtAssetBalance + fraction(accPriceAssetBalance, DECIMAL_18, accPriceAssetPrice))
166- let accAmtAssetPrice = getAmtAssetUsdPrice()
167- let LPPrice = fraction(accAmtAssetEq, accAmtAssetPrice, poolLpBalance)
168- $Tuple2(nil, [poolLpBalance, accAmtAssetBalance, accPriceAssetBalance, accAmtAssetEq, accAmtAssetPrice, LPPrice])
166+ })
167+ $Tuple2(nil, [poolLpBalance, accAmtAssetBalance, accPriceAssetBalance, accPriceAssetPrice])
169168 }
170169
171170
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let DEFAULT_FACTORY = "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv"
55
66 let DECIMAL_18 = 1000000000000000000
7+
8+let DECIMAL_10 = 10000000000
79
810 let SEP = "__"
911
1012 let EMPTY = ""
1113
1214 let PRECISION = 1000000000000
1315
1416 let DECIMALS = 100000000
1517
1618 let MAX_RATE_HEIGHT_DELTA = 5
1719
1820 let ORACLE_DECIMALS = 1000000
1921
2022 func join (ar) = makeString(ar, SEP)
2123
2224
2325 func checkAddress (_address) = match addressFromString(_address) {
2426 case address: Address =>
2527 true
2628 case _: Unit =>
2729 throw("Invalid address")
2830 case _ =>
2931 throw("Match error")
3032 }
3133
3234
3335 func asInt (val) = match val {
3436 case valInt: Int =>
3537 valInt
3638 case _ =>
3739 throw("fail to cast into Int")
3840 }
3941
4042
4143 func asString (val) = match val {
4244 case valStr: String =>
4345 valStr
4446 case _ =>
4547 throw("fail to cast into String")
4648 }
4749
4850
49-func toIntScale8 (val) = toInt((val / toBigInt(10000000000)))
51+func toIntScale8 (val) = toInt((val / toBigInt(DECIMAL_18)))
5052
5153
5254 let IdxPoolAddress = 1
5355
5456 let IdxPoolStatus = 2
5557
5658 let IdxPoolLPAssetId = 3
5759
5860 let IdxAmtAssetId = 4
5961
6062 let IdxPriceAssetId = 5
6163
6264 let IdxAmtAssetDcm = 6
6365
6466 let IdxPriceAssetDcm = 7
6567
6668 let IdxIAmtAssetId = 8
6769
6870 let IdxIPriceAssetId = 9
6971
7072 let IdxLPAssetDcm = 10
7173
7274 let IdxPoolType = 11
7375
7476 func keyPoolAddress () = join(["%s", "poolAddress"])
7577
7678
7779 func keyPoolFactoryAddress () = join(["%s", "poolFactoryAddress"])
7880
7981
8082 func keyTicker () = join(["%s", "ticker"])
8183
8284
8385 func keyOracleTickerPriceHeight (ticker) = join(["%s%s", "lastHeight", ticker])
8486
8587
8688 func keyOracleAddress () = join(["%s", "oracleAddress"])
8789
8890
8991 func keyOracleTickerPrice (ticker) = join(["%s%s", "price", ticker])
9092
9193
9294 func getPoolAddress () = getStringValue(keyPoolAddress())
9395
9496
9597 func getPoolFactoryAddress () = valueOrElse(getString(keyPoolFactoryAddress()), DEFAULT_FACTORY)
9698
9799
98100 func pool () = addressFromStringValue(getPoolAddress())
99101
100102
101103 func factory () = addressFromStringValue(getPoolFactoryAddress())
102104
103105
104106 func oracle () = addressFromStringValue(valueOrErrorMessage(getString(keyOracleAddress()), "Oracle is not set"))
105107
106108
107109 func keyMappingPoolContractAddressToPoolAssets (poolContractAddress) = join(["%s%s%s", poolContractAddress, "mappings", "poolContract2PoolAssets"])
108110
109111
110112 func keyPoolConfig (amountAssetInternal,priceAssetInternal) = join(["%d%d%s", amountAssetInternal, priceAssetInternal, "config"])
111113
112114
113115 func getPoolConfig () = {
114116 let poolAddress = getPoolAddress()
115117 let poolAssets = split(getStringValue(factory(), keyMappingPoolContractAddressToPoolAssets(poolAddress)), SEP)
116118 let amountAssetInternal = poolAssets[1]
117119 let priceAssetInternal = poolAssets[2]
118120 split(getStringValue(factory(), keyPoolConfig(amountAssetInternal, priceAssetInternal)), SEP)
119121 }
120122
121123
122124 func checkHeightDelta (priceHeight) = {
123125 let maxHeightDelta = MAX_RATE_HEIGHT_DELTA
124126 let currentDiff = (lastBlock.height - priceHeight)
125127 if ((maxHeightDelta >= currentDiff))
126128 then unit
127129 else throw("Large price delta.")
128130 }
129131
130132
131133 func getAmtAssetUsdPrice () = {
132134 let ticker = getStringValue(keyTicker())
133135 let priceHeight = getIntegerValue(oracle(), keyOracleTickerPriceHeight(ticker))
134136 let checkHeight = checkHeightDelta(priceHeight)
135137 if ((checkHeight == checkHeight))
136138 then {
137139 let price = getIntegerValue(oracle(), keyOracleTickerPrice(ticker))
138140 fraction(price, PRECISION, ORACLE_DECIMALS)
139141 }
140142 else throw("Strict value is not equal to itself.")
141143 }
142144
143145
144146 func getAssetUsdPrice () = {
145147 let cfg = getPoolConfig()
146148 let lpAssetId = fromBase58String(cfg[IdxPoolLPAssetId])
147149 let amtAssetId = cfg[IdxAmtAssetId]
148150 let priceAssetId = cfg[IdxPriceAssetId]
149151 let poolLpBalance = value(assetInfo(lpAssetId)).quantity
150152 let accAmtAssetBalance = asInt(invoke(pool(), "getAccBalanceWrapperREADONLY", [amtAssetId], nil))
151153 let accPriceAssetBalance = asInt(invoke(pool(), "getAccBalanceWrapperREADONLY", [priceAssetId], nil))
152154 let accPriceAssetPrice = if ((poolLpBalance == 0))
153155 then 0
154- else toIntScale8(parseBigIntValue({
156+ else parseBigIntValue({
155157 let @ = ({
156158 let @ = invoke(pool(), "calcPricesWrapperREADONLY", [accAmtAssetBalance, accPriceAssetBalance, poolLpBalance], nil)
157159 if ($isInstanceOf(@, "List[Any]"))
158160 then @
159161 else throw("Couldn't cast Any to List[Any]")
160162 })[0]
161163 if ($isInstanceOf(@, "String"))
162164 then @
163165 else throw("Couldn't cast Any to String")
164- }))
165- let accAmtAssetEq = (accAmtAssetBalance + fraction(accPriceAssetBalance, DECIMAL_18, accPriceAssetPrice))
166- let accAmtAssetPrice = getAmtAssetUsdPrice()
167- let LPPrice = fraction(accAmtAssetEq, accAmtAssetPrice, poolLpBalance)
168- $Tuple2(nil, [poolLpBalance, accAmtAssetBalance, accPriceAssetBalance, accAmtAssetEq, accAmtAssetPrice, LPPrice])
166+ })
167+ $Tuple2(nil, [poolLpBalance, accAmtAssetBalance, accPriceAssetBalance, accPriceAssetPrice])
169168 }
170169
171170
172171 @Callable(i)
173172 func initialize (_oracleAddress,_poolAddress,_ticker) = {
174173 let doChecks = [checkAddress(_oracleAddress), checkAddress(_poolAddress)]
175174 if ((doChecks == doChecks))
176175 then [StringEntry(keyOracleAddress(), _oracleAddress), StringEntry(keyPoolAddress(), _poolAddress), StringEntry(keyTicker(), _ticker)]
177176 else throw("Strict value is not equal to itself.")
178177 }
179178
180179
181180
182181 @Callable(i)
183182 func getCurrentUsdPrice () = $Tuple2(nil, getAssetUsdPrice())
184183
185184
186185 @Verifier(tx)
187186 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
188187

github/deemru/w8io/6500d08 
28.93 ms