tx · 7LRNRyUPigY98u24ovpmV5cDbdHUEAS2dzA4iVH7YEMW

3PChRF3AsJG9YX78ED7wkXLwgCz6LuJBT1Z:  -0.01000000 Waves

2024.01.31 23:05 [4021950] smart account 3PChRF3AsJG9YX78ED7wkXLwgCz6LuJBT1Z > SELF 0.00000000 Waves

{ "type": 13, "id": "7LRNRyUPigY98u24ovpmV5cDbdHUEAS2dzA4iVH7YEMW", "fee": 1000000, "feeAssetId": null, "timestamp": 1706731530452, "version": 2, "chainId": 87, "sender": "3PChRF3AsJG9YX78ED7wkXLwgCz6LuJBT1Z", "senderPublicKey": "Zqe5SqPv6kYySiE63WTvm2zCtWbEqfp7H1DwyaK8H5n", "proofs": [ "okwDLK855UurV9T1YN1qsgCX5iU5QNP6fnZKcPGA4JBykCKeJp8ikfvE3deHNXA9HebbKi81A78ZdvqkWdnoUcE" ], "script": "base64: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eU9yYWNsZUFkZHJlc3MAAAAAAgAAABFPcmFjbGUgaXMgbm90IHNldAEAAAApa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMAAAABAAAAE3Bvb2xDb250cmFjdEFkZHJlc3MJAQAAAARqb2luAAAAAQkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgUAAAATcG9vbENvbnRyYWN0QWRkcmVzcwkABEwAAAACAgAAAAhtYXBwaW5ncwkABEwAAAACAgAAABdwb29sQ29udHJhY3QyUG9vbEFzc2V0cwUAAAADbmlsAQAAAA1rZXlQb29sQ29uZmlnAAAAAgAAABNhbW91bnRBc3NldEludGVybmFsAAAAEnByaWNlQXNzZXRJbnRlcm5hbAkBAAAABGpvaW4AAAABCQAETAAAAAICAAAABiVkJWQlcwkABEwAAAACBQAAABNhbW91bnRBc3NldEludGVybmFsCQAETAAAAAIFAAAAEnByaWNlQXNzZXRJbnRlcm5hbAkABEwAAAACAgAAAAZjb25maWcFAAAAA25pbAEAAAANZ2V0UG9vbENvbmZpZwAAAAAEAAAAC3Bvb2xBZGRyZXNzCQEAAAAOZ2V0UG9vbEFkZHJlc3MAAAAABAAAAApwb29sQXNzZXRzCQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAAAdmYWN0b3J5AAAAAAkBAAAAKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzAAAAAQUAAAALcG9vbEFkZHJlc3MFAAAAA1NFUAQAAAATYW1vdW50QXNzZXRJbnRlcm5hbAkAAZEAAAACBQAAAApwb29sQXNzZXRzAAAAAAAAAAABBAAAABJwcmljZUFzc2V0SW50ZXJuYWwJAAGRAAAAAgUAAAAKcG9vbEFzc2V0cwAAAAAAAAAAAgkABLUAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACCQEAAAAHZmFjdG9yeQAAAAAJAQAAAA1rZXlQb29sQ29uZmlnAAAAAgUAAAATYW1vdW50QXNzZXRJbnRlcm5hbAUAAAAScHJpY2VBc3NldEludGVybmFsBQAAAANTRVABAAAAEGNoZWNrSGVpZ2h0RGVsdGEAAAABAAAAC3ByaWNlSGVpZ2h0BAAAAA5tYXhIZWlnaHREZWx0YQUAAAAVTUFYX1JBVEVfSEVJR0hUX0RFTFRBBAAAAAtjdXJyZW50RGlmZgkAAGUAAAACCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAUAAAALcHJpY2VIZWlnaHQDCQAAZwAAAAIFAAAADm1heEhlaWdodERlbHRhBQAAAAtjdXJyZW50RGlmZgUAAAAEdW5pdAkAAAIAAAABAgAAABJMYXJnZSBwcmljZSBkZWx0YS4BAAAAE2dldEFtdEFzc2V0VXNkUHJpY2UAAAAABAAAAAZ0aWNrZXIJAQAAABFAZXh0ck5hdGl2ZSgxMDU4KQAAAAEJAQAAAAlrZXlUaWNrZXIAAAAABAAAAAtwcmljZUhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAABm9yYWNsZQAAAAAJAQAAABprZXlPcmFjbGVUaWNrZXJQcmljZUhlaWdodAAAAAEFAAAABnRpY2tlcgQAAAALY2hlY2tIZWlnaHQJAQAAABBjaGVja0hlaWdodERlbHRhAAAAAQUAAAALcHJpY2VIZWlnaHQDCQAAAAAAAAIFAAAAC2NoZWNrSGVpZ2h0BQAAAAtjaGVja0hlaWdodAQAAAAFcHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAZvcmFjbGUAAAAACQEAAAAUa2V5T3JhY2xlVGlja2VyUHJpY2UAAAABBQAAAAZ0aWNrZXIJAABrAAAAAwUAAAAFcHJpY2UFAAAACVBSRUNJU0lPTgUAAAAPT1JBQ0xFX0RFQ0lNQUxTCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEAAAAQZ2V0QXNzZXRVc2RQcmljZQAAAAAEAAAAA2NmZwkBAAAADWdldFBvb2xDb25maWcAAAAABAAAAAlscEFzc2V0SWQJAAJZAAAAAQkAAZEAAAACBQAAAANjZmcFAAAAEElkeFBvb2xMUEFzc2V0SWQEAAAACmFtdEFzc2V0SWQJAAGRAAAAAgUAAAADY2ZnBQAAAA1JZHhBbXRBc3NldElkBAAAAAxwcmljZUFzc2V0SWQJAAGRAAAAAgUAAAADY2ZnBQAAAA9JZHhQcmljZUFzc2V0SWQEAAAADXBvb2xMcEJhbGFuY2UICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAACWxwQXNzZXRJZAAAAAhxdWFudGl0eQQAAAASYWNjQW10QXNzZXRCYWxhbmNlCgAAAAABQAkAA/wAAAAECQEAAAAEcG9vbAAAAAACAAAAHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAARMAAAAAgUAAAAKYW10QXNzZXRJZAUAAAADbmlsBQAAAANuaWwDCQAAAQAAAAIFAAAAAUACAAAAA0ludAUAAAABQAkAAAIAAAABAgAAABhDb3VsZG4ndCBjYXN0IEFueSB0byBJbnQEAAAAFGFjY1ByaWNlQXNzZXRCYWxhbmNlCgAAAAABQAkAA/wAAAAECQEAAAAEcG9vbAAAAAACAAAAHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAARMAAAAAgUAAAAMcHJpY2VBc3NldElkBQAAAANuaWwFAAAAA25pbAMJAAABAAAAAgUAAAABQAIAAAADSW50BQAAAAFACQAAAgAAAAECAAAAGENvdWxkbid0IGNhc3QgQW55IHRvIEludAQAAAASYWNjUHJpY2VBc3NldFByaWNlAwkAAAAAAAACBQAAAA1wb29sTHBCYWxhbmNlAAAAAAAAAAAAAAAAAAAAAAAACQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEKAAAAAAFACQABkQAAAAIKAAAAAAFACQAD/AAAAAQJAQAAAARwb29sAAAAAAIAAAAZY2FsY1ByaWNlc1dyYXBwZXJSRUFET05MWQkABEwAAAACBQAAABJhY2NBbXRBc3NldEJhbGFuY2UJAARMAAAAAgUAAAAUYWNjUHJpY2VBc3NldEJhbGFuY2UJAARMAAAAAgUAAAANcG9vbExwQmFsYW5jZQUAAAADbmlsBQAAAANuaWwDCQAAAQAAAAIFAAAAAUACAAAACUxpc3RbQW55XQUAAAABQAkAAAIAAAABAgAAAB5Db3VsZG4ndCBjYXN0IEFueSB0byBMaXN0W0FueV0AAAAAAAAAAAADCQAAAQAAAAIFAAAAAUACAAAABlN0cmluZwUAAAABQAkAAAIAAAABAgAAABtDb3VsZG4ndCBjYXN0IEFueSB0byBTdHJpbmcEAAAADWFjY0FtdEFzc2V0RXEJAABkAAAAAgUAAAASYWNjQW10QXNzZXRCYWxhbmNlCQAAawAAAAMFAAAAFGFjY1ByaWNlQXNzZXRCYWxhbmNlBQAAAApERUNJTUFMXzE4BQAAABJhY2NQcmljZUFzc2V0UHJpY2UEAAAAEGFjY0FtdEFzc2V0UHJpY2UJAQAAABNnZXRBbXRBc3NldFVzZFByaWNlAAAAAAQAAAAHTFBQcmljZQkAAGsAAAADBQAAAA1hY2NBbXRBc3NldEVxBQAAABBhY2NBbXRBc3NldFByaWNlBQAAAA1wb29sTHBCYWxhbmNlCQAFFAAAAAIFAAAAA25pbAUAAAAHTFBQcmljZQAAAAIAAAABaQEAAAAKaW5pdGlhbGl6ZQAAAAMAAAAOX29yYWNsZUFkZHJlc3MAAAAMX3Bvb2xBZGRyZXNzAAAAB190aWNrZXIEAAAACGRvQ2hlY2tzCQAETAAAAAIJAQAAAAxjaGVja0FkZHJlc3MAAAABBQAAAA5fb3JhY2xlQWRkcmVzcwkABEwAAAACCQEAAAAMY2hlY2tBZGRyZXNzAAAAAQUAAAAMX3Bvb2xBZGRyZXNzBQAAAANuaWwDCQAAAAAAAAIFAAAACGRvQ2hlY2tzBQAAAAhkb0NoZWNrcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5T3JhY2xlQWRkcmVzcwAAAAAFAAAADl9vcmFjbGVBZGRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA5rZXlQb29sQWRkcmVzcwAAAAAFAAAADF9wb29sQWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAJa2V5VGlja2VyAAAAAAUAAAAHX3RpY2tlcgUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABJnZXRDdXJyZW50VXNkUHJpY2UAAAAACQAFFAAAAAIFAAAAA25pbAkBAAAAEGdldEFzc2V0VXNkUHJpY2UAAAAAAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkIcO5i", "height": 4021950, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2p2RdLPYefUXa6G4r4QfS4iqBtczWBTUsbtFDf9S7XPH Next: HxK5gX5daWMnhbM6MBBNhfoDCd9WY2PojJSPMRApM7aV Diff:
OldNewDifferences
9696 let poolAssets = split(getStringValue(factory(), keyMappingPoolContractAddressToPoolAssets(poolAddress)), SEP)
9797 let amountAssetInternal = poolAssets[1]
9898 let priceAssetInternal = poolAssets[2]
99- split(getStringValue(pool(), keyPoolConfig(amountAssetInternal, priceAssetInternal)), SEP)
99+ split(getStringValue(factory(), keyPoolConfig(amountAssetInternal, priceAssetInternal)), SEP)
100100 }
101101
102102
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
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 getPoolConfig () = {
9595 let poolAddress = getPoolAddress()
9696 let poolAssets = split(getStringValue(factory(), keyMappingPoolContractAddressToPoolAssets(poolAddress)), SEP)
9797 let amountAssetInternal = poolAssets[1]
9898 let priceAssetInternal = poolAssets[2]
99- split(getStringValue(pool(), keyPoolConfig(amountAssetInternal, priceAssetInternal)), SEP)
99+ split(getStringValue(factory(), keyPoolConfig(amountAssetInternal, priceAssetInternal)), SEP)
100100 }
101101
102102
103103 func checkHeightDelta (priceHeight) = {
104104 let maxHeightDelta = MAX_RATE_HEIGHT_DELTA
105105 let currentDiff = (lastBlock.height - priceHeight)
106106 if ((maxHeightDelta >= currentDiff))
107107 then unit
108108 else throw("Large price delta.")
109109 }
110110
111111
112112 func getAmtAssetUsdPrice () = {
113113 let ticker = getStringValue(keyTicker())
114114 let priceHeight = getIntegerValue(oracle(), keyOracleTickerPriceHeight(ticker))
115115 let checkHeight = checkHeightDelta(priceHeight)
116116 if ((checkHeight == checkHeight))
117117 then {
118118 let price = getIntegerValue(oracle(), keyOracleTickerPrice(ticker))
119119 fraction(price, PRECISION, ORACLE_DECIMALS)
120120 }
121121 else throw("Strict value is not equal to itself.")
122122 }
123123
124124
125125 func getAssetUsdPrice () = {
126126 let cfg = getPoolConfig()
127127 let lpAssetId = fromBase58String(cfg[IdxPoolLPAssetId])
128128 let amtAssetId = cfg[IdxAmtAssetId]
129129 let priceAssetId = cfg[IdxPriceAssetId]
130130 let poolLpBalance = value(assetInfo(lpAssetId)).quantity
131131 let accAmtAssetBalance = {
132132 let @ = invoke(pool(), "getAccBalanceWrapperREADONLY", [amtAssetId], nil)
133133 if ($isInstanceOf(@, "Int"))
134134 then @
135135 else throw("Couldn't cast Any to Int")
136136 }
137137 let accPriceAssetBalance = {
138138 let @ = invoke(pool(), "getAccBalanceWrapperREADONLY", [priceAssetId], nil)
139139 if ($isInstanceOf(@, "Int"))
140140 then @
141141 else throw("Couldn't cast Any to Int")
142142 }
143143 let accPriceAssetPrice = if ((poolLpBalance == 0))
144144 then 0
145145 else parseIntValue({
146146 let @ = ({
147147 let @ = invoke(pool(), "calcPricesWrapperREADONLY", [accAmtAssetBalance, accPriceAssetBalance, poolLpBalance], nil)
148148 if ($isInstanceOf(@, "List[Any]"))
149149 then @
150150 else throw("Couldn't cast Any to List[Any]")
151151 })[0]
152152 if ($isInstanceOf(@, "String"))
153153 then @
154154 else throw("Couldn't cast Any to String")
155155 })
156156 let accAmtAssetEq = (accAmtAssetBalance + fraction(accPriceAssetBalance, DECIMAL_18, accPriceAssetPrice))
157157 let accAmtAssetPrice = getAmtAssetUsdPrice()
158158 let LPPrice = fraction(accAmtAssetEq, accAmtAssetPrice, poolLpBalance)
159159 $Tuple2(nil, LPPrice)
160160 }
161161
162162
163163 @Callable(i)
164164 func initialize (_oracleAddress,_poolAddress,_ticker) = {
165165 let doChecks = [checkAddress(_oracleAddress), checkAddress(_poolAddress)]
166166 if ((doChecks == doChecks))
167167 then [StringEntry(keyOracleAddress(), _oracleAddress), StringEntry(keyPoolAddress(), _poolAddress), StringEntry(keyTicker(), _ticker)]
168168 else throw("Strict value is not equal to itself.")
169169 }
170170
171171
172172
173173 @Callable(i)
174174 func getCurrentUsdPrice () = $Tuple2(nil, getAssetUsdPrice())
175175
176176
177177 @Verifier(tx)
178178 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
179179

github/deemru/w8io/6500d08 
27.06 ms