tx · 3B48ctoUorVfvnQysrvs2fNw4TygNNXiXTHynVu2HctU

3PPhk65Ab4UDgbxYUDW7YSXkzHfWtj7WBrB:  -0.01100000 Waves

2022.06.27 21:06 [3180782] smart account 3PPhk65Ab4UDgbxYUDW7YSXkzHfWtj7WBrB > SELF 0.00000000 Waves

{ "type": 13, "id": "3B48ctoUorVfvnQysrvs2fNw4TygNNXiXTHynVu2HctU", "fee": 1100000, "feeAssetId": null, "timestamp": 1656353212953, "version": 2, "chainId": 87, "sender": "3PPhk65Ab4UDgbxYUDW7YSXkzHfWtj7WBrB", "senderPublicKey": "JA8PUnni68FEVnZHgEhqhPwTTovQj8Cmf1sLwE9QuugX", "proofs": [ "aefaUq6z1yYR6CRaEB9DMQDpZKdQUTX5gpDZWfEt5rfH8uR6YL6GM67W4myjBEAWfPp2dzL1n3T6owkvfZcnbEU" ], "script": "base64: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", "height": 3180782, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 35CUXQjiyHKFMMHb2qxPuZmWifK7k7xooqG83nbe6fXY Next: 3PPApkLP1CiSojXnnvfkSveq57XpcET6qCQxFDS3H5dA Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let plutoId = base58''
4+let plutoId = base58'YQFYoMwARMQzZs3wqucBTdJNWSbsYk3GAw7wsqU4gyA'
55
6-let usdnId = base58''
6+let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
7+
8+let plutoIdStr = "YQFYoMwARMQzZs3wqucBTdJNWSbsYk3GAw7wsqU4gyA"
9+
10+let usdnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
11+
12+let poolAddress = Address(base58'3PJnGkuMm4LkJQVCT7QCRyzApQiEQ2UWcdx')
713
814 let Scale8 = 100000000
915
3238 func getParameterAtBlock (key,block) = tryGetInteger(((toString(block) + "_") + key))
3339
3440
41+func calculatePrice (poolAddress,asset0Str,asset1Str) = {
42+ let a0Weight = getIntegerValue(poolAddress, (("static_" + asset0Str) + "_weight"))
43+ let a1Weight = getIntegerValue(poolAddress, (("static_" + asset1Str) + "_weight"))
44+ let a0Balance = getIntegerValue(poolAddress, (("global_" + asset0Str) + "_balance"))
45+ let a1Balance = getIntegerValue(poolAddress, (("global_" + asset1Str) + "_balance"))
46+ fraction(Scale8, (a1Balance * a0Weight), (a0Balance * a1Weight))
47+ }
48+
49+
3550 @Callable(i)
3651 func setTreasuryValue (amount) = setParameter("treasuryValue", amount, true)
3752
4964
5065 @Callable(i)
5166 func getMarketValue (debug) = {
52- let parameter = 0
67+ let plutoAsset = value(assetInfo(plutoId))
68+ let quantity = plutoAsset.quantity
69+ let plutoPrice = calculatePrice(poolAddress, plutoIdStr, usdnIdStr)
70+ let parameter = (quantity * plutoPrice)
5371 if (debug)
5472 then throw(toString(parameter))
5573 else $Tuple2(nil, parameter)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let plutoId = base58''
4+let plutoId = base58'YQFYoMwARMQzZs3wqucBTdJNWSbsYk3GAw7wsqU4gyA'
55
6-let usdnId = base58''
6+let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
7+
8+let plutoIdStr = "YQFYoMwARMQzZs3wqucBTdJNWSbsYk3GAw7wsqU4gyA"
9+
10+let usdnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
11+
12+let poolAddress = Address(base58'3PJnGkuMm4LkJQVCT7QCRyzApQiEQ2UWcdx')
713
814 let Scale8 = 100000000
915
1016 let Scale2 = 100
1117
1218 let Depth = (24 * 60)
1319
1420 let Parameters = [[100, 0, 0, 0, 0], [110, 204, 4, 24, 7710], [120, 309, 5, 44, 8820], [130, 417, 6, 61, 7780], [140, 526, 7, 76, 6670], [150, 638, 8, 88, 5560], [160, 753, 9, 99, 4440], [170, 753, 9, 109, 3330], [180, 753, 9, 118, 2220], [190, 753, 9, 126, 1110], [200, 753, 8, 139, 0], [210, 753, 8, 145, 0], [220, 753, 7, 145, 0], [230, 753, 7, 151, 0], [240, 753, 6, 156, 0], [250, 753, 6, 160, 0], [260, 753, 5, 164, 0], [270, 753, 5, 168, 0], [280, 753, 4, 172, 0], [290, 753, 4, 175, 0]]
1521
1622 func tryGetInteger (key) = match getInteger(this, key) {
1723 case x: Int =>
1824 x
1925 case _ =>
2026 0
2127 }
2228
2329
2430 func setParameter (key,val,rememberHeight) = ([IntegerEntry(("last_" + key), val)] ++ (if (rememberHeight)
2531 then [IntegerEntry(((toString(height) + "_") + key), val)]
2632 else nil))
2733
2834
2935 func getParameter (key) = tryGetInteger(("last_" + key))
3036
3137
3238 func getParameterAtBlock (key,block) = tryGetInteger(((toString(block) + "_") + key))
3339
3440
41+func calculatePrice (poolAddress,asset0Str,asset1Str) = {
42+ let a0Weight = getIntegerValue(poolAddress, (("static_" + asset0Str) + "_weight"))
43+ let a1Weight = getIntegerValue(poolAddress, (("static_" + asset1Str) + "_weight"))
44+ let a0Balance = getIntegerValue(poolAddress, (("global_" + asset0Str) + "_balance"))
45+ let a1Balance = getIntegerValue(poolAddress, (("global_" + asset1Str) + "_balance"))
46+ fraction(Scale8, (a1Balance * a0Weight), (a0Balance * a1Weight))
47+ }
48+
49+
3550 @Callable(i)
3651 func setTreasuryValue (amount) = setParameter("treasuryValue", amount, true)
3752
3853
3954
4055 @Callable(i)
4156 func getTreasuryValue (debug) = {
4257 let parameter = getParameter("treasuryValue")
4358 if (debug)
4459 then throw(toString(parameter))
4560 else $Tuple2(nil, parameter)
4661 }
4762
4863
4964
5065 @Callable(i)
5166 func getMarketValue (debug) = {
52- let parameter = 0
67+ let plutoAsset = value(assetInfo(plutoId))
68+ let quantity = plutoAsset.quantity
69+ let plutoPrice = calculatePrice(poolAddress, plutoIdStr, usdnIdStr)
70+ let parameter = (quantity * plutoPrice)
5371 if (debug)
5472 then throw(toString(parameter))
5573 else $Tuple2(nil, parameter)
5674 }
5775
5876
5977
6078 @Callable(i)
6179 func getGrowthFactor (debug) = {
6280 let marketValue = 0
6381 let parameter = max([fraction(marketValue, Scale2, getParameter("treasuryValue")), 100])
6482 if (debug)
6583 then throw(toString(parameter))
6684 else $Tuple2(nil, parameter)
6785 }
6886
6987
7088
7189 @Callable(i)
7290 func getTreasuryDelta (debug) = {
7391 let parameter = max([fraction(getParameter("treasuryValue"), getParameterAtBlock("treasuryValue", (height - Depth)), Scale8), 0])
7492 if (debug)
7593 then throw(toString(parameter))
7694 else $Tuple2(nil, parameter)
7795 }
7896
7997
8098
8199 @Callable(i)
82100 func getOnboardingParameters (debug) = {
83101 let growthFactor = match invoke(this, "getGrowthFactor", [false], nil) {
84102 case in: Int =>
85103 in
86104 case _ =>
87105 throw("bad invoke")
88106 }
89107 if ((growthFactor == growthFactor))
90108 then {
91109 func f1 (accum,next) = if ((growthFactor >= next[0]))
92110 then next
93111 else accum
94112
95113 let parameterLi = {
96114 let $l = Parameters
97115 let $s = size($l)
98116 let $acc0 = nil
99117 func $f0_1 ($a,$i) = if (($i >= $s))
100118 then $a
101119 else f1($a, $l[$i])
102120
103121 func $f0_2 ($a,$i) = if (($i >= $s))
104122 then $a
105123 else throw("List size exceeds 20")
106124
107125 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
108126 }
109127 func f2 (accum,next) = ((accum + toString(next)) + ",")
110128
111129 let parameterStr = {
112130 let $l = parameterLi
113131 let $s = size($l)
114132 let $acc0 = ""
115133 func $f1_1 ($a,$i) = if (($i >= $s))
116134 then $a
117135 else f2($a, $l[$i])
118136
119137 func $f1_2 ($a,$i) = if (($i >= $s))
120138 then $a
121139 else throw("List size exceeds 20")
122140
123141 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
124142 }
125143 if (debug)
126144 then throw(parameterStr)
127145 else $Tuple2(nil, parameterLi)
128146 }
129147 else throw("Strict value is not equal to itself.")
130148 }
131149
132150
133151 @Verifier(tx)
134152 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
135153

github/deemru/w8io/6500d08 
173.82 ms