tx · DrUkGvv6fMpLo3YWuF98DUi5VzzVQJcFS5xjkazRDuVm

3Mu3rHXsZEzEFRmstTmo2ibxjvaHNd4hU6t:  -0.01400000 Waves

2022.05.31 14:39 [2075791] smart account 3Mu3rHXsZEzEFRmstTmo2ibxjvaHNd4hU6t > SELF 0.00000000 Waves

{ "type": 13, "id": "DrUkGvv6fMpLo3YWuF98DUi5VzzVQJcFS5xjkazRDuVm", "fee": 1400000, "feeAssetId": null, "timestamp": 1653997155606, "version": 2, "chainId": 84, "sender": "3Mu3rHXsZEzEFRmstTmo2ibxjvaHNd4hU6t", "senderPublicKey": "Cn7Ky2YAx4p6dx8e7Mcb9rTQ2Z5TD9MrRbLA8AXDsumJ", "proofs": [ "AwUVrPzV9sJSd8EvoKh7tzwkXy1JZeSATVavo9HY32f3ByFyaeMNUCX2bMLAVzVxP5tXhfrTqsSpFmLFeFDEAGJ" ], "script": "base64:AAIFAAAAAAAAAAYIAhIAEgAAAAADAAAAAAJCQQEAAAAg8lEfyk9HBELmku19TLZ/oFDQJTtej+XyYmxAbLRIukwAAAAAA1RDSQEAAAAgGsKCBLLhWwnH6nz2WRXFsHhQP7HLfKzLbZ/r5h+0C5wAAAAACWlzU3RvcHBlZAcAAAACAAAAAWkBAAAABXN0YWtlAAAAAAQAAAADcG10CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAlwbXRBbW91bnQIBQAAAANwbXQAAAAGYW1vdW50AwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAJCQQkAAAIAAAABAgAAABdZb3UgY2FuIHN0YWtlIFVTRE4gb25seQMFAAAACWlzU3RvcHBlZAkAAAIAAAABAgAAABlzbWFydCBjb250cmFjdCBpcyBvbiBsb2NrBAAAAAppblRyZWFzdXJ5CQAD8AAAAAIFAAAABHRoaXMFAAAAAkJBBAAAAAt0b3RhbElzc3VlZAQAAAAHJG1hdGNoMAkAA+wAAAABBQAAAANUQ0kDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABUFzc2V0BAAAAAVhc3NldAUAAAAHJG1hdGNoMAgFAAAABWFzc2V0AAAACHF1YW50aXR5CQAAAgAAAAECAAAAEENhbid0IGZpbmQgYXNzZXQEAAAACHRyZWFzdXJ5CQAAZQAAAAIFAAAACmluVHJlYXN1cnkFAAAACXBtdEFtb3VudAQAAAAQc2luZ2xlVENJaW5WYWx1ZQkAAGsAAAADBQAAAAt0b3RhbElzc3VlZAAAAAAABfXhAAUAAAAIdHJlYXN1cnkEAAAADWFtb3VudFRvSXNzdWUJAABrAAAAAwUAAAAJcG10QW1vdW50BQAAABBzaW5nbGVUQ0lpblZhbHVlAAAAAAAF9eEABAAAAAhUQ0lJc3N1ZQkBAAAAB1JlaXNzdWUAAAADBQAAAANUQ0kFAAAADWFtb3VudFRvSXNzdWUGBAAAAAh0cmFuc2ZlcgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA1hbW91bnRUb0lzc3VlBQAAAANUQ0kJAARMAAAAAgUAAAAIVENJSXNzdWUJAARMAAAAAgUAAAAIdHJhbnNmZXIFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAAEAAAAAXcJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAAWEIBQAAAAF3AAAABmFtb3VudAQAAAABYgkAA/AAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAA1RDSQMJAQAAAAIhPQAAAAIIBQAAAAF3AAAAB2Fzc2V0SWQFAAAAA1RDSQkAAAIAAAABAgAAAAZzZGFzZGEDCQAAZwAAAAIAAAAAAAAAAAAFAAAAAWEJAAACAAAAAQIAAAAkQ2FuJ3Qgd2l0aGRyYXcgMCBvciBuZWdhdGl2ZSBhbW1vdW50AwkAAGcAAAACAAAAAAAAAAAABQAAAAFiCQAAAgAAAAECAAAAG1Vuc3VmaWNpZW50IGFjY291bnQgYmFsYW5jZQQAAAAIYmFBbW91bnQEAAAAByRtYXRjaDAJAAPsAAAAAQUAAAACQkEDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABUFzc2V0BAAAAAFxBQAAAAckbWF0Y2gwCAUAAAABcQAAAAhxdWFudGl0eQAAAAAAAAAAAAQAAAACdnAJAABrAAAAAwkAA/AAAAACBQAAAAR0aGlzBQAAAAJCQQAAAAAABfXhAAUAAAAIYmFBbW91bnQEAAAABXRvUmVwCQAAawAAAAMFAAAAAnZwBQAAAAFhAAAAAAAF9eEABAAAAANicm4JAQAAAARCdXJuAAAAAgUAAAADVENJBQAAAAV0b1JlcAQAAAAEdHJzZgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAV0b1JlcAUAAAACQkEJAARMAAAAAgUAAAADYnJuCQAETAAAAAIFAAAABHRyc2YFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5f/c12g==", "height": 2075791, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8z5o6pn2ijuZnqq5Y5NJMbqFu8ZjJC2EnpA64qaASbtn Next: 8dZ8ZGzh1U9jBvPQ9KycYu64wx5jvBTiQnD26cvDo1zJ Diff:
OldNewDifferences
3333 }
3434
3535
36+
37+@Callable(i)
38+func withdraw () = {
39+ let w = value(i.payments[0])
40+ let a = w.amount
41+ let b = assetBalance(i.caller, TCI)
42+ if ((w.assetId != TCI))
43+ then throw("sdasda")
44+ else if ((0 >= a))
45+ then throw("Can't withdraw 0 or negative ammount")
46+ else if ((0 >= b))
47+ then throw("Unsuficient account balance")
48+ else {
49+ let baAmount = match assetInfo(BA) {
50+ case q: Asset =>
51+ q.quantity
52+ case _ =>
53+ 0
54+ }
55+ let vp = fraction(assetBalance(this, BA), 100000000, baAmount)
56+ let toRep = fraction(vp, a, 100000000)
57+ let brn = Burn(TCI, toRep)
58+ let trsf = ScriptTransfer(i.caller, toRep, BA)
59+[brn, trsf]
60+ }
61+ }
62+
63+
64+@Verifier(tx)
65+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
66+
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'
77
88 let isStopped = false
99
1010 @Callable(i)
1111 func stake () = {
1212 let pmt = value(i.payments[0])
1313 let pmtAmount = pmt.amount
1414 if ((pmt.assetId != BA))
1515 then throw("You can stake USDN only")
1616 else if (isStopped)
1717 then throw("smart contract is on lock")
1818 else {
1919 let inTreasury = assetBalance(this, BA)
2020 let totalIssued = match assetInfo(TCI) {
2121 case asset: Asset =>
2222 asset.quantity
2323 case _ =>
2424 throw("Can't find asset")
2525 }
2626 let treasury = (inTreasury - pmtAmount)
2727 let singleTCIinValue = fraction(totalIssued, 100000000, treasury)
2828 let amountToIssue = fraction(pmtAmount, singleTCIinValue, 100000000)
2929 let TCIIssue = Reissue(TCI, amountToIssue, true)
3030 let transfer = ScriptTransfer(i.caller, amountToIssue, TCI)
3131 [TCIIssue, transfer]
3232 }
3333 }
3434
3535
36+
37+@Callable(i)
38+func withdraw () = {
39+ let w = value(i.payments[0])
40+ let a = w.amount
41+ let b = assetBalance(i.caller, TCI)
42+ if ((w.assetId != TCI))
43+ then throw("sdasda")
44+ else if ((0 >= a))
45+ then throw("Can't withdraw 0 or negative ammount")
46+ else if ((0 >= b))
47+ then throw("Unsuficient account balance")
48+ else {
49+ let baAmount = match assetInfo(BA) {
50+ case q: Asset =>
51+ q.quantity
52+ case _ =>
53+ 0
54+ }
55+ let vp = fraction(assetBalance(this, BA), 100000000, baAmount)
56+ let toRep = fraction(vp, a, 100000000)
57+ let brn = Burn(TCI, toRep)
58+ let trsf = ScriptTransfer(i.caller, toRep, BA)
59+[brn, trsf]
60+ }
61+ }
62+
63+
64+@Verifier(tx)
65+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
66+

github/deemru/w8io/3ef1775 
34.53 ms