tx · GHMshr3656d58JDiHN3buqoj8i2b6HwbyCJTkP8akYFe

3NCCpaecUeQcHCJGnv1ZocqT3xAz2wiXFwe:  -0.01000000 Waves

2022.05.23 11:27 [2064095] smart account 3NCCpaecUeQcHCJGnv1ZocqT3xAz2wiXFwe > SELF 0.00000000 Waves

{ "type": 13, "id": "GHMshr3656d58JDiHN3buqoj8i2b6HwbyCJTkP8akYFe", "fee": 1000000, "feeAssetId": null, "timestamp": 1653294476470, "version": 1, "sender": "3NCCpaecUeQcHCJGnv1ZocqT3xAz2wiXFwe", "senderPublicKey": "FX5ZmtqMuiefGRPoKkAcBUEDvaHBS4FSzt8VW49mzcjM", "proofs": [ "2EAhnpH2aHnDzaX7mn6pPsqUZyMhXTuKpMk3NF3F2zFNZmEsd15C5XqQf6RNbe48nVEvy2tuVg8fHjhuU5pgRLkG" ], "script": "base64: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", "chainId": 84, "height": 2064095, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GDCV9izPX1v5AkRUCBmMpYN7L1mW6qmAMhFJ7eNA5pSp Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let ID = base58'JAfMu2seKNzTVfqi5w5Pjh4kwwPTZPCEFpc2q2vDyFeh'
4+let token = base58'DKaehEck2SuSrCWyUBY6bR4gEvAMZaEm9pqwiNSPXSvn'
55
6-let LP = base58'9ZymB4TJF6oQ3HwYgYFKizAf6m64sQF896mUzcsDJ4Wx'
6+let lpTCI = base58'2mGo9byNgTSxPC4J8wXkGkdjhB3Tk3gjGYiiHsyCrnHd'
77
88 let isStopped = false
9+
10+let keyStaked = "STAKED_LP"
11+
12+let keyCompound = "From_Compound"
913
1014 @Callable(i)
1115 func stake () = {
1216 let pmt = value(i.payments[0])
1317 let pmtAmount = pmt.amount
14- let keyStaked = "STAKED_LP"
15- if ((pmt.assetId != ID))
16- then throw("attach testNSBT tokens only")
18+ if ((pmt.assetId != token))
19+ then throw("attach USDTUSDNLP tokens only")
1720 else if (isStopped)
1821 then throw("smart contract is on lock")
1922 else {
20- let inTreasury = assetBalance(this, ID)
21- let totalIssued = match assetInfo(LP) {
22- case asset: Asset =>
23- asset.quantity
24- case _ =>
25- throw("Can't find asset")
23+ let tkStaked = valueOrElse(getInteger(this, keyStaked), 0)
24+ let fromCompound = valueOrElse(getInteger(this, keyCompound), 0)
25+ let updateState = IntegerEntry(keyStaked, (tkStaked + i.payments[0].amount))
26+ if ((updateState == updateState))
27+ then {
28+ let totalIssued = match assetInfo(lpTCI) {
29+ case asset: Asset =>
30+ asset.quantity
31+ case _ =>
32+ throw("Can't find asset")
33+ }
34+ let forOne = fraction(totalIssued, 100000000, tkStaked)
35+ let toIssue = fraction(pmtAmount, forOne, 100000000)
36+ let LPstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pmt])
37+ if ((LPstake == LPstake))
38+ then {
39+ let LPIssue = Reissue(lpTCI, toIssue, true)
40+ let transfer = ScriptTransfer(i.caller, toIssue, lpTCI)
41+[LPIssue, transfer, updateState]
42+ }
43+ else throw("Strict value is not equal to itself.")
44+ }
45+ else throw("Strict value is not equal to itself.")
2646 }
27- let treasury = (inTreasury - pmtAmount)
28- let singleLPinValue = fraction(totalIssued, 100000000, treasury)
29- let amountToIssue = fraction(pmtAmount, singleLPinValue, 100000000)
30- let LPIssue = Reissue(LP, amountToIssue, true)
31- let transfer = ScriptTransfer(i.caller, amountToIssue, LP)
32- let staked = valueOrElse(getInteger(this, keyStaked), 0)
33- let updateState = IntegerEntry(keyStaked, (staked + i.payments[0].amount))
34-[LPIssue, transfer, updateState]
35- }
47+ }
48+
49+
50+
51+@Callable(i)
52+func compound () = {
53+ let compound = value(i.payments[0])
54+ let ca = compound.amount
55+ if ((compound.assetId != token))
56+ then throw("attach USDTUSDNLP tokens only")
57+ else {
58+ let fromCompound = valueOrElse(getInteger(this, keyCompound), 0)
59+ let totalStaked = valueOrElse(getInteger(this, keyStaked), 0)
60+ let stakeC = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [compound])
61+ if ((stakeC == stakeC))
62+ then {
63+ let updateState = IntegerEntry(keyStaked, (totalStaked + ca))
64+ let tc = IntegerEntry(keyCompound, (fromCompound + ca))
65+[updateState, tc]
66+ }
67+ else throw("Strict value is not equal to itself.")
68+ }
3669 }
3770
3871

github/deemru/w8io/873ac7e 
46.09 ms