tx · 4NTTjHHRuQf2T8S9XC1TRiwwf4gMpWqB6rLku7FfgbcN

3PQV9AUMU36fdDYMmMZw6urSYG3BuMahQuk:  -0.00900000 Waves

2022.07.12 14:40 [3202046] smart account 3PQV9AUMU36fdDYMmMZw6urSYG3BuMahQuk > SELF 0.00000000 Waves

{ "type": 13, "id": "4NTTjHHRuQf2T8S9XC1TRiwwf4gMpWqB6rLku7FfgbcN", "fee": 900000, "feeAssetId": null, "timestamp": 1657626022842, "version": 2, "chainId": 87, "sender": "3PQV9AUMU36fdDYMmMZw6urSYG3BuMahQuk", "senderPublicKey": "8bMNZV1S5S2hfim2ZPy5hsSdC1AHBwPHUEXPBhdEF2Mk", "proofs": [ "5Df8zpsC8GQZHrwLkToJVEyx3j6gY4L1rrrc6oUytQ68H9ZAcP3wdc1T3s43wR5KFBy5CF6Gt29gNJ8Nw4WSXbAK" ], "script": "base64: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", "height": 3202046, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GbqfwRDe2TpMoiE3KVEksUSmp7h1qzngzrSRBJzddNZy Next: 2s8neF5iEKAadDFaHCD9aVQihbwZWiQa8vgXJEPMTvhP Diff:
OldNewDifferences
127127 }
128128
129129
130-
131-@Callable(i)
132-func initWX () = {
133- let pm = value(i.payments[0])
134- let am = pm.amount
135- if ((pm.assetId != wxUsdnLP))
136- then throw("Unexpected token")
137- else {
138- let s = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [pm])
139- if ((s == s))
140- then {
141- let upd = IntegerEntry(keyWXUSDN, am)
142- let updK = IntegerEntry(keywxUsdnCompound, 0)
143-[upd, updK]
144- }
145- else throw("Strict value is not equal to itself.")
146- }
147- }
148-
149-
150130 @Verifier(tx)
151131 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
152132
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let usdtUsdnLP = base58'97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf'
55
66 let usdtUsdnLPTCI = base58'2CD44HANZzsdU7yqRsmz7L9eA2Foh4YYMC4azMbaZEj6'
77
88 let wxUsdnLP = base58'F2AKkA513k5yHEJkLsU6vWxCYYk811GpjLhwEv2WGwZ9'
99
1010 let wxUsdnLPTCI = base58'FuUobp3DcfARzDLcvtVW37i7FvMPvCCpgdcvWke8sBuh'
1111
1212 let isStopped = false
1313
1414 let keyStaked = "STAKED_LP"
1515
1616 let keyCompound = "From_Compound"
1717
1818 let keywxUsdnCompound = "WX_USDN_compound"
1919
2020 let keyWXUSDN = "WX_USDN"
2121
2222 @Callable(i)
2323 func depositUsdtUsdnLP () = {
2424 let pmt = value(i.payments[0])
2525 let pmtAmount = pmt.amount
2626 if ((pmt.assetId != usdtUsdnLP))
2727 then throw("attach USDTUSDNLP tokens only")
2828 else if (isStopped)
2929 then throw("smart contract is on lock")
3030 else {
3131 let tkStaked = valueOrElse(getInteger(this, keyStaked), 0)
3232 let totalIssued = match assetInfo(usdtUsdnLPTCI) {
3333 case asset: Asset =>
3434 asset.quantity
3535 case _ =>
3636 throw("Can't find asset")
3737 }
3838 let fromCompound = valueOrElse(getInteger(this, keyCompound), 0)
3939 let forOne = fraction(totalIssued, 100000000, tkStaked)
4040 let toIssue = fraction(pmtAmount, forOne, 100000000)
4141 let updateState = IntegerEntry(keyStaked, (tkStaked + pmtAmount))
4242 let LPstake = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [pmt])
4343 if ((LPstake == LPstake))
4444 then {
4545 let LPIssue = Reissue(usdtUsdnLPTCI, toIssue, true)
4646 let transfer = ScriptTransfer(i.caller, toIssue, usdtUsdnLPTCI)
4747 [LPIssue, transfer, updateState]
4848 }
4949 else throw("Strict value is not equal to itself.")
5050 }
5151 }
5252
5353
5454
5555 @Callable(i)
5656 func compoundUsdtUsdnLP () = {
5757 let compound = value(i.payments[0])
5858 let ca = compound.amount
5959 if ((compound.assetId != usdtUsdnLP))
6060 then throw("attach USDTUSDNLP tokens only")
6161 else {
6262 let fromCompound = valueOrElse(getInteger(this, keyCompound), 0)
6363 let totalStaked = valueOrElse(getInteger(this, keyStaked), 0)
6464 let stakeC = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [compound])
6565 if ((stakeC == stakeC))
6666 then {
6767 let updateState = IntegerEntry(keyStaked, (totalStaked + ca))
6868 let tc = IntegerEntry(keyCompound, (fromCompound + ca))
6969 [updateState, tc]
7070 }
7171 else throw("Strict value is not equal to itself.")
7272 }
7373 }
7474
7575
7676
7777 @Callable(i)
7878 func depositWxUsdnLP () = {
7979 let pmt = value(i.payments[0])
8080 let pmtAmount = pmt.amount
8181 if ((pmt.assetId != wxUsdnLP))
8282 then throw("attach WXUSDNLP tokens only")
8383 else if (isStopped)
8484 then throw("smart contract is on lock")
8585 else {
8686 let tkStaked = valueOrElse(getInteger(this, keyWXUSDN), 0)
8787 let totalIssued = match assetInfo(wxUsdnLPTCI) {
8888 case asset: Asset =>
8989 asset.quantity
9090 case _ =>
9191 throw("Can't find asset")
9292 }
9393 let one = fraction(totalIssued, 100000000, tkStaked)
9494 let toIssue = fraction(pmtAmount, one, 100000000)
9595 let updateState = IntegerEntry(keyWXUSDN, (tkStaked + pmtAmount))
9696 let LPstake = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [pmt])
9797 if ((LPstake == LPstake))
9898 then {
9999 let LPIssue = Reissue(wxUsdnLPTCI, toIssue, true)
100100 let transfer = ScriptTransfer(i.caller, toIssue, wxUsdnLPTCI)
101101 [LPIssue, transfer, updateState]
102102 }
103103 else throw("Strict value is not equal to itself.")
104104 }
105105 }
106106
107107
108108
109109 @Callable(i)
110110 func compoundWxUsdnLP () = {
111111 let compound = value(i.payments[0])
112112 let ca = compound.amount
113113 if ((compound.assetId != wxUsdnLP))
114114 then throw("attach WXUSDNLP tokens only")
115115 else {
116116 let fromCompound = valueOrElse(getInteger(this, keywxUsdnCompound), 0)
117117 let totalStaked = valueOrElse(getInteger(this, keyWXUSDN), 0)
118118 let stakeC = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [compound])
119119 if ((stakeC == stakeC))
120120 then {
121121 let updateState = IntegerEntry(keyWXUSDN, (totalStaked + ca))
122122 let tc = IntegerEntry(keywxUsdnCompound, (fromCompound + ca))
123123 [updateState, tc]
124124 }
125125 else throw("Strict value is not equal to itself.")
126126 }
127127 }
128128
129129
130-
131-@Callable(i)
132-func initWX () = {
133- let pm = value(i.payments[0])
134- let am = pm.amount
135- if ((pm.assetId != wxUsdnLP))
136- then throw("Unexpected token")
137- else {
138- let s = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [pm])
139- if ((s == s))
140- then {
141- let upd = IntegerEntry(keyWXUSDN, am)
142- let updK = IntegerEntry(keywxUsdnCompound, 0)
143-[upd, updK]
144- }
145- else throw("Strict value is not equal to itself.")
146- }
147- }
148-
149-
150130 @Verifier(tx)
151131 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
152132

github/deemru/w8io/3ef1775 
42.77 ms