2022.08.09 16:56 [3242502] smart account 3PPKvu6x52MFaMGfw3i2byPVXXBuH7FTNMU > SELF 0.00000000 Waves

{ "type": 13, "id": "214eimD8WL43FoBwAFPMb4kAMcbigQutbKN8EQhApAwk", "fee": 1200000, "feeAssetId": null, "timestamp": 1660053426953, "version": 2, "chainId": 87, "sender": "3PPKvu6x52MFaMGfw3i2byPVXXBuH7FTNMU", "senderPublicKey": "2EkX192CHj7Ut47LgFMd3Pg7U7rhQFJhKgcr3rD5Dtig", "proofs": [ "613j9YSgsa3r1NG8CYnJ8kQqsdUvfPSpBbzuaNN8EdJAjnMcJaMd91SUPKB9Jd66gYXP3Dcuxk6GY4bgAtc7xy1G" ], "script": "base64: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", "height": 3242502, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D9qp1uAJ6gVvkMa3qmg3muF8nfP35tQhfrurwaR4vWCz Next: kAjU212EN2jCe5gsbDgDSBh98dfkv4kjLmFVCcaS9fB Diff:
OldNewDifferences
122122 then parentLpPrice
123123 else throw("Strict value is not equal to itself.")
124124 }
125- let inv = if ((assetIdStr == parentLpIdStr))
126- then unit
127- else if (evaluation)
128- then calcSwap(assetIdStr, amountToBuyback)
129- else invoke(poolAddress, "swap", [plutoIdStr, 0], [AttachedPayment(assetId, amountToBuyback)])
130- if ((inv == inv))
125+ if ((assetPriceToPluto == assetPriceToPluto))
131126 then {
132- let plutoBought = match inv {
133- case x: Int =>
134- x
135- case _ =>
136- 0
137- }
138- let plutoIssued = fraction(amountToIssue, assetPriceToPluto, Scale8)
139- let totalPluto = (plutoBought + plutoIssued)
140- let premiumPlutoIssued = fraction(totalPluto, premium, 10000)
141- let teamPlutoIssued = fraction(totalPluto, teamPremium, 10000)
142- let inv2 = invoke(issuerAddress, "requestIssue", [((plutoIssued + premiumPlutoIssued) + teamPlutoIssued)], nil)
143- if ((inv2 == inv2))
144- then [plutoIssued, plutoBought, premiumPlutoIssued, teamPlutoIssued, amountToIssue, premium, period]
127+ let inv = if ((assetIdStr == parentLpIdStr))
128+ then unit
129+ else if (evaluation)
130+ then calcSwap(assetIdStr, amountToBuyback)
131+ else invoke(poolAddress, "swap", [plutoIdStr, 0], [AttachedPayment(assetId, amountToBuyback)])
132+ if ((inv == inv))
133+ then {
134+ let plutoBought = match inv {
135+ case x: Int =>
136+ x
137+ case _ =>
138+ 0
139+ }
140+ let plutoIssued = fraction(amountToIssue, assetPriceToPluto, Scale8)
141+ let totalPluto = (plutoBought + plutoIssued)
142+ let premiumPlutoIssued = fraction(totalPluto, premium, 10000)
143+ let teamPlutoIssued = fraction(totalPluto, teamPremium, 10000)
144+ let inv2 = invoke(issuerAddress, "requestIssue", [((plutoIssued + premiumPlutoIssued) + teamPlutoIssued)], nil)
145+ if ((inv2 == inv2))
146+ then [plutoIssued, plutoBought, premiumPlutoIssued, teamPlutoIssued, amountToIssue, premium, period]
147+ else throw("Strict value is not equal to itself.")
148+ }
145149 else throw("Strict value is not equal to itself.")
146150 }
147151 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let plutoId = base58'Ajso6nTTjptu2UHLx6hfSXVtHFtRBJCkKYd5SAyj7zf5'
55
66 let plutoIdStr = "Ajso6nTTjptu2UHLx6hfSXVtHFtRBJCkKYd5SAyj7zf5"
77
88 let parametersAddress = Address(base58'3P3a1jssxc2CGdyC7SGbTJc9ZvTjZ5jBMLZ')
99
1010 let stakingAddress = Address(base58'3P7dGTVZp8VLDYy3XEaUQbiqfi9cMK1Ly5q')
1111
1212 let issuerAddress = Address(base58'3PCRXK4q3SWK3TfjTgYc88x3jr8semrHLJs')
1313
1414 let treasuryAddress = Address(base58'3PKFFFsiKR7rgaeoLQZj6jLsxteZigccN8h')
1515
1616 let teamAddress = Address(base58'3P8XyUj7seSjJc6gqDgM9MxAfmnmcDAE6gj')
1717
1818 let poolAddress = Address(base58'3P93Kqz8PUbCudvMyjbci54WxQrtBtw4dbZ')
1919
2020 let parentLpIdStr = "BNXTKjftTy5zZEozFdkqDTTiru7guvunLiCpZuTAaC4h"
2121
2222 let parentLpId = base58'BNXTKjftTy5zZEozFdkqDTTiru7guvunLiCpZuTAaC4h'
2323
2424 let treasuryAssets = ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"]
2525
2626 let Scale8 = 100000000
2727
2828 func tryGetInteger (key) = match getInteger(this, key) {
2929 case x: Int =>
3030 x
3131 case _ =>
3232 0
3333 }
3434
3535
3636 func tryGetIntParameter (key) = match getInteger(parametersAddress, key) {
3737 case x: Int =>
3838 x
3939 case _ =>
4040 0
4141 }
4242
4343
4444 func tryGetStrParameter (key) = match getString(parametersAddress, key) {
4545 case x: String =>
4646 x
4747 case _ =>
4848 ""
4949 }
5050
5151
5252 func calculatePoolPrice (poolAddress,assetStr) = {
5353 let a0Weight = getIntegerValue(poolAddress, (("static_" + assetStr) + "_weight"))
5454 let a1Weight = getIntegerValue(poolAddress, (("static_" + plutoIdStr) + "_weight"))
5555 let a0Balance = getIntegerValue(poolAddress, (("global_" + assetStr) + "_balance"))
5656 let a1Balance = getIntegerValue(poolAddress, (("global_" + plutoIdStr) + "_balance"))
5757 fraction(Scale8, (a1Balance * a0Weight), (a0Balance * a1Weight))
5858 }
5959
6060
6161 func calcSwap (assetStr,amount) = {
6262 let a0Weight = getIntegerValue(poolAddress, (("static_" + assetStr) + "_weight"))
6363 let a1Weight = getIntegerValue(poolAddress, (("static_" + plutoIdStr) + "_weight"))
6464 let a0Balance = getIntegerValue(poolAddress, (("global_" + assetStr) + "_balance"))
6565 let a1Balance = getIntegerValue(poolAddress, (("global_" + plutoIdStr) + "_balance"))
6666 let amount1 = fraction(a1Balance, ((Scale8 * Scale8) - toInt(pow(fraction(toBigInt(a0Balance), toBigInt((Scale8 * Scale8)), toBigInt((a0Balance + amount)), HALFUP), 16, toBigInt(fraction(a0Weight, 10000, a1Weight)), 4, 16, CEILING))), (Scale8 * Scale8), DOWN)
6767 fraction(amount1, 98, 100)
6868 }
6969
7070
7171 func calculateIssuePluto (assetId,amount,evaluation) = {
7272 let assetIdStr = toBase58String(assetId)
7373 if ((indexOf(treasuryAssets, assetIdStr) == unit))
7474 then throw("asset not supported")
7575 else {
7676 let onboardingParameters = match invoke(parametersAddress, "getOnboardingParameters", [false], nil) {
7777 case in: List[Any] =>
7878 in
7979 case _ =>
8080 throw("cannot load parameters")
8181 }
8282 if ((onboardingParameters == onboardingParameters))
8383 then {
8484 let buybackRatio = match onboardingParameters[4] {
8585 case x: Int =>
8686 x
8787 case _ =>
8888 throw("cannot parse parameters")
8989 }
9090 let premium = match onboardingParameters[1] {
9191 case x: Int =>
9292 x
9393 case _ =>
9494 throw("cannot parse parameters")
9595 }
9696 let teamPremium = match onboardingParameters[3] {
9797 case x: Int =>
9898 x
9999 case _ =>
100100 throw("cannot parse parameters")
101101 }
102102 let period = match onboardingParameters[2] {
103103 case x: Int =>
104104 x
105105 case _ =>
106106 throw("cannot parse parameters")
107107 }
108108 let amountToBuyback = if ((assetIdStr != parentLpIdStr))
109109 then fraction(amount, buybackRatio, 10000)
110110 else 0
111111 let amountToIssue = (amount - amountToBuyback)
112112 let assetPriceToPluto = if ((assetIdStr != parentLpIdStr))
113113 then calculatePoolPrice(poolAddress, assetIdStr)
114114 else {
115115 let parentLpPrice = match invoke(parametersAddress, "getParentLpPrice", [false, true], nil) {
116116 case in: Int =>
117117 in
118118 case _ =>
119119 throw("cannot load parent lp price")
120120 }
121121 if ((parentLpPrice == parentLpPrice))
122122 then parentLpPrice
123123 else throw("Strict value is not equal to itself.")
124124 }
125- let inv = if ((assetIdStr == parentLpIdStr))
126- then unit
127- else if (evaluation)
128- then calcSwap(assetIdStr, amountToBuyback)
129- else invoke(poolAddress, "swap", [plutoIdStr, 0], [AttachedPayment(assetId, amountToBuyback)])
130- if ((inv == inv))
125+ if ((assetPriceToPluto == assetPriceToPluto))
131126 then {
132- let plutoBought = match inv {
133- case x: Int =>
134- x
135- case _ =>
136- 0
137- }
138- let plutoIssued = fraction(amountToIssue, assetPriceToPluto, Scale8)
139- let totalPluto = (plutoBought + plutoIssued)
140- let premiumPlutoIssued = fraction(totalPluto, premium, 10000)
141- let teamPlutoIssued = fraction(totalPluto, teamPremium, 10000)
142- let inv2 = invoke(issuerAddress, "requestIssue", [((plutoIssued + premiumPlutoIssued) + teamPlutoIssued)], nil)
143- if ((inv2 == inv2))
144- then [plutoIssued, plutoBought, premiumPlutoIssued, teamPlutoIssued, amountToIssue, premium, period]
127+ let inv = if ((assetIdStr == parentLpIdStr))
128+ then unit
129+ else if (evaluation)
130+ then calcSwap(assetIdStr, amountToBuyback)
131+ else invoke(poolAddress, "swap", [plutoIdStr, 0], [AttachedPayment(assetId, amountToBuyback)])
132+ if ((inv == inv))
133+ then {
134+ let plutoBought = match inv {
135+ case x: Int =>
136+ x
137+ case _ =>
138+ 0
139+ }
140+ let plutoIssued = fraction(amountToIssue, assetPriceToPluto, Scale8)
141+ let totalPluto = (plutoBought + plutoIssued)
142+ let premiumPlutoIssued = fraction(totalPluto, premium, 10000)
143+ let teamPlutoIssued = fraction(totalPluto, teamPremium, 10000)
144+ let inv2 = invoke(issuerAddress, "requestIssue", [((plutoIssued + premiumPlutoIssued) + teamPlutoIssued)], nil)
145+ if ((inv2 == inv2))
146+ then [plutoIssued, plutoBought, premiumPlutoIssued, teamPlutoIssued, amountToIssue, premium, period]
147+ else throw("Strict value is not equal to itself.")
148+ }
145149 else throw("Strict value is not equal to itself.")
146150 }
147151 else throw("Strict value is not equal to itself.")
148152 }
149153 else throw("Strict value is not equal to itself.")
150154 }
151155 }
152156
153157
154158 @Callable(i)
155159 func issuePluto (debug) = {
156160 let assetId = value(i.payments[0].assetId)
157161 let result = calculateIssuePluto(assetId, value(i.payments[0].amount), false)
158162 if ((result == result))
159163 then {
160164 let lockup = invoke(stakingAddress, "startOnboarding", [toString(i.caller), (result[0] + result[1]), result[2], result[6], result[5], toBase58String(value(i.payments[0].assetId))], [AttachedPayment(plutoId, ((result[0] + result[1]) + result[2]))])
161165 if ((lockup == lockup))
162166 then if (debug)
163167 then throw(((((((("issued: " + toString(result[0])) + "; bought: ") + toString(result[1])) + "; premium: ") + toString(result[2])) + "; team: ") + toString(result[3])))
164168 else [ScriptTransfer(treasuryAddress, result[4], assetId), ScriptTransfer(teamAddress, result[3], plutoId)]
165169 else throw("Strict value is not equal to itself.")
166170 }
167171 else throw("Strict value is not equal to itself.")
168172 }
169173
170174
171175
172176 @Callable(i)
173177 func evaluateIssuePluto (debug,assetIdStr,amount) = {
174178 let assetId = fromBase58String(assetIdStr)
175179 let result = calculateIssuePluto(assetId, amount, true)
176180 if ((result == result))
177181 then if (debug)
178182 then throw(((((((("issued: " + toString(result[0])) + "; bought: ") + toString(result[1])) + "; premium: ") + toString(result[2])) + "; team: ") + toString(result[3])))
179183 else $Tuple2(nil, (result[0] + result[1]))
180184 else throw("Strict value is not equal to itself.")
181185 }
182186
183187
184188 @Verifier(tx)
185189 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
186190

github/deemru/w8io/786bc32 
39.89 ms