tx · 5w5qFFFfoJFqSdygkDXopoCQ4wHQEf9kDjvvt99mTBPn 3Mq6mSfCYaGQkEHMAhobtjJGvb7xj1aiSBp: -0.01400000 Waves 2024.03.16 11:49 [3020380] smart account 3Mq6mSfCYaGQkEHMAhobtjJGvb7xj1aiSBp > SELF 0.00000000 Waves
{ "type": 13, "id": "5w5qFFFfoJFqSdygkDXopoCQ4wHQEf9kDjvvt99mTBPn", "fee": 1400000, "feeAssetId": null, "timestamp": 1710578974605, "version": 2, "chainId": 84, "sender": "3Mq6mSfCYaGQkEHMAhobtjJGvb7xj1aiSBp", "senderPublicKey": "C5DMu2JvfbtJnPu4pyFYhyyeaYRS1RsnRnsgNFnkL55E", "proofs": [ "hPEhSgcyAHFdXTjNyRfugC15dMWDEFRxLUcTW6ALz1UdS6HMrXNkuEcjUVrQrgCEYwyWYVm1fXBDKY8gYthzxdV" ], "script": "base64:AAIFAAAAAAAAAA0IAhIAEgASAwoBARIAAAAACQAAAAAKQTRBQXNzZXRJRAEAAAAgcmq6+6Wxr2yowtuRELQMbFaAM1flDMDSVcM9IpA14LUAAAAAC1VTRENBc3NldElEAQAAACBERzHKId/28pwmyFb++GepfZ73s/AMiQVICZA1FOlN/wAAAAAMV0FWRVNBc3NldElEAQAAACDP/74B1d4jjFgihGpnkOPBwPYiuXsdK1Tqg2sFWwuhfgAAAAALQ09ERUFzc2V0SUQBAAAAIMO7WpkPv3V6MicEWfxW+TeI3Tjc6gp0OC8l37fTvNKgAAAAAApGZWVBZGRyZXNzAQAAACBSg9mgi9eQkjsz5eBARHIbc7Hg/F4fmB0sxZ6ySMfiIAAAAAAKZGV2QWRkcmVzcwEAAAAgcT857UGuwl6lKR6zURKH3pDKrZTlUMsXWQXYxcjWeBsAAAAADGFkbWluUHViS2V5MQEAAAAg/UGbBLHhsjFFb0b3YWn4seNHtEaYngIcscRj3mvW1T8AAAAADGFkbWluUHViS2V5MgEAAAAgcT857UGuwl6lKR6zURKH3pDKrZTlUMsXWQXYxcjWeBsAAAAADGFkbWluUHViS2V5MwEAAAAgITZNDF0tGOMq0kQgUjmXpENibSNsE0IHTIk2pLBy5F4AAAAEAAAAAWkBAAAACElzc3VlQTRBAAAAAAQAAAADcG10CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC1ByaWNlUGVyQTRBCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAAAZBNEEvVE4EAAAACkE0QUhhcmRDYXAJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAACkE0QUhhcmRDYXAEAAAADE5ld0E0QVRvVXNlcgkAAGsAAAADAAAAAAAAAYagCAUAAAADcG10AAAABmFtb3VudAUAAAALUHJpY2VQZXJBNEEEAAAAEVByZXZpb3VzSXNzdWVkQTRBCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABFUb3RhbF9Jc3N1ZWRfQTRBOgQAAAAOVG90YWxJc3N1ZWRBNEEJAABkAAAAAgUAAAARUHJldmlvdXNJc3N1ZWRBNEEFAAAADE5ld0E0QVRvVXNlcgQAAAAOUGVuZGluZ01pbnRpbmcJAABlAAAAAgUAAAAKQTRBSGFyZENhcAUAAAAOVG90YWxJc3N1ZWRBNEEEAAAAF1ByZXZpb3VzQTRBUmVzZXJ2ZVZhbHVlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABhUb3RhbF9BNEFfUmVzZXJ2ZV9Jbl9UTjoEAAAAD0E0QVJlc2VydmVWYWx1ZQkAAGQAAAACBQAAABdQcmV2aW91c0E0QVJlc2VydmVWYWx1ZQgFAAAAA3BtdAAAAAZhbW91bnQEAAAAFlByZXZpb3VzQTRBQmFja3VwUHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAF0E0QV9CYWNrdXBfVmFsdWVfSW5fVE46BAAAAA5BNEFCYWNrdXBQcmljZQkAAGsAAAADAAAAAAAAAYagBQAAAA9BNEFSZXNlcnZlVmFsdWUFAAAADlRvdGFsSXNzdWVkQTRBAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACtJbmNvcnJlY3QgYXNzZXQgYXR0YWNoZWQsIHBsZWFzZSBhdHRhY2ggVE4uAwkAAGYAAAACAAAAAAAATEtACAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAADFQbGVhc2UgQXR0YWNoIG1pbmltdW0gMC4wNSBUTiBUbyBJc3N1ZSBBNEEgQXNzZXQuAwkAAGYAAAACBQAAAA5Ub3RhbElzc3VlZEE0QQUAAAAKQTRBSGFyZENhcAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAC5BNEEgTWludGluZyBpcyBhYm91dCB0byByZWFjaCB0aGUgSGFyZCBDYXAgb2YgCQABpAAAAAEFAAAACkE0QUhhcmRDYXACAAAALy8xMF44IEE0QS4gUGxlYXNlIFJlZHVjZSB5b3VyIE1pbnRpbmcgT3JkZXIgYnkgCQABpAAAAAEFAAAADlBlbmRpbmdNaW50aW5nAgAAAAggb3IgcHV0IAkAAaQAAAABCQAAZQAAAAIFAAAACkE0QUhhcmRDYXAFAAAAEVByZXZpb3VzSXNzdWVkQTRBAgAAAAUvMTBeOAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAARVG90YWxfSXNzdWVkX0E0QToFAAAADlRvdGFsSXNzdWVkQTRBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABRCYWxhbmNlX01pbnRpbmdfQTRBOgUAAAAOUGVuZGluZ01pbnRpbmcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGFRvdGFsX0E0QV9SZXNlcnZlX0luX1ROOgUAAAAPQTRBUmVzZXJ2ZVZhbHVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABdBNEFfQmFja3VwX1ZhbHVlX0luX1ROOgUAAAAOQTRBQmFja3VwUHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAlPGgxPkE0QSBJc3N1ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgkABEwAAAACCQEAAAAHUmVpc3N1ZQAAAAMFAAAACkE0QUFzc2V0SUQFAAAADE5ld0E0QVRvVXNlcgYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQAAaQAAAAIJAABoAAAAAgUAAAAMTmV3QTRBVG9Vc2VyAAAAAAAAAAPeAAAAAAAAAAPoBQAAAApBNEFBc3NldElECQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAACkZlZUFkZHJlc3MJAABpAAAAAgkAAGgAAAACBQAAAAxOZXdBNEFUb1VzZXIAAAAAAAAAAAkAAAAAAAAAA+gFAAAACkE0QUFzc2V0SUQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAKZGV2QWRkcmVzcwkAAGkAAAACCQAAaAAAAAIFAAAADE5ld0E0QVRvVXNlcgAAAAAAAAAAAQAAAAAAAAAD6AUAAAAKQTRBQXNzZXRJRAUAAAADbmlsAAAAAWkBAAAACUxpcXVpZGF0ZQAAAAAEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAEVByZXZpb3VzSXNzdWVkQTRBCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABFUb3RhbF9Jc3N1ZWRfQTRBOgQAAAARUHJldmlvdXNCdXJuZWRBNEEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAEVRvdGFsX0J1cm5lZF9BNEE6BAAAAA5Ub3RhbElzc3VlZEE0QQkAAGUAAAACBQAAABFQcmV2aW91c0lzc3VlZEE0QQgFAAAAA3BtdAAAAAZhbW91bnQEAAAADlRvdGFsQnVybmVkQTRBCQAAZAAAAAIFAAAAEVByZXZpb3VzQnVybmVkQTRBCAUAAAADcG10AAAABmFtb3VudAQAAAAXUHJldmlvdXNBNEFSZXNlcnZlVmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAGFRvdGFsX0E0QV9SZXNlcnZlX0luX1ROOgQAAAAWUHJldmlvdXNBNEFCYWNrdXBQcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAXQTRBX0JhY2t1cF9WYWx1ZV9Jbl9UTjoEAAAAEmNhbGN1bGF0ZWJ1cm52YWx1ZQkAAGsAAAADBQAAABZQcmV2aW91c0E0QUJhY2t1cFByaWNlCAUAAAADcG10AAAABmFtb3VudAAAAAAAAAGGoAQAAAAPQTRBUmVzZXJ2ZVZhbHVlCQAAZQAAAAIFAAAAF1ByZXZpb3VzQTRBUmVzZXJ2ZVZhbHVlBQAAABJjYWxjdWxhdGVidXJudmFsdWUEAAAADkE0QUJhY2t1cFByaWNlCQAAawAAAAMAAAAAAAABhqAFAAAAD0E0QVJlc2VydmVWYWx1ZQUAAAAOVG90YWxJc3N1ZWRBNEEDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAACkE0QUFzc2V0SUQJAAACAAAAAQIAAABHS2luZGx5IERlcG9zaXQgT25seSA4aGRzVkN4UEJWRW1WVVp5eVg4U2Q5OFo5aFU3Rm55MjZXOTZzaktpVHc4ZyAoQTRBKS4DCQAAZgAAAAIAAAAAAAABhqAIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAECAAAALUF0dGFjaCBBbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMC4wMDEgQTRBLgkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAACkE0QUFzc2V0SUQIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABFUb3RhbF9Jc3N1ZWRfQTRBOgUAAAAOVG90YWxJc3N1ZWRBNEEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEVRvdGFsX0J1cm5lZF9BNEE6BQAAAA5Ub3RhbEJ1cm5lZEE0QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAYVG90YWxfQTRBX1Jlc2VydmVfSW5fVE46BQAAAA9BNEFSZXNlcnZlVmFsdWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAF0E0QV9CYWNrdXBfVmFsdWVfSW5fVE46BQAAAA5BNEFCYWNrdXBQcmljZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlAgAAACk8aDE+QTRBIExpcXVpZGF0ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABpAAAAAgkAAGgAAAACBQAAABJjYWxjdWxhdGVidXJudmFsdWUAAAAAAAAAA94AAAAAAAAAA+gFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAKRmVlQWRkcmVzcwkAAGkAAAACCQAAaAAAAAIFAAAAEmNhbGN1bGF0ZWJ1cm52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ZWdlckVudHJ5AAAAAgIAAAANU3Rha2VkX0Ftb3VudAUAAAASbmV3U3Rha2VkQTRBQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQUAAAAMbmV3QTRBQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFVRvdGFsX0xvY2tfQmxvY2tzX09mXwUAAAAKY3VycmVudEtleQUAAAAPdG90YWxsb2NrYmxvY2tzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTG9ja19TdGF0dXNfT2ZfBQAAAApjdXJyZW50S2V5BQAAAApsb2Nrc3RhdHVzBQAAAANuaWwDCQAAZwAAAAIFAAAABFVMU1QIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAIVGllcl9PZl8FAAAACmN1cnJlbnRLZXkCAAAABlNJTFZFUgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABJEZXBvc2l0X2hlaWdodF9PZl8FAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAANU3Rha2VkX0Ftb3VudAUAAAASbmV3U3Rha2VkQTRBQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQUAAAAMbmV3QTRBQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFVRvdGFsX0xvY2tfQmxvY2tzX09mXwUAAAAKY3VycmVudEtleQUAAAAPdG90YWxsb2NrYmxvY2tzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTG9ja19TdGF0dXNfT2ZfBQAAAApjdXJyZW50S2V5BQAAAApsb2Nrc3RhdHVzBQAAAANuaWwDCQAAZwAAAAIFAAAABFVMR1QIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAIVGllcl9PZl8FAAAACmN1cnJlbnRLZXkCAAAABEdPTEQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAASRGVwb3NpdF9oZWlnaHRfT2ZfBQAAAApjdXJyZW50S2V5BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADVN0YWtlZF9BbW91bnQFAAAAEm5ld1N0YWtlZEE0QUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABJEZXBvc2l0X0Ftb3VudF9PZl8FAAAACmN1cnJlbnRLZXkFAAAADG5ld0E0QUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkFAAAAD3RvdGFsbG9ja2Jsb2NrcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAAD0xvY2tfU3RhdHVzX09mXwUAAAAKY3VycmVudEtleQUAAAAKbG9ja3N0YXR1cwUAAAADbmlsAwkAAAAAAAACBQAAAARVTERUCAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAACFRpZXJfT2ZfBQAAAApjdXJyZW50S2V5AgAAAAdESUFNT05ECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfaGVpZ2h0X09mXwUAAAAKY3VycmVudEtleQUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAA1TdGFrZWRfQW1vdW50BQAAABJuZXdTdGFrZWRBNEFBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAASRGVwb3NpdF9BbW91bnRfT2ZfBQAAAApjdXJyZW50S2V5BQAAAAxuZXdBNEFBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAVVG90YWxfTG9ja19CbG9ja3NfT2ZfBQAAAApjdXJyZW50S2V5BQAAAA90b3RhbGxvY2tibG9ja3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAA9Mb2NrX1N0YXR1c19PZl8FAAAACmN1cnJlbnRLZXkFAAAACmxvY2tzdGF0dXMFAAAAA25pbAkAAAIAAAABAgAAACdQbGVhc2UgQ2hvb3NlIGEgUmFuZ2UgQmV0d2VlbiA3Ny0xMjAwMC4AAAABaQEAAAAIV2l0aGRyYXcAAAAABAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAEWNoZWNrZGVwb3NpdHZhbHVlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQQAAAAQY2hlY2tzdGFrZWR2YWx1ZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAANU3Rha2VkX0Ftb3VudAQAAAACZDYAAAAAAAAPQkAEAAAACnVzZXJfc2hhcmUJAABrAAAAAwUAAAARY2hlY2tkZXBvc2l0dmFsdWUFAAAAAmQ2BQAAABBjaGVja3N0YWtlZHZhbHVlBAAAAA5uZXdzdGFrZWR2YWx1ZQkAAGUAAAACBQAAABBjaGVja3N0YWtlZHZhbHVlBQAAABFjaGVja2RlcG9zaXR2YWx1ZQQAAAALY2hlY2s5MERnYXAJAABlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAASRGVwb3NpdF9oZWlnaHRfT2ZfBQAAAApjdXJyZW50S2V5BAAAABVQcmV2aW91c19VU0RDX0NsYWltZWQEAAAAByRt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", "height": 3020380, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5bhwxXKG1sgNRVT5UTh1NV8fWmWcbdSj1EzXG5qoXVT2 Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let | |
4 | + | let A4AAssetID = base58'8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g' | |
5 | 5 | ||
6 | - | let | |
6 | + | let USDCAssetID = base58'5bXgvADuVoFdhtF5uKZAEiVdAo7ZCWw151L4yyf1PiES' | |
7 | 7 | ||
8 | - | let | |
8 | + | let WAVESAssetID = base58'EzwaF58ssALcUCZ9FbyeD1GTSteoZAQZEDTqBAXHfq8y' | |
9 | 9 | ||
10 | - | let devAddress = base58'GKmJ6BchUgQfwKp4mp5eX8Y9xLioYRm6e1gDfFgdAcCr' | |
10 | + | let CODEAssetID = base58'EB4CUQH4fHzzQt9YjcHtA6T7uosHNH9RnQKHgBdZHPCB' | |
11 | + | ||
12 | + | let FeeAddress = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
13 | + | ||
14 | + | let devAddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
15 | + | ||
16 | + | let adminPubKey1 = base58'J3cAptAPQxVqpEz6Rch57JeKpbns48s1a6HoeQG9aX4J' | |
17 | + | ||
18 | + | let adminPubKey2 = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
19 | + | ||
20 | + | let adminPubKey3 = base58'3EeUjFz9BEjsqDnCjw5UeuZsjBTuKBQmbCiAw53phxrR' | |
11 | 21 | ||
12 | 22 | @Callable(i) | |
13 | - | func IssueEATHToken () = { | |
14 | - | let asset = Issue("EATH", "EATH is a digital token backed by a 1:1 reserve of Waves tokens, meaning for every EATH token in circulation, there is one Waves token held in secure reserve. This reserve model aims to guarantee the stability and transparency of EATH's value.", 1, 8, true, unit, 0) | |
15 | - | let assetId = calculateAssetId(asset) | |
16 | - | let checkHardCap = valueOrElse(getIntegerValue(this, "EATHHardCap"), 0) | |
17 | - | if ((checkHardCap == 0)) | |
18 | - | then [asset, Burn(assetId, 1), StringEntry("EATH_ID", toBase58String(assetId)), IntegerEntry("EATH/WAVES", 100000), IntegerEntry("EATHHardCap", 100000000000000), IntegerEntry("Total_Issued_EATH:", 0), IntegerEntry("Total_EATH_Reserve_In_WAVES:", 0)] | |
19 | - | else throw("Token is Already Issued.") | |
23 | + | func IssueA4A () = { | |
24 | + | let pmt = value(i.payments[0]) | |
25 | + | let currentKey = toBase58String(i.caller.bytes) | |
26 | + | let PricePerA4A = getIntegerValue(this, "A4A/TN") | |
27 | + | let A4AHardCap = getIntegerValue(this, "A4AHardCap") | |
28 | + | let NewA4AToUser = fraction(100000, pmt.amount, PricePerA4A) | |
29 | + | let PreviousIssuedA4A = getIntegerValue(this, "Total_Issued_A4A:") | |
30 | + | let TotalIssuedA4A = (PreviousIssuedA4A + NewA4AToUser) | |
31 | + | let PendingMinting = (A4AHardCap - TotalIssuedA4A) | |
32 | + | let PreviousA4AReserveValue = getIntegerValue(this, "Total_A4A_Reserve_In_TN:") | |
33 | + | let A4AReserveValue = (PreviousA4AReserveValue + pmt.amount) | |
34 | + | let PreviousA4ABackupPrice = getIntegerValue(this, "A4A_Backup_Value_In_TN:") | |
35 | + | let A4ABackupPrice = fraction(100000, A4AReserveValue, TotalIssuedA4A) | |
36 | + | if (isDefined(pmt.assetId)) | |
37 | + | then throw("Incorrect asset attached, please attach TN.") | |
38 | + | else if ((5000000 > pmt.amount)) | |
39 | + | then throw("Please Attach minimum 0.05 TN To Issue A4A Asset.") | |
40 | + | else if ((TotalIssuedA4A > A4AHardCap)) | |
41 | + | then throw((((((("A4A Minting is about to reach the Hard Cap of " + toString(A4AHardCap)) + "/10^8 A4A. Please Reduce your Minting Order by ") + toString(PendingMinting)) + " or put ") + toString((A4AHardCap - PreviousIssuedA4A))) + "/10^8")) | |
42 | + | else [IntegerEntry("Total_Issued_A4A:", TotalIssuedA4A), IntegerEntry("Balance_Minting_A4A:", PendingMinting), IntegerEntry("Total_A4A_Reserve_In_TN:", A4AReserveValue), IntegerEntry("A4A_Backup_Value_In_TN:", A4ABackupPrice), StringEntry("message", "<h1>A4A Issued Successfully!</h1><br>"), Reissue(A4AAssetID, NewA4AToUser, true), ScriptTransfer(i.caller, ((NewA4AToUser * 990) / 1000), A4AAssetID), ScriptTransfer(addressFromPublicKey(FeeAddress), ((NewA4AToUser * 9) / 1000), A4AAssetID), ScriptTransfer(addressFromPublicKey(devAddress), ((NewA4AToUser * 1) / 1000), A4AAssetID)] | |
20 | 43 | } | |
21 | 44 | ||
22 | 45 | ||
23 | 46 | ||
24 | 47 | @Callable(i) | |
25 | - | func IssueEATH () = { | |
48 | + | func Liquidate () = { | |
49 | + | let currentKey = toBase58String(i.callerPublicKey) | |
26 | 50 | let pmt = value(i.payments[0]) | |
51 | + | let PreviousIssuedA4A = getIntegerValue(this, "Total_Issued_A4A:") | |
52 | + | let PreviousBurnedA4A = getIntegerValue(this, "Total_Burned_A4A:") | |
53 | + | let TotalIssuedA4A = (PreviousIssuedA4A - pmt.amount) | |
54 | + | let TotalBurnedA4A = (PreviousBurnedA4A + pmt.amount) | |
55 | + | let PreviousA4AReserveValue = getIntegerValue(this, "Total_A4A_Reserve_In_TN:") | |
56 | + | let PreviousA4ABackupPrice = getIntegerValue(this, "A4A_Backup_Value_In_TN:") | |
57 | + | let calculateburnvalue = fraction(PreviousA4ABackupPrice, pmt.amount, 100000) | |
58 | + | let A4AReserveValue = (PreviousA4AReserveValue - calculateburnvalue) | |
59 | + | let A4ABackupPrice = fraction(100000, A4AReserveValue, TotalIssuedA4A) | |
60 | + | if ((pmt.assetId != A4AAssetID)) | |
61 | + | then throw("Kindly Deposit Only 8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g (A4A).") | |
62 | + | else if ((100000 > pmt.amount)) | |
63 | + | then throw("Attach Amount must be greater than 0.001 A4A.") | |
64 | + | else [Burn(A4AAssetID, pmt.amount), IntegerEntry("Total_Issued_A4A:", TotalIssuedA4A), IntegerEntry("Total_Burned_A4A:", TotalBurnedA4A), IntegerEntry("Total_A4A_Reserve_In_TN:", A4AReserveValue), IntegerEntry("A4A_Backup_Value_In_TN:", A4ABackupPrice), StringEntry("message", "<h1>A4A Liquidated Successfully!</h1><br>"), ScriptTransfer(i.caller, ((calculateburnvalue * 990) / 1000), unit), ScriptTransfer(addressFromPublicKey(FeeAddress), ((calculateburnvalue * 9) / 1000), unit), ScriptTransfer(addressFromPublicKey(devAddress), ((calculateburnvalue * 1) / 1000), unit)] | |
65 | + | } | |
66 | + | ||
67 | + | ||
68 | + | ||
69 | + | @Callable(i) | |
70 | + | func Deposit (days) = { | |
71 | + | let pmt = if ((size(i.payments) == 1)) | |
72 | + | then i.payments[0] | |
73 | + | else throw("No payment attached, Please Attach A4A Token as per TIER in payment[1].") | |
27 | 74 | let currentKey = toBase58String(i.caller.bytes) | |
28 | - | let PricePerEATH = getIntegerValue(this, "EATH/WAVES") | |
29 | - | let EATHHardCap = getIntegerValue(this, "EATHHardCap") | |
30 | - | let CheckPreviousLeasing = valueOrElse(getInteger(this, "lease_amount"), 0) | |
31 | - | let NewEATHToUser = fraction(100000, pmt.amount, PricePerEATH) | |
32 | - | let PreviousIssuedEATH = match getIntegerValue(this, "Total_Issued_EATH:") { | |
75 | + | let maximumlockdays = 90 | |
76 | + | let lockstatus = "LOCKED" | |
77 | + | let ULBT = 99999999999 | |
78 | + | let ULST = 599999999999 | |
79 | + | let ULGT = 1199999999999 | |
80 | + | let ULDT = 1200000000000 | |
81 | + | let oneday = 1440 | |
82 | + | let actualblocks = (oneday * days) | |
83 | + | let totallockblocks = (height + actualblocks) | |
84 | + | let Tier1 = 7000 | |
85 | + | let StakedA4AAmount = match getInteger(this, "Staked_Amount") { | |
33 | 86 | case a: Int => | |
34 | 87 | a | |
35 | 88 | case _ => | |
36 | 89 | 0 | |
37 | 90 | } | |
38 | - | let | |
39 | - | let | |
91 | + | let newStakedA4AAmount = (StakedA4AAmount + pmt.amount) | |
92 | + | let currentA4AAmount = match getInteger(this, ("Deposit_Amount_Of_" + currentKey)) { | |
40 | 93 | case a: Int => | |
41 | 94 | a | |
42 | 95 | case _ => | |
43 | 96 | 0 | |
44 | 97 | } | |
45 | - | let EATHReserveValue = (PreviousEATHReserveValue + pmt.amount) | |
46 | - | let PendingMinting = (EATHHardCap - TotalIssuedEATH) | |
47 | - | let PreviousEATHBackupPrice = getIntegerValue(this, "EATH_Backup_Value_In_WAVES:") | |
48 | - | let EATHBackupPrice = fraction(100000, EATHReserveValue, TotalIssuedEATH) | |
49 | - | let PayToUser = ((NewEATHToUser * 990) / 1000) | |
50 | - | let PayToTreasury = ((NewEATHToUser * 9) / 1000) | |
51 | - | let PayToDev = ((NewEATHToUser * 1) / 1000) | |
52 | - | let Lease_Amount = PayToUser | |
53 | - | let lease = Lease(NODE, Lease_Amount) | |
54 | - | let lease_id = toBase58String(calculateLeaseId(lease)) | |
55 | - | let unlease = LeaseCancel(fromBase58String(getStringValue(this, "lease_id"))) | |
56 | - | let updated_lease_amount = (CheckPreviousLeasing + Lease_Amount) | |
57 | - | let updated_lease = Lease(NODE, updated_lease_amount) | |
58 | - | let updated_lease_id = toBase58String(calculateLeaseId(updated_lease)) | |
59 | - | if (isDefined(pmt.assetId)) | |
60 | - | then throw("Incorrect asset attached, please attach WAVES.") | |
61 | - | else if ((5000000 > pmt.amount)) | |
62 | - | then throw("Please Attach minimum 0.05 WAVES To Issue EATH Asset.") | |
63 | - | else if ((TotalIssuedEATH > EATHHardCap)) | |
64 | - | then throw((((((("EATH Minting is about to reach the Hard Cap of " + toString(EATHHardCap)) + "/10^8 EATH. Please Reduce your Minting Order by ") + toString(PendingMinting)) + " or put ") + toString((EATHHardCap - PreviousIssuedEATH))) + "/10^8")) | |
65 | - | else if ((CheckPreviousLeasing == 0)) | |
66 | - | then [IntegerEntry("Total_Issued_EATH:", TotalIssuedEATH), IntegerEntry("Balance_Minting_EATH:", PendingMinting), IntegerEntry("Total_EATH_Reserve_In_WAVES:", EATHReserveValue), IntegerEntry("EATH_Backup_Value_In_WAVES:", EATHBackupPrice), StringEntry("message", "<h1>EATH Issued Successfully!</h1><br>"), Reissue(EATH_ID, NewEATHToUser, true), lease, StringEntry("lease_id", lease_id), IntegerEntry("lease_amount", Lease_Amount), ScriptTransfer(i.caller, PayToUser, EATH_ID), ScriptTransfer(addressFromPublicKey(FeeAddress), PayToTreasury, EATH_ID), ScriptTransfer(addressFromPublicKey(devAddress), PayToDev, EATH_ID)] | |
67 | - | else [IntegerEntry("Total_Issued_EATH:", TotalIssuedEATH), IntegerEntry("Balance_Minting_EATH:", PendingMinting), IntegerEntry("Total_EATH_Reserve_In_WAVES:", EATHReserveValue), IntegerEntry("EATH_Backup_Value_In_WAVES:", EATHBackupPrice), StringEntry("message", "<h1>EATH Issued Successfully!</h1><br>"), Reissue(EATH_ID, NewEATHToUser, true), unlease, updated_lease, StringEntry("lease_id", updated_lease_id), IntegerEntry("lease_amount", updated_lease_amount), ScriptTransfer(i.caller, PayToUser, EATH_ID), ScriptTransfer(addressFromPublicKey(FeeAddress), PayToTreasury, EATH_ID), ScriptTransfer(addressFromPublicKey(devAddress), PayToDev, EATH_ID)] | |
98 | + | let newA4AAmount = (currentA4AAmount + pmt.amount) | |
99 | + | if ((pmt.assetId != A4AAssetID)) | |
100 | + | then throw((("Incorrect asset attached, please attach " + toBase58String(A4AAssetID)) + " only.")) | |
101 | + | else if ((6 >= days)) | |
102 | + | then throw("Choose Locking days in between 7 to 90.") | |
103 | + | else if ((days > maximumlockdays)) | |
104 | + | then throw("You Entered days greater than 90 please Enter no. of days in between 7 to 90.") | |
105 | + | else if ((7700000000 > pmt.amount)) | |
106 | + | then throw("Please Attach minimum 77 A4A To Achieve BRONZE TIER.") | |
107 | + | else if ((ULBT >= pmt.amount)) | |
108 | + | then [StringEntry(("Tier_Of_" + currentKey), "BRONZE"), IntegerEntry(("Deposit_height_Of_" + currentKey), height), IntegerEntry("Staked_Amount", newStakedA4AAmount), IntegerEntry(("Deposit_Amount_Of_" + currentKey), newA4AAmount), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), totallockblocks), StringEntry(("Lock_Status_Of_" + currentKey), lockstatus)] | |
109 | + | else if ((ULST >= pmt.amount)) | |
110 | + | then [StringEntry(("Tier_Of_" + currentKey), "SILVER"), IntegerEntry(("Deposit_height_Of_" + currentKey), height), IntegerEntry("Staked_Amount", newStakedA4AAmount), IntegerEntry(("Deposit_Amount_Of_" + currentKey), newA4AAmount), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), totallockblocks), StringEntry(("Lock_Status_Of_" + currentKey), lockstatus)] | |
111 | + | else if ((ULGT >= pmt.amount)) | |
112 | + | then [StringEntry(("Tier_Of_" + currentKey), "GOLD"), IntegerEntry(("Deposit_height_Of_" + currentKey), height), IntegerEntry("Staked_Amount", newStakedA4AAmount), IntegerEntry(("Deposit_Amount_Of_" + currentKey), newA4AAmount), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), totallockblocks), StringEntry(("Lock_Status_Of_" + currentKey), lockstatus)] | |
113 | + | else if ((ULDT == pmt.amount)) | |
114 | + | then [StringEntry(("Tier_Of_" + currentKey), "DIAMOND"), IntegerEntry(("Deposit_height_Of_" + currentKey), height), IntegerEntry("Staked_Amount", newStakedA4AAmount), IntegerEntry(("Deposit_Amount_Of_" + currentKey), newA4AAmount), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), totallockblocks), StringEntry(("Lock_Status_Of_" + currentKey), lockstatus)] | |
115 | + | else throw("Please Choose a Range Between 77-12000.") | |
116 | + | } | |
117 | + | ||
118 | + | ||
119 | + | ||
120 | + | @Callable(i) | |
121 | + | func Withdraw () = { | |
122 | + | let currentKey = toBase58String(i.caller.bytes) | |
123 | + | let checkdepositvalue = getIntegerValue(this, ("Deposit_Amount_Of_" + currentKey)) | |
124 | + | let checkstakedvalue = getIntegerValue(this, "Staked_Amount") | |
125 | + | let d6 = 1000000 | |
126 | + | let user_share = fraction(checkdepositvalue, d6, checkstakedvalue) | |
127 | + | let newstakedvalue = (checkstakedvalue - checkdepositvalue) | |
128 | + | let check90Dgap = (getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) - getIntegerValue(this, ("Deposit_height_Of_" + currentKey))) | |
129 | + | let Previous_USDC_Claimed = match getInteger(this, "Total_USDC_Claimed:") { | |
130 | + | case a: Int => | |
131 | + | a | |
132 | + | case _ => | |
133 | + | 0 | |
134 | + | } | |
135 | + | let totalrewardclaimed = (Previous_USDC_Claimed + getIntegerValue(this, ("Rewards_Of_" + currentKey))) | |
136 | + | if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) > height)) | |
137 | + | then throw((((("Your " + toString(getIntegerValue(this, ("Deposit_Amount_Of_" + currentKey)))) + " A4A are Under Lock. Consider last 8 digits as value after Decimals. Token will be Unlocked after ") + toString((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) - height))) + " blocks.")) | |
138 | + | else if ((checkdepositvalue == 0)) | |
139 | + | then throw("You Have Already Withdraw your Amount.") | |
140 | + | else if (if ((1200000000000 > checkdepositvalue)) | |
141 | + | then (check90Dgap == 129600) | |
142 | + | else false) | |
143 | + | then [ScriptTransfer(i.caller, getIntegerValue(this, ("Deposit_Amount_Of_" + currentKey)), A4AAssetID), ScriptTransfer(i.caller, fraction(assetBalance(this, USDCAssetID), user_share, d6), USDCAssetID), ScriptTransfer(i.caller, fraction(assetBalance(this, WAVESAssetID), user_share, d6), WAVESAssetID), ScriptTransfer(i.caller, ((checkdepositvalue * 3) / 1000), CODEAssetID), StringEntry(("Tier_Of_" + currentKey), "NONE"), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry("Staked_Amount", newstakedvalue), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), StringEntry(("Lock_Status_Of_" + currentKey), "UNLOCK"), IntegerEntry(("Rewards_Of_" + currentKey), 0), IntegerEntry("Total_USDC_Claimed:", totalrewardclaimed)] | |
144 | + | else if (if ((checkdepositvalue >= 1200000000000)) | |
145 | + | then (check90Dgap == 129600) | |
146 | + | else false) | |
147 | + | then [ScriptTransfer(i.caller, getIntegerValue(this, ("Deposit_Amount_Of_" + currentKey)), A4AAssetID), ScriptTransfer(i.caller, fraction(assetBalance(this, USDCAssetID), user_share, d6), USDCAssetID), ScriptTransfer(i.caller, fraction(assetBalance(this, WAVESAssetID), user_share, d6), WAVESAssetID), ScriptTransfer(i.caller, ((1200000000000 * 3) / 1000), CODEAssetID), StringEntry(("Tier_Of_" + currentKey), "NONE"), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry("Staked_Amount", newstakedvalue), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), StringEntry(("Lock_Status_Of_" + currentKey), "UNLOCK"), IntegerEntry(("Rewards_Of_" + currentKey), 0), IntegerEntry("Total_USDC_Claimed:", totalrewardclaimed)] | |
148 | + | else [ScriptTransfer(i.caller, getIntegerValue(this, ("Deposit_Amount_Of_" + currentKey)), A4AAssetID), ScriptTransfer(i.caller, fraction(assetBalance(this, USDCAssetID), user_share, d6), USDCAssetID), ScriptTransfer(i.caller, fraction(assetBalance(this, WAVESAssetID), user_share, d6), WAVESAssetID), StringEntry(("Tier_Of_" + currentKey), "NONE"), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry("Staked_Amount", newstakedvalue), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), StringEntry(("Lock_Status_Of_" + currentKey), "UNLOCK"), IntegerEntry(("Rewards_Of_" + currentKey), 0), IntegerEntry("Total_USDC_Claimed:", totalrewardclaimed)] | |
68 | 149 | } | |
69 | 150 | ||
70 | 151 | ||
71 | 152 | @Verifier(tx) | |
72 | - | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
153 | + | func verify () = match tx { | |
154 | + | case _ => | |
155 | + | let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1)) | |
156 | + | then 1 | |
157 | + | else 0 | |
158 | + | let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2)) | |
159 | + | then 1 | |
160 | + | else 0 | |
161 | + | let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3)) | |
162 | + | then 1 | |
163 | + | else 0 | |
164 | + | (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2) | |
165 | + | } | |
73 | 166 |
github/deemru/w8io/026f985 35.37 ms ◑