tx · 8dZ8ZGzh1U9jBvPQ9KycYu64wx5jvBTiQnD26cvDo1zJ

3Mu3rHXsZEzEFRmstTmo2ibxjvaHNd4hU6t:  -0.01400000 Waves

2022.05.31 14:45 [2075800] smart account 3Mu3rHXsZEzEFRmstTmo2ibxjvaHNd4hU6t > SELF 0.00000000 Waves

{ "type": 13, "id": "8dZ8ZGzh1U9jBvPQ9KycYu64wx5jvBTiQnD26cvDo1zJ", "fee": 1400000, "feeAssetId": null, "timestamp": 1653997501859, "version": 2, "chainId": 84, "sender": "3Mu3rHXsZEzEFRmstTmo2ibxjvaHNd4hU6t", "senderPublicKey": "Cn7Ky2YAx4p6dx8e7Mcb9rTQ2Z5TD9MrRbLA8AXDsumJ", "proofs": [ "5uqKR3WJDQsZSZsFYVoQq7s9mNh6hy8pEhYky7TER8h1uyd8GYzZggxQvye7STSx3t4enC286TuJYAC5Juj55WHs" ], "script": "base64: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", "height": 2075800, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DrUkGvv6fMpLo3YWuF98DUi5VzzVQJcFS5xjkazRDuVm Next: AtcFASh441SPN9BLsG58Kmin7Lcz9huBgvjZYJHkgdG1 Diff:
OldNewDifferences
44 let BA = base58'HJuQkYNhyjPcYGHxMLsmRq7bToqTc7uExWtJnVH5xSBm'
55
66 let TCI = base58'2oTdBoVmVmzU1PT9yRuyfbVfmkvTFQoy7C8du6Lg9X3Z'
7+
8+let tw = base58'3Mv7nXq2V2Dnn9oSkB5feRt6RxtqnPiAXNH'
79
810 let isStopped = false
911
3941 let w = value(i.payments[0])
4042 let a = w.amount
4143 let b = assetBalance(i.caller, TCI)
44+ let p = 10000000000
4245 if ((w.assetId != TCI))
4346 then throw("sdasda")
4447 else if ((0 >= a))
5457 }
5558 let vp = fraction(assetBalance(this, BA), 100000000, baAmount)
5659 let toRep = fraction(vp, a, 100000000)
60+ let tc = (toRep / p)
5761 let brn = Burn(TCI, toRep)
58- let trsf = ScriptTransfer(i.caller, toRep, BA)
59-[brn, trsf]
62+ let trsf = ScriptTransfer(i.caller, (toRep - tc), BA)
63+ let ttr = ScriptTransfer(Address(tw), tc, BA)
64+[brn, trsf, ttr]
6065 }
6166 }
6267
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let BA = base58'HJuQkYNhyjPcYGHxMLsmRq7bToqTc7uExWtJnVH5xSBm'
55
66 let TCI = base58'2oTdBoVmVmzU1PT9yRuyfbVfmkvTFQoy7C8du6Lg9X3Z'
7+
8+let tw = base58'3Mv7nXq2V2Dnn9oSkB5feRt6RxtqnPiAXNH'
79
810 let isStopped = false
911
1012 @Callable(i)
1113 func stake () = {
1214 let pmt = value(i.payments[0])
1315 let pmtAmount = pmt.amount
1416 if ((pmt.assetId != BA))
1517 then throw("You can stake USDN only")
1618 else if (isStopped)
1719 then throw("smart contract is on lock")
1820 else {
1921 let inTreasury = assetBalance(this, BA)
2022 let totalIssued = match assetInfo(TCI) {
2123 case asset: Asset =>
2224 asset.quantity
2325 case _ =>
2426 throw("Can't find asset")
2527 }
2628 let treasury = (inTreasury - pmtAmount)
2729 let singleTCIinValue = fraction(totalIssued, 100000000, treasury)
2830 let amountToIssue = fraction(pmtAmount, singleTCIinValue, 100000000)
2931 let TCIIssue = Reissue(TCI, amountToIssue, true)
3032 let transfer = ScriptTransfer(i.caller, amountToIssue, TCI)
3133 [TCIIssue, transfer]
3234 }
3335 }
3436
3537
3638
3739 @Callable(i)
3840 func withdraw () = {
3941 let w = value(i.payments[0])
4042 let a = w.amount
4143 let b = assetBalance(i.caller, TCI)
44+ let p = 10000000000
4245 if ((w.assetId != TCI))
4346 then throw("sdasda")
4447 else if ((0 >= a))
4548 then throw("Can't withdraw 0 or negative ammount")
4649 else if ((0 >= b))
4750 then throw("Unsuficient account balance")
4851 else {
4952 let baAmount = match assetInfo(BA) {
5053 case q: Asset =>
5154 q.quantity
5255 case _ =>
5356 0
5457 }
5558 let vp = fraction(assetBalance(this, BA), 100000000, baAmount)
5659 let toRep = fraction(vp, a, 100000000)
60+ let tc = (toRep / p)
5761 let brn = Burn(TCI, toRep)
58- let trsf = ScriptTransfer(i.caller, toRep, BA)
59-[brn, trsf]
62+ let trsf = ScriptTransfer(i.caller, (toRep - tc), BA)
63+ let ttr = ScriptTransfer(Address(tw), tc, BA)
64+[brn, trsf, ttr]
6065 }
6166 }
6267
6368
6469 @Verifier(tx)
6570 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
6671

github/deemru/w8io/3ef1775 
32.64 ms