tx · 4Doutqf7VaAP9psavSJ8z9s4b5ndrQwib2ViANC9Zs8o 3N6wPxvtZqewp7wxSgKnvxyTRbdpPYgcZUz: -0.01400000 Waves 2023.01.29 00:19 [2425348] smart account 3N6wPxvtZqewp7wxSgKnvxyTRbdpPYgcZUz > SELF 0.00000000 Waves
{ "type": 13, "id": "4Doutqf7VaAP9psavSJ8z9s4b5ndrQwib2ViANC9Zs8o", "fee": 1400000, "feeAssetId": null, "timestamp": 1674940801897, "version": 2, "chainId": 84, "sender": "3N6wPxvtZqewp7wxSgKnvxyTRbdpPYgcZUz", "senderPublicKey": "9jKM8wCUwLNG8wVvpR7mWRUKeNLCeQwmHRKs7rNt9uV3", "proofs": [ "2G3Sa9avEu2oSChXBfxJNdMBZ9Pz2Xyp3bXrtch9CH47Bp4CY6c2VrcAdBu8YqpEQtFqz9ceJCejiHGURFPkF3vc" ], "script": "base64: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pAAAAAEFAAAADlBlbmRpbmdNaW50aW5nAgAAAAggb3IgcHV0IAkAAaQAAAABCQAAZQAAAAIFAAAADmZzVE5DdXJyZW50Q2FwBQAAABJQcmV2aW91c0lzc3VlZGZzVE4CAAAABS8xMF44CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJUb3RhbF9Jc3N1ZWRfZnNUTjoFAAAAD1RvdGFsSXNzdWVkZnNUTgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAVQmFsYW5jZV9NaW50aW5nX2ZzVE46BQAAAA5QZW5kaW5nTWludGluZwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAZVG90YWxfZnNUTl9SZXNlcnZlX0luX1ROOgUAAAAQZnNUTlJlc2VydmVWYWx1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAYZnNUTl9CYWNrdXBfVmFsdWVfSW5fVE46BQAAAA9mc1ROQmFja3VwUHJpY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1RvdGFsX0ZlZV9Db2xsZWN0ZWQFAAAAC0ZlZXNDaGFyZ2VkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAlUb3RhbHR4bnMFAAAACXRvdGFsdHhucwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlAgAAACY8aDE+ZnNUTiBJc3N1ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgkABEwAAAACCQEAAAAHUmVpc3N1ZQAAAAMFAAAAC2ZzVE5Bc3NldElEBQAAAA1OZXdmc1ROVG9Vc2VyBgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABlAAAAAgUAAAANTmV3ZnNUTlRvVXNlcgUAAAALRmVlc0NoYXJnZWQFAAAAC2ZzVE5Bc3NldElECQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAE0lzc3VlZnNUTkZlZUFkZHJlc3MFAAAAC0ZlZXNDaGFyZ2VkBQAAAAtmc1ROQXNzZXRJRAUAAAADbmlsAAAAAWkBAAAACUxpcXVpZGF0ZQAAAAAEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAElByZXZpb3VzSXNzdWVkZnNUTgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAASVG90YWxfSXNzdWVkX2ZzVE46BAAAABJQcmV2aW91c0J1cm5lZGZzVE4JAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAElRvdGFsX0J1cm5lZF9mc1ROOgQAAAAOZnNUTkN1cnJlbnRDYXAJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAADmZzVE5DdXJyZW50Q2FwBAAAAA9Ub3RhbElzc3VlZGZzVE4JAABlAAAAAgUAAAASUHJldmlvdXNJc3N1ZWRmc1ROCAUAAAADcG10AAAABmFtb3VudAQAAAAPVG90YWxCdXJuZWRmc1ROCQAAZAAAAAIFAAAAElByZXZpb3VzQnVybmVkZnNUTggFAAAAA3BtdAAAAAZhbW91bnQEAAAADlBlbmRpbmdNaW50aW5nCQAAZQAAAAIFAAAADmZzVE5DdXJyZW50Q2FwBQAAAA9Ub3RhbElzc3VlZGZzVE4EAAAAGFByZXZpb3VzZnNUTlJlc2VydmVWYWx1ZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAZVG90YWxfZnNUTl9SZXNlcnZlX0luX1ROOgQAAAAXUHJldmlvdXNmc1ROQmFja3VwUHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAGGZzVE5fQmFja3VwX1ZhbHVlX0luX1ROOgQAAAASY2FsY3VsYXRlYnVybnZhbHVlCQAAawAAAAMFAAAAF1ByZXZpb3VzZnNUTkJhY2t1cFByaWNlCAUAAAADcG10AAAABmFtb3VudAAAAAAAAAGGoAQAAAAQZnNUTlJlc2VydmVWYWx1ZQkAAGUAAAACBQAAABhQcmV2aW91c2ZzVE5SZXNlcnZlVmFsdWUFAAAAEmNhbGN1bGF0ZWJ1cm52YWx1ZQQAAAAPZnNUTkJhY2t1cFByaWNlCQAAawAAAAMAAAAAAAABhqAFAAAAEGZzVE5SZXNlcnZlVmFsdWUFAAAAD1RvdGFsSXNzdWVkZnNUTgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAALZnNUTkFzc2V0SUQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAFEtpbmRseSBEZXBvc2l0IE9ubHkgCQACWAAAAAEFAAAAC2ZzVE5Bc3NldElEAgAAAAggKGZzVE4pLgMJAABmAAAAAgAAAAAAAAGGoAgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAAuQXR0YWNoIEFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLjAwMSBmc1ROLgkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAAC2ZzVE5Bc3NldElECAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAJVG90YWx0eG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAElRvdGFsX0lzc3VlZF9mc1ROOgUAAAAPVG90YWxJc3N1ZWRmc1ROCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJUb3RhbF9CdXJuZWRfZnNUTjoFAAAAD1RvdGFsQnVybmVkZnNUTgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAVQmFsYW5jZV9NaW50aW5nX2ZzVE46BQAAAA5QZW5kaW5nTWludGluZwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAZVG90YWxfZnNUTl9SZXNlcnZlX0luX1ROOgUAAAAQZnNUTlJlc2VydmVWYWx1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAYZnNUTl9CYWNrdXBfVmFsdWVfSW5fVE46BQAAAA9mc1ROQmFja3VwUHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAqPGgxPmZzVE4gTGlxdWlkYXRlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAASY2FsY3VsYXRlYnVybnZhbHVlBQAAAAR1bml0BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmplNoM", "height": 2425348, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EXiKuuK8HDtFcq9291Lnup8DURa6vCxmwgAqng4uY9E7 Next: 5z6QRwUFk732y6Bqf31eY7ZxHvJxHV7cd5hTML98zoVP Diff:
Old | New | Differences | |
---|---|---|---|
16 | 16 | ||
17 | 17 | @Callable(i) | |
18 | 18 | func IssuefsTN () = { | |
19 | - | let FeesCharged = 1000000000 | |
20 | - | let minimum_minting = 1100000000 | |
21 | - | let pmt = if ((size(i.payments) == 1)) | |
22 | - | then i.payments[0] | |
23 | - | else throw((toString((minimum_minting / 100000000)) + " TN Token is required as Attached payment")) | |
19 | + | let pmt = value(i.payments[0]) | |
24 | 20 | let currentKey = toBase58String(i.caller.bytes) | |
25 | 21 | let PricePerfsTN = getIntegerValue(this, "fsTN/TN") | |
26 | 22 | let fsTNCurrentCap = getIntegerValue(this, "fsTNCurrentCap") | |
27 | 23 | let NewfsTNToUser = fraction(100000, pmt.amount, PricePerfsTN) | |
28 | - | let PreviousIssuedfsTN = match getInteger(this, "Total_Issued_fsTN:") { | |
29 | - | case a: Int => | |
30 | - | a | |
31 | - | case _ => | |
32 | - | 0 | |
33 | - | } | |
24 | + | let PreviousIssuedfsTN = getIntegerValue(this, "Total_Issued_fsTN:") | |
34 | 25 | let TotalIssuedfsTN = (PreviousIssuedfsTN + NewfsTNToUser) | |
35 | 26 | let PendingMinting = (fsTNCurrentCap - TotalIssuedfsTN) | |
36 | 27 | let PreviousfsTNReserveValue = getIntegerValue(this, "Total_fsTN_Reserve_In_TN:") | |
40 | 31 | case _ => | |
41 | 32 | 0 | |
42 | 33 | } | |
43 | - | let | |
34 | + | let FeesCharged = 100000000 | |
44 | 35 | let fsTNReserveValue = (PreviousfsTNReserveValue + pmt.amount) | |
45 | 36 | let PreviousfsTNBackupPrice = getIntegerValue(this, "fsTN_Backup_Value_In_TN:") | |
46 | 37 | let fsTNBackupPrice = fraction(100000, fsTNReserveValue, TotalIssuedfsTN) | |
47 | 38 | if (isDefined(pmt.assetId)) | |
48 | 39 | then throw("Incorrect asset attached, please attach TN.") | |
49 | - | else if (( | |
50 | - | then throw("Please Attach minimum | |
40 | + | else if ((200000000 > pmt.amount)) | |
41 | + | then throw("Please Attach minimum 2 TN To Issue fsTN Asset.") | |
51 | 42 | else if ((TotalIssuedfsTN > fsTNCurrentCap)) | |
52 | 43 | 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")) | |
53 | - | 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), IntegerEntry("Total_Fee_Collected", | |
44 | + | 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), IntegerEntry("Total_Fee_Collected", FeesCharged), IntegerEntry("Totaltxns", totaltxns), StringEntry("message", "<h1>fsTN Issued Successfully!</h1><br>"), Reissue(fsTNAssetID, NewfsTNToUser, true), ScriptTransfer(i.caller, (NewfsTNToUser - FeesCharged), fsTNAssetID), ScriptTransfer(IssuefsTNFeeAddress, FeesCharged, fsTNAssetID)] | |
54 | 45 | } | |
55 | 46 | ||
56 | 47 | ||
58 | 49 | @Callable(i) | |
59 | 50 | func Liquidate () = { | |
60 | 51 | let currentKey = toBase58String(i.callerPublicKey) | |
61 | - | let minimum_amount_to_burn = 100000 | |
62 | - | let pmt = if ((size(i.payments) == 1)) | |
63 | - | then i.payments[0] | |
64 | - | else throw((toString(minimum_amount_to_burn) + "0.001 fsTN Token is required as Attached payment")) | |
52 | + | let pmt = value(i.payments[0]) | |
65 | 53 | let PreviousIssuedfsTN = getIntegerValue(this, "Total_Issued_fsTN:") | |
66 | 54 | let PreviousBurnedfsTN = getIntegerValue(this, "Total_Burned_fsTN:") | |
67 | 55 | let fsTNCurrentCap = getIntegerValue(this, "fsTNCurrentCap") | |
75 | 63 | let fsTNBackupPrice = fraction(100000, fsTNReserveValue, TotalIssuedfsTN) | |
76 | 64 | if ((pmt.assetId != fsTNAssetID)) | |
77 | 65 | then throw((("Kindly Deposit Only " + toBase58String(fsTNAssetID)) + " (fsTN).")) | |
78 | - | else if (( | |
66 | + | else if ((100000 > pmt.amount)) | |
79 | 67 | then throw("Attach Amount must be greater than 0.001 fsTN.") | |
80 | 68 | else [Burn(fsTNAssetID, pmt.amount), IntegerEntry("Totaltxns", totaltxns), IntegerEntry("Total_Issued_fsTN:", TotalIssuedfsTN), IntegerEntry("Total_Burned_fsTN:", TotalBurnedfsTN), IntegerEntry("Balance_Minting_fsTN:", PendingMinting), 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)] | |
81 | 69 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let fsTNAssetID = base58'DYv8LXPqdm9N6xTdnfqrHzH9RMTnXLnfkYHffauHNc7o' | |
5 | 5 | ||
6 | 6 | let IssuefsTNFeeAddress = addressFromPublicKey(base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR') | |
7 | 7 | ||
8 | 8 | let txns = match getInteger(this, "Totaltxns") { | |
9 | 9 | case a: Int => | |
10 | 10 | a | |
11 | 11 | case _ => | |
12 | 12 | 0 | |
13 | 13 | } | |
14 | 14 | ||
15 | 15 | let totaltxns = (txns + 1) | |
16 | 16 | ||
17 | 17 | @Callable(i) | |
18 | 18 | func IssuefsTN () = { | |
19 | - | let FeesCharged = 1000000000 | |
20 | - | let minimum_minting = 1100000000 | |
21 | - | let pmt = if ((size(i.payments) == 1)) | |
22 | - | then i.payments[0] | |
23 | - | else throw((toString((minimum_minting / 100000000)) + " TN Token is required as Attached payment")) | |
19 | + | let pmt = value(i.payments[0]) | |
24 | 20 | let currentKey = toBase58String(i.caller.bytes) | |
25 | 21 | let PricePerfsTN = getIntegerValue(this, "fsTN/TN") | |
26 | 22 | let fsTNCurrentCap = getIntegerValue(this, "fsTNCurrentCap") | |
27 | 23 | let NewfsTNToUser = fraction(100000, pmt.amount, PricePerfsTN) | |
28 | - | let PreviousIssuedfsTN = match getInteger(this, "Total_Issued_fsTN:") { | |
29 | - | case a: Int => | |
30 | - | a | |
31 | - | case _ => | |
32 | - | 0 | |
33 | - | } | |
24 | + | let PreviousIssuedfsTN = getIntegerValue(this, "Total_Issued_fsTN:") | |
34 | 25 | let TotalIssuedfsTN = (PreviousIssuedfsTN + NewfsTNToUser) | |
35 | 26 | let PendingMinting = (fsTNCurrentCap - TotalIssuedfsTN) | |
36 | 27 | let PreviousfsTNReserveValue = getIntegerValue(this, "Total_fsTN_Reserve_In_TN:") | |
37 | 28 | let fee = match getInteger(this, "Total_Fee_Collected") { | |
38 | 29 | case a: Int => | |
39 | 30 | a | |
40 | 31 | case _ => | |
41 | 32 | 0 | |
42 | 33 | } | |
43 | - | let | |
34 | + | let FeesCharged = 100000000 | |
44 | 35 | let fsTNReserveValue = (PreviousfsTNReserveValue + pmt.amount) | |
45 | 36 | let PreviousfsTNBackupPrice = getIntegerValue(this, "fsTN_Backup_Value_In_TN:") | |
46 | 37 | let fsTNBackupPrice = fraction(100000, fsTNReserveValue, TotalIssuedfsTN) | |
47 | 38 | if (isDefined(pmt.assetId)) | |
48 | 39 | then throw("Incorrect asset attached, please attach TN.") | |
49 | - | else if (( | |
50 | - | then throw("Please Attach minimum | |
40 | + | else if ((200000000 > pmt.amount)) | |
41 | + | then throw("Please Attach minimum 2 TN To Issue fsTN Asset.") | |
51 | 42 | else if ((TotalIssuedfsTN > fsTNCurrentCap)) | |
52 | 43 | 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")) | |
53 | - | 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), IntegerEntry("Total_Fee_Collected", | |
44 | + | 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), IntegerEntry("Total_Fee_Collected", FeesCharged), IntegerEntry("Totaltxns", totaltxns), StringEntry("message", "<h1>fsTN Issued Successfully!</h1><br>"), Reissue(fsTNAssetID, NewfsTNToUser, true), ScriptTransfer(i.caller, (NewfsTNToUser - FeesCharged), fsTNAssetID), ScriptTransfer(IssuefsTNFeeAddress, FeesCharged, fsTNAssetID)] | |
54 | 45 | } | |
55 | 46 | ||
56 | 47 | ||
57 | 48 | ||
58 | 49 | @Callable(i) | |
59 | 50 | func Liquidate () = { | |
60 | 51 | let currentKey = toBase58String(i.callerPublicKey) | |
61 | - | let minimum_amount_to_burn = 100000 | |
62 | - | let pmt = if ((size(i.payments) == 1)) | |
63 | - | then i.payments[0] | |
64 | - | else throw((toString(minimum_amount_to_burn) + "0.001 fsTN Token is required as Attached payment")) | |
52 | + | let pmt = value(i.payments[0]) | |
65 | 53 | let PreviousIssuedfsTN = getIntegerValue(this, "Total_Issued_fsTN:") | |
66 | 54 | let PreviousBurnedfsTN = getIntegerValue(this, "Total_Burned_fsTN:") | |
67 | 55 | let fsTNCurrentCap = getIntegerValue(this, "fsTNCurrentCap") | |
68 | 56 | let TotalIssuedfsTN = (PreviousIssuedfsTN - pmt.amount) | |
69 | 57 | let TotalBurnedfsTN = (PreviousBurnedfsTN + pmt.amount) | |
70 | 58 | let PendingMinting = (fsTNCurrentCap - TotalIssuedfsTN) | |
71 | 59 | let PreviousfsTNReserveValue = getIntegerValue(this, "Total_fsTN_Reserve_In_TN:") | |
72 | 60 | let PreviousfsTNBackupPrice = getIntegerValue(this, "fsTN_Backup_Value_In_TN:") | |
73 | 61 | let calculateburnvalue = fraction(PreviousfsTNBackupPrice, pmt.amount, 100000) | |
74 | 62 | let fsTNReserveValue = (PreviousfsTNReserveValue - calculateburnvalue) | |
75 | 63 | let fsTNBackupPrice = fraction(100000, fsTNReserveValue, TotalIssuedfsTN) | |
76 | 64 | if ((pmt.assetId != fsTNAssetID)) | |
77 | 65 | then throw((("Kindly Deposit Only " + toBase58String(fsTNAssetID)) + " (fsTN).")) | |
78 | - | else if (( | |
66 | + | else if ((100000 > pmt.amount)) | |
79 | 67 | then throw("Attach Amount must be greater than 0.001 fsTN.") | |
80 | 68 | else [Burn(fsTNAssetID, pmt.amount), IntegerEntry("Totaltxns", totaltxns), IntegerEntry("Total_Issued_fsTN:", TotalIssuedfsTN), IntegerEntry("Total_Burned_fsTN:", TotalBurnedfsTN), IntegerEntry("Balance_Minting_fsTN:", PendingMinting), 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)] | |
81 | 69 | } | |
82 | 70 | ||
83 | 71 | ||
84 | 72 | @Verifier(tx) | |
85 | 73 | func verify () = match tx { | |
86 | 74 | case _ => | |
87 | 75 | sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
88 | 76 | } | |
89 | 77 |
github/deemru/w8io/169f3d6 29.78 ms ◑![]()