tx · 5n5euiSn31Cb8cEq44ggyY7XzHwfgQkdDBEcmKXK9Lue 3NARdCrmQCEs9RNtwCSRc6JCoThQGyXjrAj: -0.01400000 Waves 2021.09.30 16:43 [1725770] smart account 3NARdCrmQCEs9RNtwCSRc6JCoThQGyXjrAj > SELF 0.00000000 Waves
{ "type": 13, "id": "5n5euiSn31Cb8cEq44ggyY7XzHwfgQkdDBEcmKXK9Lue", "fee": 1400000, "feeAssetId": null, "timestamp": 1633009452392, "version": 2, "chainId": 84, "sender": "3NARdCrmQCEs9RNtwCSRc6JCoThQGyXjrAj", "senderPublicKey": "C246qxhuyo9DBk1pjMzEQSVAWmiqYupG2swGkxTeAvLV", "proofs": [ "5viADP59ieFxdUHkiPdjtfyt9npu6MoeG2xTgJmsLNRzfUn6PdppEEHEKwCAybQrx4hQcTgLxpYTULzUjw7cRwD6" ], "script": "base64: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aW91c0E0QUJhY2t1cFByaWNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABdBNEFfQmFja3VwX1ZhbHVlX0luX1ROOgQAAAASY2FsY3VsYXRlYnVybnZhbHVlCQAAawAAAAMFAAAAFlByZXZpb3VzQTRBQmFja3VwUHJpY2UIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAAYagBAAAAA9BNEFSZXNlcnZlVmFsdWUJAABlAAAAAgUAAAAXUHJldmlvdXNBNEFSZXNlcnZlVmFsdWUFAAAAEmNhbGN1bGF0ZWJ1cm52YWx1ZQQAAAAOQTRBQmFja3VwUHJpY2UJAABrAAAAAwAAAAAAAAGGoAUAAAAPQTRBUmVzZXJ2ZVZhbHVlBQAAAA5Ub3RhbElzc3VlZEE0QQMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAAKQTRBQXNzZXRJRAkAAAIAAAABAgAAAEdLaW5kbHkgRGVwb3NpdCBPbmx5IDhoZHNWQ3hQQlZFbVZVWnl5WDhTZDk4WjloVTdGbnkyNlc5NnNqS2lUdzhnIChBNEEpLgMJAABmAAAAAgAAAAAAAAGGoAgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAAtQXR0YWNoIEFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLjAwMSBBNEEuCQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAAKQTRBQXNzZXRJRAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEVRvdGFsX0lzc3VlZF9BNEE6BQAAAA5Ub3RhbElzc3VlZEE0QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAARVG90YWxfQnVybmVkX0E0QToFAAAADlRvdGFsQnVybmVkQTRBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABhUb3RhbF9BNEFfUmVzZXJ2ZV9Jbl9UTjoFAAAAD0E0QVJlc2VydmVWYWx1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAXQTRBX0JhY2t1cF9WYWx1ZV9Jbl9UTjoFAAAADkE0QUJhY2t1cFBy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AAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAC1Jld2FyZHNfT2ZfBQAAAApjdXJyZW50S2V5BQAAAAxUaWVyMXJld2FyZHMFAAAAA25pbAMJAABnAAAAAgUAAAAEVUxHVAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAAhUaWVyX09mXwUAAAAKY3VycmVudEtleQIAAAAER09MRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABJEZXBvc2l0X2hlaWdodF9PZl8FAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAANU3Rha2VkX0Ftb3VudAUAAAASbmV3U3Rha2VkQTRBQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQUAAAAMbmV3QTRBQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFVRvdGFsX0xvY2tfQmxvY2tzX09mXwUAAAAKY3VycmVudEtleQUAAAAPdG90YWxsb2NrYmxvY2tzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTG9ja19TdGF0dXNfT2ZfBQAAAApjdXJyZW50S2V5BQAAAApsb2Nrc3RhdHVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAC1Jld2FyZHNfT2ZfBQAAAApjdXJyZW50S2V5BQAAAAxUaWVyMnJld2FyZHMFAAAAA25pbAMJAAAAAAAAAgUAAAAEVUxEVAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAAhUaWVyX09mXwUAAAAKY3VycmVudEtleQIAAAAHRElBTU9ORAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABJEZXBvc2l0X2hlaWdodF9PZl8FAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAANU3Rha2VkX0Ftb3VudAUAAAASbmV3U3Rha2VkQTRBQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQUAAAAMbmV3QTRBQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFVRvdGFsX0xvY2tfQmxvY2tzX09mXwUAAAAKY3VycmVudEtleQUAAAAPdG90YWxsb2NrYmxvY2tzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTG9ja19TdGF0dXNfT2ZfBQAAAApjdXJyZW50S2V5BQAAAApsb2Nrc3RhdHVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAC1Jld2FyZHNfT2ZfBQAAAApjdXJyZW50S2V5BQAAAAxUaWVyM3Jld2FyZHMFAAAAA25pbAkAAAIAAAABAgAAAChQbGVhc2UgQ2hvb3NlIGEgUmFuZ2UgQmV0d2VlbiAzMzMtMTIwMDAuAAAAAWkBAAAACFdpdGhkcmF3AAAAAAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABFjaGVja2RlcG9zaXR2YWx1ZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABJEZXBvc2l0X0Ftb3VudF9PZl8FAAAACmN1cnJlbnRLZXkEAAAAEGNoZWNrc3Rha2VkdmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAADVN0YWtlZF9BbW91bnQEAAAADm5ld3N0YWtlZHZhbHVlCQAAZQAAAAIFAAAAEGNoZWNrc3Rha2VkdmFsdWUFAAAAEWNoZWNrZGVwb3NpdHZhbHVlBAAAAA9mZXRjaFJld2FyZERhdGEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAE1RvdGFsX1VTRFRfQ2xhaW1lZDoEAAAAEnRvdGFscmV3YXJkY2xhaW1lZAkAAGQAAAACBQAAAA9mZXRjaFJld2FyZERhdGEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkDCQAAZgAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAVVG90YWxfTG9ja19CbG9ja3NfT2ZfBQAAAApjdXJyZW50S2V5BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFWW91ciAJAAGkAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABJEZXBvc2l0X0Ftb3VudF9PZl8FAAAACmN1cnJlbnRLZXkCAAAAYiBBNEEgYXJlIFVuZGVyIExvY2suIENvbnNpZGVyIGxhc3QgOCBkaWdpdHMgYXMgdmFsdWUgYWZ0ZXIgRGVjaW1hbHMuIFRva2VuIHdpbGwgYmUgVW5sb2NrZWQgYWZ0ZXIgCQABpAAAAAEJAABlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAMJAAAAAAAAAgUAAAARY2hlY2tkZXBvc2l0dmFsdWUAAAAAAAAAAAAJAAACAAAAAQIAAAAmWW91IEhhdmUgQWxyZWFkeSBXaXRoZHJhdyB5b3VyIEFtb3VudC4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQUAAAAKQTRBQXNzZXRJRAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkFAAAAC1VTRFRBc3NldElECQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAIVGllcl9PZl8FAAAACmN1cnJlbnRLZXkCAAAABE5PTkUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAASRGVwb3NpdF9oZWlnaHRfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAA1TdGFrZWRfQW1vdW50BQAAAA5uZXdzdGFrZWR2YWx1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABJEZXBvc2l0X0Ftb3VudF9PZl8FAAAACmN1cnJlbnRLZXkAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAVVG90YWxfTG9ja19CbG9ja3NfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTG9ja19TdGF0dXNfT2ZfBQAAAApjdXJyZW50S2V5AgAAAAZVTkxPQ0sJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1RvdGFsX1VTRFRfQ2xhaW1lZDoFAAAAEnRvdGFscmV3YXJkY2xhaW1lZAUAAAADbmlsAAAAAWkBAAAAC0RlcG9zaXRVU0RUAAAAAAQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAAPE5vIHBheW1lbnQgYXR0YWNoZWQsIFBsZWFzZSBBdHRhY2ggVVNEVCBUb2tlbiBpbiBwYXltZW50WzFdLgQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1VU0RUZGVwb3NpdG9yCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzAgAAAA9GdW5kaW5nX0FkZHJlc3MEAAAAD2ZldGNob2xkVVNEVGJhbAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAMVVNEVF9CYWxhbmNlBAAAAApvbGRVU0RUYmFsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAADFVTRFRfQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAApuZXdVU0RUYmFsCQAAZAAAAAIFAAAACm9sZFVTRFRiYWwIBQAAAANwbXQAAAAGYW1vdW50AwkBAAAAAiE9AAAAAgUAAAANVVNEVGRlcG9zaXRvcgUAAAANY2FsbGVyYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAiSSBrbm93IFlvdSBhcmUgbm90IEFuIEFkbWluLiBPbmx5IAUAAAANVVNEVGRlcG9zaXRvcgIAAAAeIGhhcyByaWdodHMgdG8gYWRkIFVTRFQgRnVuZHMuAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAtVU0RUQXNzZXRJRAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAZS2luZGx5IERlcG9zaXQgT25seSBVU0RUIAkAAlgAAAABBQAAAAtVU0RUQXNzZXRJRAIAAAAJIEFzc2V0SUQuAwkAAGYAAAACAAAAAAAAD0JACAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAACpBdHRhY2ggbWluaW11bSAxIFVTRFQgYXRsZWFzdCBGb3IgUGF5bWVudC4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADFVTRFRfQmFsYW5jZQUAAAAKbmV3VVNEVGJhbAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXla0puY", "height": 1725770, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CckP8cH8gouUf5rXHetp8ZUBZkhEUoWmBhpAbWRaeqfy Next: 7ffpLbSzzT7JG1YhgWPHwF9XsrACQ67MnYQp6ghyTUq2 Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = base58' | |
4 | + | let a = base58'J9VzWPfRSQyCbEv5oWpxLSihigbpbJsGBHJZV9Ct8ook' | |
5 | 5 | ||
6 | - | let b = base58' | |
6 | + | let b = base58'Zn3cLHW7aAVPm5aACcTjvg7e7iEy2cKDtbowok5qa9H' | |
7 | 7 | ||
8 | 8 | @Callable(c) | |
9 | 9 | func IssueA4A () = { | |
10 | 10 | let d = value(c.payments[0]) | |
11 | 11 | let e = toBase58String(c.caller.bytes) | |
12 | 12 | let f = getIntegerValue(this, "A4A/TN") | |
13 | - | let g = fraction(100000, d.amount, f) | |
14 | - | let h = getIntegerValue(this, "Total_Issued_A4A:") | |
15 | - | let i = (h + g) | |
16 | - | let j = getIntegerValue(this, "Total_A4A_Reserve_In_TN:") | |
17 | - | let k = (j + d.amount) | |
18 | - | let l = getIntegerValue(this, "A4A_Backup_Value_In_TN:") | |
19 | - | let m = fraction(100000, k, i) | |
20 | - | let n = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
13 | + | let g = getIntegerValue(this, "A4AHardCap") | |
14 | + | let h = fraction(100000, d.amount, f) | |
15 | + | let i = getIntegerValue(this, "Total_Issued_A4A:") | |
16 | + | let j = (i + h) | |
17 | + | let k = (g - j) | |
18 | + | let l = getIntegerValue(this, "Total_A4A_Reserve_In_TN:") | |
19 | + | let m = (l + d.amount) | |
20 | + | let n = getIntegerValue(this, "A4A_Backup_Value_In_TN:") | |
21 | + | let o = fraction(100000, m, j) | |
22 | + | let p = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
21 | 23 | if (isDefined(d.assetId)) | |
22 | 24 | then throw("Incorrect asset attached, please attach TN.") | |
23 | 25 | else if ((5000000 > d.amount)) | |
24 | 26 | then throw("Please Attach minimum 0.05 TN To Issue A4A Asset.") | |
25 | - | else [IntegerEntry("Total_Issued_A4A:", i), IntegerEntry("Total_A4A_Reserve_In_TN:", k), IntegerEntry("A4A_Backup_Value_In_TN:", m), StringEntry("message", "<h1>A4A Issued Successfully!</h1><br>"), Reissue(a, g, true), ScriptTransfer(c.caller, ((g * 99) / 100), a), ScriptTransfer(addressFromPublicKey(n), ((g * 1) / 100), a)] | |
27 | + | else if ((g >= j)) | |
28 | + | then throw(((("A4A Minting has Reached the Hard Cap of " + toString(g)) + "Sorry You can Mint Further only ") + toString(k))) | |
29 | + | else [IntegerEntry("Total_Issued_A4A:", j), IntegerEntry("Balance_Minting_A4A:", k), IntegerEntry("Total_A4A_Reserve_In_TN:", m), IntegerEntry("A4A_Backup_Value_In_TN:", o), StringEntry("message", "<h1>A4A Issued Successfully!</h1><br>"), Reissue(a, h, true), ScriptTransfer(c.caller, ((h * 99) / 100), a), ScriptTransfer(addressFromPublicKey(p), ((h * 1) / 100), a)] | |
26 | 30 | } | |
27 | 31 | ||
28 | 32 | ||
31 | 35 | func Liquidate () = { | |
32 | 36 | let e = toBase58String(c.callerPublicKey) | |
33 | 37 | let d = value(c.payments[0]) | |
34 | - | let | |
35 | - | let | |
36 | - | let | |
37 | - | let | |
38 | - | let | |
39 | - | let | |
40 | - | let | |
41 | - | let | |
42 | - | let | |
38 | + | let i = getIntegerValue(this, "Total_Issued_A4A:") | |
39 | + | let q = getIntegerValue(this, "Total_Burned_A4A:") | |
40 | + | let j = (i - d.amount) | |
41 | + | let r = (q + d.amount) | |
42 | + | let l = getIntegerValue(this, "Total_A4A_Reserve_In_TN:") | |
43 | + | let n = getIntegerValue(this, "A4A_Backup_Value_In_TN:") | |
44 | + | let s = fraction(n, d.amount, 100000) | |
45 | + | let m = (l - s) | |
46 | + | let o = fraction(100000, m, j) | |
43 | 47 | if ((d.assetId != a)) | |
44 | 48 | then throw("Kindly Deposit Only 8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g (A4A).") | |
45 | 49 | else if ((100000 > d.amount)) | |
46 | 50 | then throw("Attach Amount must be greater than 0.001 A4A.") | |
47 | - | else [Burn(a, d.amount), IntegerEntry("Total_Issued_A4A:", | |
51 | + | else [Burn(a, d.amount), IntegerEntry("Total_Issued_A4A:", j), IntegerEntry("Total_Burned_A4A:", r), IntegerEntry("Total_A4A_Reserve_In_TN:", m), IntegerEntry("A4A_Backup_Value_In_TN:", o), StringEntry("message", "<h1>A4A Liquidated Successfully!</h1><br>"), ScriptTransfer(c.caller, s, unit)] | |
48 | 52 | } | |
49 | 53 | ||
50 | 54 | ||
51 | 55 | ||
52 | 56 | @Callable(c) | |
53 | - | func Deposit ( | |
57 | + | func Deposit (t) = { | |
54 | 58 | let d = if ((size(c.payments) == 1)) | |
55 | 59 | then c.payments[0] | |
56 | 60 | else throw("No payment attached, Please Attach A4A Token as per TIER in payment[1].") | |
57 | 61 | let e = toBase58String(c.caller.bytes) | |
58 | - | let | |
59 | - | let | |
60 | - | let | |
61 | - | let | |
62 | - | let | |
63 | - | let | |
64 | - | let | |
65 | - | let | |
66 | - | let | |
67 | - | let | |
68 | - | let | |
69 | - | let | |
70 | - | let | |
71 | - | let | |
72 | - | let | |
73 | - | if ($isInstanceOf( | |
62 | + | let u = 90 | |
63 | + | let v = "LOCKED" | |
64 | + | let w = 99999999999 | |
65 | + | let x = 599999999999 | |
66 | + | let y = 1199999999999 | |
67 | + | let z = 1200000000000 | |
68 | + | let A = 1440 | |
69 | + | let B = (A * t) | |
70 | + | let C = (height + B) | |
71 | + | let D = 36000 | |
72 | + | let E = fraction(fraction((D * 2), d.amount, pow(10, 0, 8, 0, 0, UP)), B, pow(10, 0, 6, 0, 0, UP)) | |
73 | + | let F = fraction(fraction((D * 4), d.amount, pow(10, 0, 8, 0, 0, UP)), B, pow(10, 0, 6, 0, 0, UP)) | |
74 | + | let G = fraction(fraction((D * 8), d.amount, pow(10, 0, 8, 0, 0, UP)), B, pow(10, 0, 6, 0, 0, UP)) | |
75 | + | let H = { | |
76 | + | let I = getInteger(this, "Staked_Amount") | |
77 | + | if ($isInstanceOf(I, "Int")) | |
74 | 78 | then { | |
75 | - | let | |
76 | - | | |
79 | + | let J = I | |
80 | + | J | |
77 | 81 | } | |
78 | 82 | else 0 | |
79 | 83 | } | |
80 | - | let | |
81 | - | let | |
82 | - | let | |
83 | - | if ($isInstanceOf( | |
84 | + | let K = (H + d.amount) | |
85 | + | let L = { | |
86 | + | let I = getInteger(this, ("Deposit_Amount_Of_" + e)) | |
87 | + | if ($isInstanceOf(I, "Int")) | |
84 | 88 | then { | |
85 | - | let | |
86 | - | | |
89 | + | let J = I | |
90 | + | J | |
87 | 91 | } | |
88 | 92 | else 0 | |
89 | 93 | } | |
90 | - | let | |
94 | + | let M = (L + d.amount) | |
91 | 95 | if ((d.assetId != a)) | |
92 | 96 | then throw((("Incorrect asset attached, please attach " + toBase58String(a)) + " only.")) | |
93 | - | else if ((6 >= | |
97 | + | else if ((6 >= t)) | |
94 | 98 | then throw("Choose Locking days in between 7 to 90.") | |
95 | - | else if (( | |
99 | + | else if ((t > u)) | |
96 | 100 | then throw("You Entered days greater than 90 please Enter no. of days in between 7 to 90.") | |
97 | 101 | else if ((33300000000 > d.amount)) | |
98 | 102 | then throw("Please Attach minimum 333 A4A To Achieve BRONZE TIER.") | |
99 | - | else if (( | |
100 | - | then [StringEntry(("Tier_Of_" + e), "BRONZE"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", | |
101 | - | else if (( | |
102 | - | then [StringEntry(("Tier_Of_" + e), "SILVER"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", | |
103 | - | else if (( | |
104 | - | then [StringEntry(("Tier_Of_" + e), "GOLD"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", | |
105 | - | else if (( | |
106 | - | then [StringEntry(("Tier_Of_" + e), "DIAMOND"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", | |
103 | + | else if ((w >= d.amount)) | |
104 | + | then [StringEntry(("Tier_Of_" + e), "BRONZE"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", K), IntegerEntry(("Deposit_Amount_Of_" + e), M), IntegerEntry(("Total_Lock_Blocks_Of_" + e), C), StringEntry(("Lock_Status_Of_" + e), v), IntegerEntry(("Rewards_Of_" + e), fraction(fraction(D, d.amount, pow(10, 0, 8, 0, 0, UP)), B, pow(10, 0, 6, 0, 0, UP)))] | |
105 | + | else if ((x >= d.amount)) | |
106 | + | then [StringEntry(("Tier_Of_" + e), "SILVER"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", K), IntegerEntry(("Deposit_Amount_Of_" + e), M), IntegerEntry(("Total_Lock_Blocks_Of_" + e), C), StringEntry(("Lock_Status_Of_" + e), v), IntegerEntry(("Rewards_Of_" + e), E)] | |
107 | + | else if ((y >= d.amount)) | |
108 | + | then [StringEntry(("Tier_Of_" + e), "GOLD"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", K), IntegerEntry(("Deposit_Amount_Of_" + e), M), IntegerEntry(("Total_Lock_Blocks_Of_" + e), C), StringEntry(("Lock_Status_Of_" + e), v), IntegerEntry(("Rewards_Of_" + e), F)] | |
109 | + | else if ((z == d.amount)) | |
110 | + | then [StringEntry(("Tier_Of_" + e), "DIAMOND"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", K), IntegerEntry(("Deposit_Amount_Of_" + e), M), IntegerEntry(("Total_Lock_Blocks_Of_" + e), C), StringEntry(("Lock_Status_Of_" + e), v), IntegerEntry(("Rewards_Of_" + e), G)] | |
107 | 111 | else throw("Please Choose a Range Between 333-12000.") | |
108 | 112 | } | |
109 | 113 | ||
112 | 116 | @Callable(c) | |
113 | 117 | func Withdraw () = { | |
114 | 118 | let e = toBase58String(c.caller.bytes) | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | let | |
119 | - | let | |
119 | + | let N = getIntegerValue(this, ("Deposit_Amount_Of_" + e)) | |
120 | + | let O = getIntegerValue(this, "Staked_Amount") | |
121 | + | let P = (O - N) | |
122 | + | let Q = getIntegerValue(this, "Total_USDT_Claimed:") | |
123 | + | let R = (Q + getIntegerValue(this, ("Rewards_Of_" + e))) | |
120 | 124 | if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + e)) > height)) | |
121 | 125 | then throw(((("Your " + toString(getIntegerValue(this, ("Deposit_Amount_Of_" + e)))) + " A4A are Under Lock. Consider last 8 digits as value after Decimals. Token will be Unlocked after ") + toString((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + e)) - height)))) | |
122 | - | else if (( | |
126 | + | else if ((N == 0)) | |
123 | 127 | then throw("You Have Already Withdraw your Amount.") | |
124 | - | else [ScriptTransfer(c.caller, getIntegerValue(this, ("Deposit_Amount_Of_" + e)), a), ScriptTransfer(c.caller, getIntegerValue(this, ("Rewards_Of_" + e)), b), StringEntry(("Tier_Of_" + e), "NONE"), IntegerEntry(("Deposit_height_Of_" + e), 0), IntegerEntry("Staked_Amount", | |
128 | + | else [ScriptTransfer(c.caller, getIntegerValue(this, ("Deposit_Amount_Of_" + e)), a), ScriptTransfer(c.caller, getIntegerValue(this, ("Rewards_Of_" + e)), b), StringEntry(("Tier_Of_" + e), "NONE"), IntegerEntry(("Deposit_height_Of_" + e), 0), IntegerEntry("Staked_Amount", P), IntegerEntry(("Deposit_Amount_Of_" + e), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + e), 0), StringEntry(("Lock_Status_Of_" + e), "UNLOCK"), IntegerEntry(("Rewards_Of_" + e), 0), IntegerEntry("Total_USDT_Claimed:", R)] | |
125 | 129 | } | |
126 | 130 | ||
127 | 131 | ||
131 | 135 | let d = if ((size(c.payments) == 1)) | |
132 | 136 | then c.payments[0] | |
133 | 137 | else throw("No payment attached, Please Attach USDT Token in payment[1].") | |
134 | - | let | |
135 | - | let | |
136 | - | let | |
137 | - | let | |
138 | - | let | |
139 | - | if ($isInstanceOf( | |
138 | + | let S = toBase58String(c.caller.bytes) | |
139 | + | let T = getStringValue(this, "Funding_Address") | |
140 | + | let U = getIntegerValue(this, "USDT_Balance") | |
141 | + | let V = { | |
142 | + | let I = getInteger(this, "USDT_Balance") | |
143 | + | if ($isInstanceOf(I, "Int")) | |
140 | 144 | then { | |
141 | - | let | |
142 | - | | |
145 | + | let J = I | |
146 | + | J | |
143 | 147 | } | |
144 | 148 | else 0 | |
145 | 149 | } | |
146 | - | let | |
147 | - | if (( | |
148 | - | then throw((("I know You are not An Admin. Only " + | |
150 | + | let W = (V + d.amount) | |
151 | + | if ((T != S)) | |
152 | + | then throw((("I know You are not An Admin. Only " + T) + " has rights to add USDT Funds.")) | |
149 | 153 | else if ((d.assetId != b)) | |
150 | 154 | then throw((("Kindly Deposit Only USDT " + toBase58String(b)) + " AssetID.")) | |
151 | 155 | else if ((1000000 > d.amount)) | |
152 | 156 | then throw("Attach minimum 1 USDT atleast For Payment.") | |
153 | - | else [IntegerEntry("USDT_Balance", | |
157 | + | else [IntegerEntry("USDT_Balance", W)] | |
154 | 158 | } | |
155 | 159 | ||
156 | 160 | ||
157 | - | @Verifier( | |
158 | - | func | |
161 | + | @Verifier(X) | |
162 | + | func Y () = sigVerify(X.bodyBytes, X.proofs[0], X.senderPublicKey) | |
159 | 163 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = base58' | |
4 | + | let a = base58'J9VzWPfRSQyCbEv5oWpxLSihigbpbJsGBHJZV9Ct8ook' | |
5 | 5 | ||
6 | - | let b = base58' | |
6 | + | let b = base58'Zn3cLHW7aAVPm5aACcTjvg7e7iEy2cKDtbowok5qa9H' | |
7 | 7 | ||
8 | 8 | @Callable(c) | |
9 | 9 | func IssueA4A () = { | |
10 | 10 | let d = value(c.payments[0]) | |
11 | 11 | let e = toBase58String(c.caller.bytes) | |
12 | 12 | let f = getIntegerValue(this, "A4A/TN") | |
13 | - | let g = fraction(100000, d.amount, f) | |
14 | - | let h = getIntegerValue(this, "Total_Issued_A4A:") | |
15 | - | let i = (h + g) | |
16 | - | let j = getIntegerValue(this, "Total_A4A_Reserve_In_TN:") | |
17 | - | let k = (j + d.amount) | |
18 | - | let l = getIntegerValue(this, "A4A_Backup_Value_In_TN:") | |
19 | - | let m = fraction(100000, k, i) | |
20 | - | let n = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
13 | + | let g = getIntegerValue(this, "A4AHardCap") | |
14 | + | let h = fraction(100000, d.amount, f) | |
15 | + | let i = getIntegerValue(this, "Total_Issued_A4A:") | |
16 | + | let j = (i + h) | |
17 | + | let k = (g - j) | |
18 | + | let l = getIntegerValue(this, "Total_A4A_Reserve_In_TN:") | |
19 | + | let m = (l + d.amount) | |
20 | + | let n = getIntegerValue(this, "A4A_Backup_Value_In_TN:") | |
21 | + | let o = fraction(100000, m, j) | |
22 | + | let p = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
21 | 23 | if (isDefined(d.assetId)) | |
22 | 24 | then throw("Incorrect asset attached, please attach TN.") | |
23 | 25 | else if ((5000000 > d.amount)) | |
24 | 26 | then throw("Please Attach minimum 0.05 TN To Issue A4A Asset.") | |
25 | - | else [IntegerEntry("Total_Issued_A4A:", i), IntegerEntry("Total_A4A_Reserve_In_TN:", k), IntegerEntry("A4A_Backup_Value_In_TN:", m), StringEntry("message", "<h1>A4A Issued Successfully!</h1><br>"), Reissue(a, g, true), ScriptTransfer(c.caller, ((g * 99) / 100), a), ScriptTransfer(addressFromPublicKey(n), ((g * 1) / 100), a)] | |
27 | + | else if ((g >= j)) | |
28 | + | then throw(((("A4A Minting has Reached the Hard Cap of " + toString(g)) + "Sorry You can Mint Further only ") + toString(k))) | |
29 | + | else [IntegerEntry("Total_Issued_A4A:", j), IntegerEntry("Balance_Minting_A4A:", k), IntegerEntry("Total_A4A_Reserve_In_TN:", m), IntegerEntry("A4A_Backup_Value_In_TN:", o), StringEntry("message", "<h1>A4A Issued Successfully!</h1><br>"), Reissue(a, h, true), ScriptTransfer(c.caller, ((h * 99) / 100), a), ScriptTransfer(addressFromPublicKey(p), ((h * 1) / 100), a)] | |
26 | 30 | } | |
27 | 31 | ||
28 | 32 | ||
29 | 33 | ||
30 | 34 | @Callable(c) | |
31 | 35 | func Liquidate () = { | |
32 | 36 | let e = toBase58String(c.callerPublicKey) | |
33 | 37 | let d = value(c.payments[0]) | |
34 | - | let | |
35 | - | let | |
36 | - | let | |
37 | - | let | |
38 | - | let | |
39 | - | let | |
40 | - | let | |
41 | - | let | |
42 | - | let | |
38 | + | let i = getIntegerValue(this, "Total_Issued_A4A:") | |
39 | + | let q = getIntegerValue(this, "Total_Burned_A4A:") | |
40 | + | let j = (i - d.amount) | |
41 | + | let r = (q + d.amount) | |
42 | + | let l = getIntegerValue(this, "Total_A4A_Reserve_In_TN:") | |
43 | + | let n = getIntegerValue(this, "A4A_Backup_Value_In_TN:") | |
44 | + | let s = fraction(n, d.amount, 100000) | |
45 | + | let m = (l - s) | |
46 | + | let o = fraction(100000, m, j) | |
43 | 47 | if ((d.assetId != a)) | |
44 | 48 | then throw("Kindly Deposit Only 8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g (A4A).") | |
45 | 49 | else if ((100000 > d.amount)) | |
46 | 50 | then throw("Attach Amount must be greater than 0.001 A4A.") | |
47 | - | else [Burn(a, d.amount), IntegerEntry("Total_Issued_A4A:", | |
51 | + | else [Burn(a, d.amount), IntegerEntry("Total_Issued_A4A:", j), IntegerEntry("Total_Burned_A4A:", r), IntegerEntry("Total_A4A_Reserve_In_TN:", m), IntegerEntry("A4A_Backup_Value_In_TN:", o), StringEntry("message", "<h1>A4A Liquidated Successfully!</h1><br>"), ScriptTransfer(c.caller, s, unit)] | |
48 | 52 | } | |
49 | 53 | ||
50 | 54 | ||
51 | 55 | ||
52 | 56 | @Callable(c) | |
53 | - | func Deposit ( | |
57 | + | func Deposit (t) = { | |
54 | 58 | let d = if ((size(c.payments) == 1)) | |
55 | 59 | then c.payments[0] | |
56 | 60 | else throw("No payment attached, Please Attach A4A Token as per TIER in payment[1].") | |
57 | 61 | let e = toBase58String(c.caller.bytes) | |
58 | - | let | |
59 | - | let | |
60 | - | let | |
61 | - | let | |
62 | - | let | |
63 | - | let | |
64 | - | let | |
65 | - | let | |
66 | - | let | |
67 | - | let | |
68 | - | let | |
69 | - | let | |
70 | - | let | |
71 | - | let | |
72 | - | let | |
73 | - | if ($isInstanceOf( | |
62 | + | let u = 90 | |
63 | + | let v = "LOCKED" | |
64 | + | let w = 99999999999 | |
65 | + | let x = 599999999999 | |
66 | + | let y = 1199999999999 | |
67 | + | let z = 1200000000000 | |
68 | + | let A = 1440 | |
69 | + | let B = (A * t) | |
70 | + | let C = (height + B) | |
71 | + | let D = 36000 | |
72 | + | let E = fraction(fraction((D * 2), d.amount, pow(10, 0, 8, 0, 0, UP)), B, pow(10, 0, 6, 0, 0, UP)) | |
73 | + | let F = fraction(fraction((D * 4), d.amount, pow(10, 0, 8, 0, 0, UP)), B, pow(10, 0, 6, 0, 0, UP)) | |
74 | + | let G = fraction(fraction((D * 8), d.amount, pow(10, 0, 8, 0, 0, UP)), B, pow(10, 0, 6, 0, 0, UP)) | |
75 | + | let H = { | |
76 | + | let I = getInteger(this, "Staked_Amount") | |
77 | + | if ($isInstanceOf(I, "Int")) | |
74 | 78 | then { | |
75 | - | let | |
76 | - | | |
79 | + | let J = I | |
80 | + | J | |
77 | 81 | } | |
78 | 82 | else 0 | |
79 | 83 | } | |
80 | - | let | |
81 | - | let | |
82 | - | let | |
83 | - | if ($isInstanceOf( | |
84 | + | let K = (H + d.amount) | |
85 | + | let L = { | |
86 | + | let I = getInteger(this, ("Deposit_Amount_Of_" + e)) | |
87 | + | if ($isInstanceOf(I, "Int")) | |
84 | 88 | then { | |
85 | - | let | |
86 | - | | |
89 | + | let J = I | |
90 | + | J | |
87 | 91 | } | |
88 | 92 | else 0 | |
89 | 93 | } | |
90 | - | let | |
94 | + | let M = (L + d.amount) | |
91 | 95 | if ((d.assetId != a)) | |
92 | 96 | then throw((("Incorrect asset attached, please attach " + toBase58String(a)) + " only.")) | |
93 | - | else if ((6 >= | |
97 | + | else if ((6 >= t)) | |
94 | 98 | then throw("Choose Locking days in between 7 to 90.") | |
95 | - | else if (( | |
99 | + | else if ((t > u)) | |
96 | 100 | then throw("You Entered days greater than 90 please Enter no. of days in between 7 to 90.") | |
97 | 101 | else if ((33300000000 > d.amount)) | |
98 | 102 | then throw("Please Attach minimum 333 A4A To Achieve BRONZE TIER.") | |
99 | - | else if (( | |
100 | - | then [StringEntry(("Tier_Of_" + e), "BRONZE"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", | |
101 | - | else if (( | |
102 | - | then [StringEntry(("Tier_Of_" + e), "SILVER"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", | |
103 | - | else if (( | |
104 | - | then [StringEntry(("Tier_Of_" + e), "GOLD"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", | |
105 | - | else if (( | |
106 | - | then [StringEntry(("Tier_Of_" + e), "DIAMOND"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", | |
103 | + | else if ((w >= d.amount)) | |
104 | + | then [StringEntry(("Tier_Of_" + e), "BRONZE"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", K), IntegerEntry(("Deposit_Amount_Of_" + e), M), IntegerEntry(("Total_Lock_Blocks_Of_" + e), C), StringEntry(("Lock_Status_Of_" + e), v), IntegerEntry(("Rewards_Of_" + e), fraction(fraction(D, d.amount, pow(10, 0, 8, 0, 0, UP)), B, pow(10, 0, 6, 0, 0, UP)))] | |
105 | + | else if ((x >= d.amount)) | |
106 | + | then [StringEntry(("Tier_Of_" + e), "SILVER"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", K), IntegerEntry(("Deposit_Amount_Of_" + e), M), IntegerEntry(("Total_Lock_Blocks_Of_" + e), C), StringEntry(("Lock_Status_Of_" + e), v), IntegerEntry(("Rewards_Of_" + e), E)] | |
107 | + | else if ((y >= d.amount)) | |
108 | + | then [StringEntry(("Tier_Of_" + e), "GOLD"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", K), IntegerEntry(("Deposit_Amount_Of_" + e), M), IntegerEntry(("Total_Lock_Blocks_Of_" + e), C), StringEntry(("Lock_Status_Of_" + e), v), IntegerEntry(("Rewards_Of_" + e), F)] | |
109 | + | else if ((z == d.amount)) | |
110 | + | then [StringEntry(("Tier_Of_" + e), "DIAMOND"), IntegerEntry(("Deposit_height_Of_" + e), height), IntegerEntry("Staked_Amount", K), IntegerEntry(("Deposit_Amount_Of_" + e), M), IntegerEntry(("Total_Lock_Blocks_Of_" + e), C), StringEntry(("Lock_Status_Of_" + e), v), IntegerEntry(("Rewards_Of_" + e), G)] | |
107 | 111 | else throw("Please Choose a Range Between 333-12000.") | |
108 | 112 | } | |
109 | 113 | ||
110 | 114 | ||
111 | 115 | ||
112 | 116 | @Callable(c) | |
113 | 117 | func Withdraw () = { | |
114 | 118 | let e = toBase58String(c.caller.bytes) | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | let | |
119 | - | let | |
119 | + | let N = getIntegerValue(this, ("Deposit_Amount_Of_" + e)) | |
120 | + | let O = getIntegerValue(this, "Staked_Amount") | |
121 | + | let P = (O - N) | |
122 | + | let Q = getIntegerValue(this, "Total_USDT_Claimed:") | |
123 | + | let R = (Q + getIntegerValue(this, ("Rewards_Of_" + e))) | |
120 | 124 | if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + e)) > height)) | |
121 | 125 | then throw(((("Your " + toString(getIntegerValue(this, ("Deposit_Amount_Of_" + e)))) + " A4A are Under Lock. Consider last 8 digits as value after Decimals. Token will be Unlocked after ") + toString((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + e)) - height)))) | |
122 | - | else if (( | |
126 | + | else if ((N == 0)) | |
123 | 127 | then throw("You Have Already Withdraw your Amount.") | |
124 | - | else [ScriptTransfer(c.caller, getIntegerValue(this, ("Deposit_Amount_Of_" + e)), a), ScriptTransfer(c.caller, getIntegerValue(this, ("Rewards_Of_" + e)), b), StringEntry(("Tier_Of_" + e), "NONE"), IntegerEntry(("Deposit_height_Of_" + e), 0), IntegerEntry("Staked_Amount", | |
128 | + | else [ScriptTransfer(c.caller, getIntegerValue(this, ("Deposit_Amount_Of_" + e)), a), ScriptTransfer(c.caller, getIntegerValue(this, ("Rewards_Of_" + e)), b), StringEntry(("Tier_Of_" + e), "NONE"), IntegerEntry(("Deposit_height_Of_" + e), 0), IntegerEntry("Staked_Amount", P), IntegerEntry(("Deposit_Amount_Of_" + e), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + e), 0), StringEntry(("Lock_Status_Of_" + e), "UNLOCK"), IntegerEntry(("Rewards_Of_" + e), 0), IntegerEntry("Total_USDT_Claimed:", R)] | |
125 | 129 | } | |
126 | 130 | ||
127 | 131 | ||
128 | 132 | ||
129 | 133 | @Callable(c) | |
130 | 134 | func DepositUSDT () = { | |
131 | 135 | let d = if ((size(c.payments) == 1)) | |
132 | 136 | then c.payments[0] | |
133 | 137 | else throw("No payment attached, Please Attach USDT Token in payment[1].") | |
134 | - | let | |
135 | - | let | |
136 | - | let | |
137 | - | let | |
138 | - | let | |
139 | - | if ($isInstanceOf( | |
138 | + | let S = toBase58String(c.caller.bytes) | |
139 | + | let T = getStringValue(this, "Funding_Address") | |
140 | + | let U = getIntegerValue(this, "USDT_Balance") | |
141 | + | let V = { | |
142 | + | let I = getInteger(this, "USDT_Balance") | |
143 | + | if ($isInstanceOf(I, "Int")) | |
140 | 144 | then { | |
141 | - | let | |
142 | - | | |
145 | + | let J = I | |
146 | + | J | |
143 | 147 | } | |
144 | 148 | else 0 | |
145 | 149 | } | |
146 | - | let | |
147 | - | if (( | |
148 | - | then throw((("I know You are not An Admin. Only " + | |
150 | + | let W = (V + d.amount) | |
151 | + | if ((T != S)) | |
152 | + | then throw((("I know You are not An Admin. Only " + T) + " has rights to add USDT Funds.")) | |
149 | 153 | else if ((d.assetId != b)) | |
150 | 154 | then throw((("Kindly Deposit Only USDT " + toBase58String(b)) + " AssetID.")) | |
151 | 155 | else if ((1000000 > d.amount)) | |
152 | 156 | then throw("Attach minimum 1 USDT atleast For Payment.") | |
153 | - | else [IntegerEntry("USDT_Balance", | |
157 | + | else [IntegerEntry("USDT_Balance", W)] | |
154 | 158 | } | |
155 | 159 | ||
156 | 160 | ||
157 | - | @Verifier( | |
158 | - | func | |
161 | + | @Verifier(X) | |
162 | + | func Y () = sigVerify(X.bodyBytes, X.proofs[0], X.senderPublicKey) | |
159 | 163 |
github/deemru/w8io/169f3d6 83.43 ms ◑