tx · 63G5F9KYk2DmW5wSE9KbjBgvaNVRY67YReqJtmX86Xau

3NCCpaecUeQcHCJGnv1ZocqT3xAz2wiXFwe:  -0.04000000 Waves

2022.04.15 13:20 [2009549] smart account 3NCCpaecUeQcHCJGnv1ZocqT3xAz2wiXFwe > SELF 0.00000000 Waves

{ "type": 13, "id": "63G5F9KYk2DmW5wSE9KbjBgvaNVRY67YReqJtmX86Xau", "fee": 4000000, "feeAssetId": null, "timestamp": 1650018085471, "version": 2, "chainId": 84, "sender": "3NCCpaecUeQcHCJGnv1ZocqT3xAz2wiXFwe", "senderPublicKey": "FX5ZmtqMuiefGRPoKkAcBUEDvaHBS4FSzt8VW49mzcjM", "proofs": [ "2b5RCbzU9pf3t22DJpKh6k8g8A1fTN5Xn61yzn7HhR2A51ZnWZyW4gK86z6y9Xnc9c6btpytktPbGtoYHc2AccrT" ], "script": "base64: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", "height": 2009549, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: Gw99TTuaEASGyM3zjXuYJvXAStopKVCNBzRo9wPJNLd9 Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let ID = base58'JAfMu2seKNzTVfqi5w5Pjh4kwwPTZPCEFpc2q2vDyFeh'
5+
6+let LP = base58'9ZymB4TJF6oQ3HwYgYFKizAf6m64sQF896mUzcsDJ4Wx'
7+
8+let isStopped = false
9+
10+@Callable(i)
11+func stake () = {
12+ let pmt = value(i.payments[0])
13+ let pmtAmount = pmt.amount
14+ if ((pmt.assetId != ID))
15+ then throw("attach testNSBT tokens only")
16+ else if (isStopped)
17+ then throw("smart contract is on lock")
18+ else {
19+ let inTreasury = assetBalance(this, ID)
20+ let totalIssued = match assetInfo(LP) {
21+ case asset: Asset =>
22+ asset.quantity
23+ case _ =>
24+ throw("Can't find asset")
25+ }
26+ let singleLPinValue = ((inTreasury * 100000000) / totalIssued)
27+ let amountToIssue = ((pmtAmount * singleLPinValue) / 100000000)
28+ let LPIssue = Reissue(LP, amountToIssue, true)
29+ let transfer = ScriptTransfer(i.caller, amountToIssue, LP)
30+[LPIssue, transfer]
31+ }
32+ }
33+
34+
35+
36+@Callable(i)
37+func withdraw (amount) = {
38+ let attached = i.payments[0]
39+ let paymentID = i.payments[0].assetId
40+ if ((paymentID != LP))
41+ then throw("Attach the correct LP token")
42+ else {
43+ let newAmount = (attached.amount - amount)
44+ if ((0 > amount))
45+ then throw("Can't withdraw negative amount")
46+ else if ((0 > newAmount))
47+ then throw("Not enough balance")
48+ else {
49+ let burning = Burn(LP, amount)
50+ let transfer = ScriptTransfer(i.caller, newAmount, ID)
51+[burning, transfer]
52+ }
53+ }
54+ }
55+
56+
57+@Verifier(tx)
58+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
59+

github/deemru/w8io/169f3d6 
33.19 ms