tx · ER9trjjaDpwAgmmEcsKbxF8f5d9twbVGVrdzETZ2HCS9 3NAxi4ijrbVmR2AVeKTeJ1L3P4ebbXk7YDY: -0.01400000 Waves 2022.03.01 17:51 [1945061] smart account 3NAxi4ijrbVmR2AVeKTeJ1L3P4ebbXk7YDY > SELF 0.00000000 Waves
{ "type": 13, "id": "ER9trjjaDpwAgmmEcsKbxF8f5d9twbVGVrdzETZ2HCS9", "fee": 1400000, "feeAssetId": null, "timestamp": 1646146295848, "version": 2, "chainId": 84, "sender": "3NAxi4ijrbVmR2AVeKTeJ1L3P4ebbXk7YDY", "senderPublicKey": "6w6geQvkvMqffnrYsamvmS9TjKjjePjFPWLY9qDbNddX", "proofs": [ "ErN7hvVQs6HDCzGwkLJVFyCvRkeAMPRkMqHQoL8gGxGLvFmrxv9A7TSKRSr53F5kmuHpW75vSMEQs6cPcy42Rqp" ], "script": "base64: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cnkAAAACAgAAABlUb3RhbF9mc1ROX1Jlc2VydmVfSW5fVE46BQAAABBmc1ROUmVzZXJ2ZVZhbHVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABhmc1ROX0JhY2t1cF9WYWx1ZV9Jbl9UTjoFAAAAD2ZzVE5CYWNrdXBQcmljZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlAgAAACY8aDE+ZnNUTiBJc3N1ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgkABEwAAAACCQEAAAAHUmVpc3N1ZQAAAAMFAAAAC2ZzVE5Bc3NldElEBQAAAA1OZXdmc1ROVG9Vc2VyBgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABlAAAAAgUAAAANTmV3ZnNUTlRvVXNlcgUAAAALRmVlc0NoYXJnZWQFAAAAC2ZzVE5Bc3NldElECQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAE0lzc3VlZnNUTkZlZUFkZHJlc3MFAAAAC0ZlZXNDaGFyZ2VkBQAAAAtmc1ROQXNzZXRJRAUAAAADbmlsAAAAAWkBAAAACUxpcXVpZGF0ZQAAAAAEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAElByZXZpb3VzSXNzdWVkZnNUTgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAASVG90YWxfSXNzdWVkX2ZzVE46BAAAAA9Ub3RhbElzc3VlZGZzVE4JAABlAAAAAgUAAAASUHJldmlvdXNJc3N1ZWRmc1ROCAUAAAADcG10AAAABmFtb3VudAQAAAAYUHJldmlvdXNmc1ROUmVzZXJ2ZVZhbHVlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABlUb3RhbF9mc1ROX1Jlc2VydmVfSW5fVE46BAAAABdQcmV2aW91c2ZzVE5CYWNrdXBQcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAYZnNUTl9CYWNrdXBfVmFsdWVfSW5fVE46BAAAABJjYWxjdWxhdGVidXJudmFsdWUJAABrAAAAAwUAAAAXUHJldmlvdXNmc1ROQmFja3VwUHJpY2UIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAAYagBAAAABBmc1ROUmVzZXJ2ZVZhbHVlCQAAZQAAAAIFAAAAGFByZXZpb3VzZnNUTlJlc2VydmVWYWx1ZQUAAAASY2FsY3VsYXRlYnVybnZhbHVlBAAAAA9mc1ROQmFja3VwUHJpY2UJAABrAAAAAwAAAAAAAAGGoAUAAAAQZnNUTlJlc2VydmVWYWx1ZQUAAAAPVG90YWxJc3N1ZWRmc1ROAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAtmc1ROQXNzZXRJRAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAUS2luZGx5IERlcG9zaXQgT25seSAJAAJYAAAAAQUAAAALZnNUTkFzc2V0SUQCAAAACCAoZnNUTikuAwkAAGYAAAACAAAAAAAAAYagCAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAAC5BdHRhY2ggQW1vdW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuMDAxIGZzVE4uCQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAALZnNUTkFzc2V0SUQIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJUb3RhbF9Jc3N1ZWRfZnNUTjoFAAAAD1RvdGFsSXNzdWVkZnNUTgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAZVG90YWxfZnNUTl9SZXNlcnZlX0luX1ROOgUAAAAQZnNUTlJlc2VydmVWYWx1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAYZnNUTl9CYWNrdXBfVmFsdWVfSW5fVE46BQAAAA9mc1ROQmFja3VwUHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAqPGgxPmZzVE4gTGlxdWlkYXRlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAASY2FsY3VsYXRlYnVybnZhbHVlBQAAAAR1bml0BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXnFNYUD", "height": 1945061, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C8pTU5ToujsuEratAAbT5NQc6qFiHByYGyWg7nc42KUk Next: 7dkqn1Gbs8niR3YWhGCsfh8toga3VtpaZM4keAjVrPnf Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let fsTNAssetID = base58' | |
4 | + | let fsTNAssetID = base58'DYv8LXPqdm9N6xTdnfqrHzH9RMTnXLnfkYHffauHNc7o' | |
5 | 5 | ||
6 | - | let IssuefsTNFeeAddress = addressFromPublicKey(base58' | |
6 | + | let IssuefsTNFeeAddress = addressFromPublicKey(base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR') | |
7 | 7 | ||
8 | 8 | @Callable(i) | |
9 | 9 | func IssuefsTN () = { | |
10 | 10 | let pmt = value(i.payments[0]) | |
11 | 11 | let currentKey = toBase58String(i.caller.bytes) | |
12 | 12 | let PricePerfsTN = getIntegerValue(this, "fsTN/TN") | |
13 | + | let fsTNCurrentCap = getIntegerValue(this, "fsTNCurrentCap") | |
13 | 14 | let NewfsTNToUser = fraction(100000, pmt.amount, PricePerfsTN) | |
14 | 15 | let PreviousIssuedfsTN = getIntegerValue(this, "Total_Issued_fsTN:") | |
15 | 16 | let TotalIssuedfsTN = (PreviousIssuedfsTN + NewfsTNToUser) | |
17 | + | let PendingMinting = (fsTNCurrentCap - TotalIssuedfsTN) | |
16 | 18 | let PreviousfsTNReserveValue = getIntegerValue(this, "Total_fsTN_Reserve_In_TN:") | |
17 | 19 | let fsTNReserveValue = (PreviousfsTNReserveValue + pmt.amount) | |
18 | 20 | let PreviousfsTNBackupPrice = getIntegerValue(this, "fsTN_Backup_Value_In_TN:") | |
22 | 24 | then throw("Incorrect asset attached, please attach TN.") | |
23 | 25 | else if ((200000000 > pmt.amount)) | |
24 | 26 | then throw("Please Attach minimum 2 TN To Issue fsTN Asset.") | |
25 | - | else [IntegerEntry("Total_Issued_fsTN:", TotalIssuedfsTN), IntegerEntry("Total_fsTN_Reserve_In_TN:", fsTNReserveValue), IntegerEntry("fsTN_Backup_Value_In_TN:", fsTNBackupPrice), StringEntry("message", "<h1>fsTN Issued Successfully!</h1><br>"), Reissue(fsTNAssetID, NewfsTNToUser, true), ScriptTransfer(i.caller, (NewfsTNToUser - FeesCharged), fsTNAssetID), ScriptTransfer(IssuefsTNFeeAddress, FeesCharged, fsTNAssetID)] | |
27 | + | else if ((TotalIssuedfsTN > fsTNCurrentCap)) | |
28 | + | then throw((((((("fsTN Minting is about to reach the Cap of " + toString(fsTNCurrentCap)) + "/10^8 fsTN. Please Reduce your Minting Order by ") + toString(PendingMinting)) + " or put ") + toString((fsTNCurrentCap - PreviousIssuedfsTN))) + "/10^8")) | |
29 | + | else [IntegerEntry("Total_Issued_fsTN:", TotalIssuedfsTN), IntegerEntry("Balance_Minting_fsTN:", PendingMinting), IntegerEntry("Total_fsTN_Reserve_In_TN:", fsTNReserveValue), IntegerEntry("fsTN_Backup_Value_In_TN:", fsTNBackupPrice), StringEntry("message", "<h1>fsTN Issued Successfully!</h1><br>"), Reissue(fsTNAssetID, NewfsTNToUser, true), ScriptTransfer(i.caller, (NewfsTNToUser - FeesCharged), fsTNAssetID), ScriptTransfer(IssuefsTNFeeAddress, FeesCharged, fsTNAssetID)] | |
26 | 30 | } | |
27 | 31 | ||
28 | 32 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let fsTNAssetID = base58' | |
4 | + | let fsTNAssetID = base58'DYv8LXPqdm9N6xTdnfqrHzH9RMTnXLnfkYHffauHNc7o' | |
5 | 5 | ||
6 | - | let IssuefsTNFeeAddress = addressFromPublicKey(base58' | |
6 | + | let IssuefsTNFeeAddress = addressFromPublicKey(base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR') | |
7 | 7 | ||
8 | 8 | @Callable(i) | |
9 | 9 | func IssuefsTN () = { | |
10 | 10 | let pmt = value(i.payments[0]) | |
11 | 11 | let currentKey = toBase58String(i.caller.bytes) | |
12 | 12 | let PricePerfsTN = getIntegerValue(this, "fsTN/TN") | |
13 | + | let fsTNCurrentCap = getIntegerValue(this, "fsTNCurrentCap") | |
13 | 14 | let NewfsTNToUser = fraction(100000, pmt.amount, PricePerfsTN) | |
14 | 15 | let PreviousIssuedfsTN = getIntegerValue(this, "Total_Issued_fsTN:") | |
15 | 16 | let TotalIssuedfsTN = (PreviousIssuedfsTN + NewfsTNToUser) | |
17 | + | let PendingMinting = (fsTNCurrentCap - TotalIssuedfsTN) | |
16 | 18 | let PreviousfsTNReserveValue = getIntegerValue(this, "Total_fsTN_Reserve_In_TN:") | |
17 | 19 | let fsTNReserveValue = (PreviousfsTNReserveValue + pmt.amount) | |
18 | 20 | let PreviousfsTNBackupPrice = getIntegerValue(this, "fsTN_Backup_Value_In_TN:") | |
19 | 21 | let fsTNBackupPrice = fraction(100000, fsTNReserveValue, TotalIssuedfsTN) | |
20 | 22 | let FeesCharged = 100000000 | |
21 | 23 | if (isDefined(pmt.assetId)) | |
22 | 24 | then throw("Incorrect asset attached, please attach TN.") | |
23 | 25 | else if ((200000000 > pmt.amount)) | |
24 | 26 | then throw("Please Attach minimum 2 TN To Issue fsTN Asset.") | |
25 | - | else [IntegerEntry("Total_Issued_fsTN:", TotalIssuedfsTN), IntegerEntry("Total_fsTN_Reserve_In_TN:", fsTNReserveValue), IntegerEntry("fsTN_Backup_Value_In_TN:", fsTNBackupPrice), StringEntry("message", "<h1>fsTN Issued Successfully!</h1><br>"), Reissue(fsTNAssetID, NewfsTNToUser, true), ScriptTransfer(i.caller, (NewfsTNToUser - FeesCharged), fsTNAssetID), ScriptTransfer(IssuefsTNFeeAddress, FeesCharged, fsTNAssetID)] | |
27 | + | else if ((TotalIssuedfsTN > fsTNCurrentCap)) | |
28 | + | then throw((((((("fsTN Minting is about to reach the Cap of " + toString(fsTNCurrentCap)) + "/10^8 fsTN. Please Reduce your Minting Order by ") + toString(PendingMinting)) + " or put ") + toString((fsTNCurrentCap - PreviousIssuedfsTN))) + "/10^8")) | |
29 | + | else [IntegerEntry("Total_Issued_fsTN:", TotalIssuedfsTN), IntegerEntry("Balance_Minting_fsTN:", PendingMinting), IntegerEntry("Total_fsTN_Reserve_In_TN:", fsTNReserveValue), IntegerEntry("fsTN_Backup_Value_In_TN:", fsTNBackupPrice), StringEntry("message", "<h1>fsTN Issued Successfully!</h1><br>"), Reissue(fsTNAssetID, NewfsTNToUser, true), ScriptTransfer(i.caller, (NewfsTNToUser - FeesCharged), fsTNAssetID), ScriptTransfer(IssuefsTNFeeAddress, FeesCharged, fsTNAssetID)] | |
26 | 30 | } | |
27 | 31 | ||
28 | 32 | ||
29 | 33 | ||
30 | 34 | @Callable(i) | |
31 | 35 | func Liquidate () = { | |
32 | 36 | let currentKey = toBase58String(i.callerPublicKey) | |
33 | 37 | let pmt = value(i.payments[0]) | |
34 | 38 | let PreviousIssuedfsTN = getIntegerValue(this, "Total_Issued_fsTN:") | |
35 | 39 | let TotalIssuedfsTN = (PreviousIssuedfsTN - pmt.amount) | |
36 | 40 | let PreviousfsTNReserveValue = getIntegerValue(this, "Total_fsTN_Reserve_In_TN:") | |
37 | 41 | let PreviousfsTNBackupPrice = getIntegerValue(this, "fsTN_Backup_Value_In_TN:") | |
38 | 42 | let calculateburnvalue = fraction(PreviousfsTNBackupPrice, pmt.amount, 100000) | |
39 | 43 | let fsTNReserveValue = (PreviousfsTNReserveValue - calculateburnvalue) | |
40 | 44 | let fsTNBackupPrice = fraction(100000, fsTNReserveValue, TotalIssuedfsTN) | |
41 | 45 | if ((pmt.assetId != fsTNAssetID)) | |
42 | 46 | then throw((("Kindly Deposit Only " + toBase58String(fsTNAssetID)) + " (fsTN).")) | |
43 | 47 | else if ((100000 > pmt.amount)) | |
44 | 48 | then throw("Attach Amount must be greater than 0.001 fsTN.") | |
45 | 49 | else [Burn(fsTNAssetID, pmt.amount), IntegerEntry("Total_Issued_fsTN:", TotalIssuedfsTN), IntegerEntry("Total_fsTN_Reserve_In_TN:", fsTNReserveValue), IntegerEntry("fsTN_Backup_Value_In_TN:", fsTNBackupPrice), StringEntry("message", "<h1>fsTN Liquidated Successfully!</h1><br>"), ScriptTransfer(i.caller, calculateburnvalue, unit)] | |
46 | 50 | } | |
47 | 51 | ||
48 | 52 | ||
49 | 53 | @Verifier(tx) | |
50 | 54 | func verify () = match tx { | |
51 | 55 | case _ => | |
52 | 56 | sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
53 | 57 | } | |
54 | 58 |
github/deemru/w8io/026f985 37.52 ms ◑