tx · 8tD4CebUWBfq9nu7ZBAQykAdwzq6XbvEGSdNukkYh7ku 3Mpv5ddvvBDKQN6pHsHZ6Jy74wb3J1vmHrw: -0.02000000 Waves 2023.08.20 08:43 [2718537] smart account 3Mpv5ddvvBDKQN6pHsHZ6Jy74wb3J1vmHrw > SELF 0.00000000 Waves
{ "type": 13, "id": "8tD4CebUWBfq9nu7ZBAQykAdwzq6XbvEGSdNukkYh7ku", "fee": 2000000, "feeAssetId": null, "timestamp": 1692510236151, "version": 2, "chainId": 84, "sender": "3Mpv5ddvvBDKQN6pHsHZ6Jy74wb3J1vmHrw", "senderPublicKey": "Apv79thF7LfxCEFRESoEAeqHQnhmt45geC8enb3ukDX", "proofs": [ "39t2gRDXvGfojDj2fL7qV4uYWYyr3Lnb2sizCkSun5B1kYxDLk9utGKLzApEZRbk7wR248PPseLo6oDkLjNyVogw" ], "script": "base64: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BQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADVRvdGFsVHhuc0NPREUJAABkAAAAAgUAAAAQUHJldmlvdXNUeG5zQ09ERQAAAAAAAAAAAQQAAAASUHJldmlvdXNCdXJuZWRDT0RFBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAElRvdGFsX0J1cm5lZF9DT0RFOgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAA9Ub3RhbEJ1cm5lZENPREUJAABkAAAAAgUAAAASUHJldmlvdXNCdXJuZWRDT0RFCAUAAAADcG10AAAABmFtb3VudAQAAAAUZmV0Y2h1c2Vyc3Rha2VoZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAAtTdGFraW5nRGFwcAkAASwAAAACAgAAABJEZXBvc2l0X2hlaWdodF9PZl8FAAAACmN1cnJlbnRLZXkCAAAAJllvdXIgQWRkcmVzcyBub3QgRm91bmQgb24gU3Rha2luZyBEQXBwBAAAABVmZXRjaHVzZXJtYXR1cmVoZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAAtTdGFraW5nRGFwcAkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkCAAAAJllvdXIgQWRkcmVzcyBub3QgRm91bmQgb24gU3Rha2luZyBEQXBwBAAAAAtnYXBvZmhlaWdodAkAAGUAAAACBQAAABVmZXRjaHVzZXJtYXR1cmVoZWlnaHQFAAAAFGZldGNodXNlcnN0YWtlaGVpZ2h0BAAAABNjaGVja0xpY2Vuc2VCYWxhbmNlCQAD8AAAAAIJAQAAAAdBZGRyZXNzAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwUAAAASQ09ERUxJQ0VOU0VBc3NldElEBAAAABFjdXJyZW50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Z2VyRW50cnkAAAACAgAAABJNYXhpbXVtX0RheXNfUmFuZ2UJAABkAAAAAgUAAAAPbWF4aW11bWxvY2tkYXlzAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJNaW5pbXVtX0RheXNfUmFuZ2UJAABkAAAAAgUAAAAPbWluaW11bWxvY2tkYXlzAAAAAAAAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcggFAAAAA3BtdAAAAAZhbW91bnQFAAAAC0NPREVBc3NldElEBQAAAANuaWwJAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAAAtDT0RFQXNzZXRJRAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAElRvdGFsX0J1cm5lZF9DT0RFOgUAAAAPVG90YWxCdXJuZWRDT0RFCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtUb3RhbF9UeG5zOgUAAAANVG90YWxUeG5zQ09ERQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAJSW5mbGF0aW9uBQAAAAtJbmZsYXRpb25ObwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMQmxvY2tfUGFzc2VkBQAAAAlibG9ja2RpZmYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC0J1cm5fRmFjdG9yBQAAAAtCdXJuX2ZhY3RvcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA9Ob19PZl9EZXBvc2l0c18FAAAACmN1cnJlbnRLZXkFAAAAGFN1bXB1cG9mVXNlck5vT2ZEZXBvc2l0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABJEZXBvc2l0X2hlaWdodF9PZl8FAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkF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c19PZl8FAAAACmN1cnJlbnRLZXkEAAAAElByZXZpb3VzSXNzdWVkQ09ERQQAAAAHJG1hdGNoMAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAASVG90YWxfSXNzdWVkX0NPREU6AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAD1RvdGFsSXNzdWVkQ09ERQkAAGQAAAACBQAAABJQcmV2aW91c0lzc3VlZENPREUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkEAAAAFFByZXZpb3VzQ2xhaW1GZWVJblROBAAAAAckbWF0Y2gwCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABVUb3RhbF9DbGFpbV9GZWVfSW5fVE4DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAARVG90YWxDbGFpbUZlZUluVE4JAABkAAAAAgUAAAAUUHJldmlvdXNDbGFpbUZlZUluVE4FAAAACENsYWltRmVlBAAAABRmZXRjaHVzZXJzdGFrZWhlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAC1N0YWtpbmdEYXBwCQABLAAAAAICAAAAEkRlcG9zaXRfaGVpZ2h0X09mXwUAAAAKY3VycmVudEtleQIAAAAmWW91ciBBZGRyZXNzIG5vdCBGb3VuZCBvbiBTdGFraW5nIERBcHAEAAAAFWZldGNodXNlcm1hdHVyZWhlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAC1N0YWtpbmdEYXBwCQABLAAAAAICAAAAFVRvdGFsX0xvY2tfQmxvY2tzX09mXwUAAAAKY3VycmVudEtleQIAAAAmWW91ciBBZGRyZXNzIG5vdCBGb3VuZCBvbiBTdGFraW5nIERBcHAEAAAAC2dhcG9maGVpZ2h0CQAAZQAAAAIFAAAAFWZldGNodXNlcm1hdHVyZWhlaWdodAUAAAAUZmV0Y2h1c2Vyc3Rha2VoZWlnaHQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAADBXcm9uZyBBc3NldCBBdHRhY2hlZCBmb3IgUGF5bWVudCwgcGxlYXNlIEF0dGFjaCAJAAGkAAAAAQUAAAAIQ2xhaW1GZWUCAAAACS8xMF44IFROLgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50BQAAAAhDbGFpbUZlZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAUUGxlYXNlIEF0dGFjaCBFeGFjdCAJAAGkAAAAAQUAAAAIQ2xhaW1GZWUCAAAACS8xMF44IFROLgMJAABmAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABVlvdXIgCQABpAAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkCAAAAPC8xMF44IENPREUgYXJlIFN0aWxsIE1hdHVyaW5nLiBUb2tlbiB3aWxsIGJlIFVubG9ja2VkIGFmdGVyIAkAAaQAAAABCQAAZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAVVG90YWxfTG9ja19CbG9ja3NfT2ZfBQAAAApjdXJyZW50S2V5BQAAAAZoZWlnaHQCAAAACCBibG9ja3MuAwkAAAAAAAACBQAAABFjaGVja2RlcG9zaXR2YWx1ZQAAAAAAAAAAAAkAAAIAAAABAgAAACtZb3UgSGF2ZSBBbHJlYWR5IFdpdGhkcmF3IHlvdXIgQ09ERSBBbW91bnQuAwkBAAAAAiE9AAAAAgUAAAALZ2Fwb2ZoZWlnaHQAAAAAAAAB+kAJAAACAAAAAQIAAAC8WW91IGFyZSBOb3QgRWxpZ2libGUgdG8gV2l0aGRyYXcgQ09ERS4gSXQgbmVlZCBtaW5pbXVtIDkwIERheXMgU3Rha2luZyBhdCBBNEEgREFwcC4gUHJvYmFibHkgeW91IGFscmVhZHkgaGF2ZSBDbGFpbWVkIFlvdXIgU3Rha2Ugb3IgeW91IE92ZXJ3cml0ZSB0aGUgU21hcnQgQ29udHJhY3Qgd2l0aCBsZXNzIHRoYW4gOTAgZGF5cy4DCQAAZwAAAAIFAAAAEWZldGNoVXNlclN0YWtlQW10AAAAARdlkt//CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtUb3RhbF9UeG5zOgUAAAANVG90YWxUeG5zQ09ERQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATVG90YWxfQ09ERV9DbGFpbWVkOgUAAAASdG90YWxyZXdhcmRjbGFpbWVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJUb3RhbF9Jc3N1ZWRfQ09ERToFAAAAD1RvdGFsSXNzdWVkQ09ERQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAVVG90YWxfQ2xhaW1fRmVlX0luX1ROBQAAABFUb3RhbENsYWltRmVlSW5UTgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMRmVlXyVfQ2hhcmdlBQAAAA5GbGF0ZmVlUGVyY2VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKRmVlX0Ftb3VudAUAAAAOdXNlckZsYXRGZWVBbXQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAAAtDT0RFQXNzZXRJRAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQAAZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkFAAAADnVzZXJGbGF0RmVlQW10BQAAAAtDT0RFQXNzZXRJRAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAABJUcmVhc3VyeUZlZUFkZHJlc3MJAABrAAAAAwUAAAAOdXNlckZsYXRGZWVBbXQAAAAAAAAAAFAAAAAAAAAAAGQFAAAAC0NPREVBc3NldElECQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAACmRldmFkZHJlc3MJAABrAAAAAwUAAAAOdXNlckZsYXRGZWVBbXQFAAAADGRldmZlZWNoYXJlZAAAAAAAAAAAZAUAAAALQ09ERUFzc2V0SUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTm9fT2ZfRGVwb3NpdHNfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfaGVpZ2h0X09mXwUAAAAKY3VycmVudEtleQAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAASRGVwb3NpdF9BbW91bnRfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAC1Jld2FyZHNfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UCAAAAKDxoMT5DT0RFIFVuU3Rha2VkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4FAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALVG90YWxfVHhuczoFAAAADVRvdGFsVHhuc0NPREUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1RvdGFsX0NPREVfQ2xhaW1lZDoFAAAAEnRvdGFscmV3YXJkY2xhaW1lZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASVG90YWxfSXNzdWVkX0NPREU6BQAAAA9Ub3RhbElzc3VlZENPREUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFVRvdGFsX0NsYWltX0ZlZV9Jbl9UTgUAAAARVG90YWxDbGFpbUZlZUluVE4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADEZlZV8lX0NoYXJnZQUAAAALRmVlc1BlcmNlbnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAACkZlZV9BbW91bnQFAAAACnVzZXJGZWVBbXQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAAAtDT0RFQXNzZXRJRAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQAAZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkFAAAACnVzZXJGZWVBbXQFAAAAC0NPREVBc3NldElECQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAElRyZWFzdXJ5RmVlQWRkcmVzcwkAAGsAAAADBQAAAAp1c2VyRmVlQW10AAAAAAAAAABQAAAAAAAAAABkBQAAAAtDT0RFQXNzZXRJRAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAApkZXZhZGRyZXNzCQAAawAAAAMFAAAACnVzZXJGZWVBbXQFAAAADGRldmZlZWNoYXJlZAAAAAAAAAAAZAUAAAALQ09ERUFzc2V0SUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTm9fT2ZfRGVwb3NpdHNfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfaGVpZ2h0X09mXwUAAAAKY3VycmVudEtleQAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAASRGVwb3NpdF9BbW91bnRfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAC1Jld2FyZHNfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UCAAAAKDxoMT5DT0RFIFVuU3Rha2VkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4FAAAAA25pbAAAAAFpAQAAAAxTZXREYXlzUmFuZ2UAAAACAAAAEk1pbmltdW1fRGF5c19SYW5nZQAAABJNYXhpbXVtX0RheXNfUmFuZ2UEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAALYWRtaW5yaWdodHMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMCAAAAEURBcHBfQWRtaW5fUmlnaHRzBAAAAAxNaW5pbXVtX2RheXMAAAAAAAAAAAcEAAAADE1heGltdW1fZGF5cwAAAAAAAAAAyAMJAQAAAAIhPQAAAAIFAAAAC2FkbWlucmlnaHRzBQAAAA1jYWxsZXJhZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACJJIGtub3cgWW91IGFyZSBub3QgQW4gQWRtaW4uIE9ubHkgBQAAAAthZG1pbnJpZ2h0cwIAAAAhIGhhcyByaWdodHMgdG8gY2hhbmdlIERheXMgUmFuZ2UuAwkAAGYAAAACBQAAAAxNaW5pbXVtX2RheXMFAAAAEk1pbmltdW1fRGF5c19SYW5nZQkAAAIAAAABAgAAADxNaW5pbXVtIGRheXMgcmFuZ2UgbXVzdCBiZSBtb3JlIHRoYW4gNiBhbmQgaW4gYmV0d2VlbiA3LTIwMC4DCQAAZgAAAAIFAAAAEk1heGltdW1fRGF5c19SYW5nZQUAAAAMTWF4aW11bV9kYXlzCQAAAgAAAAECAAAAKE1heGltdW0gZGF5cyByYW5nZSBjYW4ndCBleGNlZWQgdGhlIDIwMC4DCQAAZgAAAAIFAAAAEk1pbmltdW1fRGF5c19SYW5nZQUAAAASTWF4aW11bV9EYXlzX1JhbmdlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAABeTWluaW11bSBkYXlzIHJhbmdlIGNhbid0IGJlIGV4Y2VlZCB0aGUgdmFsdWUgb2YgTWF4aW11bSBkYXlzIHJhbmdlLiBDaG9vc2UgdGhlIFJhbmdlIGJldHdlZW4gWwkAAaQAAAABBQAAAAxNaW5pbXVtX2RheXMCAAAAAS0JAAGkAAAAAQUAAAAMTWF4aW11bV9kYXlzAgAAAAFdCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJNaW5pbXVtX0RheXNfUmFuZ2UFAAAAEk1pbmltdW1fRGF5c19SYW5nZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASTWF4aW11bV9EYXlzX1JhbmdlBQAAABJNYXhpbXVtX0RheXNfUmFuZ2UFAAAAA25pbAAAAAFpAQAAAAtTZXRDbGFpbUZlZQAAAAEAAAAIQ2xhaW1GZWUEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAALYWRtaW5yaWdodHMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMCAAAAEURBcHBfQWRtaW5fUmlnaHRzBAAAABFNaW5pbXVtX0NsYWltX2ZlZQAAAAAABfXhAAQAAAARTWF4aW11bV9DbGFpbV9mZWUAAAAAF0h26AADCQEAAAACIT0AAAACBQAAAAthZG1pbnJpZ2h0cwUAAAANY2FsbGVyYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAiSSBrbm93IFlvdSBhcmUgbm90IEFuIEFkbWluLiBPbmx5IAUAAAALYWRtaW5yaWdodHMCAAAAICBoYXMgcmlnaHRzIHRvIGNoYW5nZSBDbGFpbSBGZWUuAwkAAGYAAAACBQAAABFNaW5pbXVtX0NsYWltX2ZlZQUAAAAIQ2xhaW1GZWUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAFU1pbmltdW0gQ2xhaW0gZmVlIGlzIAkAAaQAAAABBQAAABFNaW5pbXVtX0NsYWltX2ZlZQIAAAARIFROIFtpbnQtZm9ybWF0XS4DCQAAZgAAAAIFAAAACENsYWltRmVlBQAAABFNYXhpbXVtX0NsYWltX2ZlZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlTWF4aW11bSBDbGFpbSBmZWUgY2FuJ3QgYmUgbW9yZSB0aGFuIAkAAaQAAAABBQAAABFNYXhpbXVtX0NsYWltX2ZlZQIAAAARIFROLiBbaW50LWZvcm1hdF0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAACUNsYWltX0ZlZQUAAAAIQ2xhaW1GZWUFAAAAA25pbAAAAAFpAQAAABJUcmlnZ2VyRm9yQXV0b1N3YXAAAAABAAAAB0Fzc2V0SUQDCQAAZgAAAAIAAAAAAAAAAAEJAAPwAAAAAgUAAAAEdGhpcwkAAlkAAAABBQAAAAdBc3NldElECQAAAgAAAAEJAAEsAAAAAgUAAAAHQXNzZXRJRAIAAAAkIGhhcyBub3QgRW5vdWdoIEJhbGFuY2UgVG8gVHJhbnNmZXIuAwkAAGYAAAACAAAAAAAAAAABCQABMQAAAAEFAAAAB0Fzc2V0SUQJAAACAAAAAQIAAAAXQXNzZXRJRCBDYW4ndCBiZSBCbGFuay4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAARY29udmVydGVyX2FkZHJlc3MJAAPwAAAAAgUAAAAEdGhpcwkAAlkAAAABBQAAAAdBc3NldElECQACWQAAAAEFAAAAB0Fzc2V0SUQFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5UcbH9g==", "height": 2718537, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5zVvbGCqhcC4kLLUx5QFdbKCgGZ6hBzFqunE73LjsF6o Next: 8hkaJXqW4HiXiy7sZPT9pwHyASgLN68F8ZKMGQfvMPCU Diff:
Old | New | Differences | |
---|---|---|---|
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "3.0.0" | |
5 | 5 | ||
6 | - | let b = | |
6 | + | let b = "3JtuUwtQjEXSjERerVhx7ZmfXPPKLnSD332" | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = base58'CFS24Rd5VmayXgJRCaGq1CfrQY9aRNbQEMFcM8r6vsUZ' | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = addressFromPublicKey(c) | |
11 | 11 | ||
12 | - | let e = base58' | |
12 | + | let e = base58'EB4CUQH4fHzzQt9YjcHtA6T7uosHNH9RnQKHgBdZHPCB' | |
13 | 13 | ||
14 | - | let f = base58' | |
14 | + | let f = base58'H3MZcnjakUsXycTbuR1BtZbyXj8C4RAPgdoeoTMGczjX' | |
15 | 15 | ||
16 | - | let g = base58' | |
16 | + | let g = base58'J3cAptAPQxVqpEz6Rch57JeKpbns48s1a6HoeQG9aX4J' | |
17 | 17 | ||
18 | - | let h = base58' | |
18 | + | let h = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
19 | 19 | ||
20 | - | let i = | |
20 | + | let i = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
21 | 21 | ||
22 | - | let j = | |
22 | + | let j = 20 | |
23 | 23 | ||
24 | - | let k = | |
24 | + | let k = 1850000 | |
25 | 25 | ||
26 | - | let l = getIntegerValue(this, " | |
26 | + | let l = getIntegerValue(this, "Minimum_Days_Range") | |
27 | 27 | ||
28 | - | let m = | |
28 | + | let m = getIntegerValue(this, "Maximum_Days_Range") | |
29 | 29 | ||
30 | - | let n = | |
30 | + | let n = 100000 | |
31 | 31 | ||
32 | - | let o = | |
32 | + | let o = 1000000 | |
33 | 33 | ||
34 | - | let p = | |
34 | + | let p = 1440 | |
35 | 35 | ||
36 | - | let q = ( | |
36 | + | let q = (height - k) | |
37 | 37 | ||
38 | - | @Callable(r) | |
39 | - | func Deposit (s) = { | |
40 | - | let t = if ((size(r.payments) == 1)) | |
41 | - | then r.payments[0] | |
42 | - | else throw((("No Payments Attached Please Attach " + toBase58String(d)) + " Asset Only.")) | |
43 | - | let u = toBase58String(r.caller.bytes) | |
44 | - | let v = ((((q * t.amount) * s) / 365) / 1000) | |
45 | - | let w = (p * 100000) | |
46 | - | let x = (o * s) | |
47 | - | let y = (height + x) | |
48 | - | let z = fraction(l, (w * q), (365 * 1000)) | |
49 | - | let A = fraction(z, 1000000, w) | |
50 | - | let B = { | |
51 | - | let C = getIntegerValue(this, "Total_Txns:") | |
52 | - | if ($isInstanceOf(C, "Int")) | |
38 | + | let r = (fraction(10000000000, 1, q) + 6000) | |
39 | + | ||
40 | + | @Callable(s) | |
41 | + | func Deposit (t) = { | |
42 | + | let u = if ((size(s.payments) == 1)) | |
43 | + | then s.payments[0] | |
44 | + | else throw((("No Payments Attached Please Attach " + toBase58String(e)) + " Asset Only.")) | |
45 | + | let v = toBase58String(s.caller.bytes) | |
46 | + | let w = ((((r * u.amount) * t) / 365) / 1000) | |
47 | + | let x = (q * 100000) | |
48 | + | let y = (p * t) | |
49 | + | let z = (height + y) | |
50 | + | let A = fraction(m, (x * r), (365 * 1000)) | |
51 | + | let B = fraction(A, 1000000, x) | |
52 | + | let C = { | |
53 | + | let D = getIntegerValue(this, "Total_Txns:") | |
54 | + | if ($isInstanceOf(D, "Int")) | |
53 | 55 | then { | |
54 | - | let | |
55 | - | | |
56 | + | let E = D | |
57 | + | E | |
56 | 58 | } | |
57 | 59 | else 0 | |
58 | 60 | } | |
59 | - | let | |
60 | - | let | |
61 | - | let | |
62 | - | if ($isInstanceOf( | |
61 | + | let F = (C + 1) | |
62 | + | let G = { | |
63 | + | let D = getInteger(this, "Total_Burned_CODE:") | |
64 | + | if ($isInstanceOf(D, "Int")) | |
63 | 65 | then { | |
64 | - | let | |
65 | - | | |
66 | + | let E = D | |
67 | + | E | |
66 | 68 | } | |
67 | 69 | else 0 | |
68 | 70 | } | |
69 | - | let | |
70 | - | let | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | let | |
76 | - | if ($isInstanceOf( | |
71 | + | let H = (G + u.amount) | |
72 | + | let I = valueOrErrorMessage(getInteger(addressFromPublicKey(g), ("Deposit_height_Of_" + v)), "Your Address not Found on Staking DApp") | |
73 | + | let J = valueOrErrorMessage(getInteger(addressFromPublicKey(g), ("Total_Lock_Blocks_Of_" + v)), "Your Address not Found on Staking DApp") | |
74 | + | let K = (J - I) | |
75 | + | let L = assetBalance(Address(s.caller.bytes), f) | |
76 | + | let M = { | |
77 | + | let D = getInteger(this, ("Deposit_Amount_Of_" + v)) | |
78 | + | if ($isInstanceOf(D, "Int")) | |
77 | 79 | then { | |
78 | - | let | |
79 | - | | |
80 | + | let E = D | |
81 | + | E | |
80 | 82 | } | |
81 | 83 | else 0 | |
82 | 84 | } | |
83 | - | let | |
84 | - | let | |
85 | - | let | |
86 | - | if ($isInstanceOf( | |
85 | + | let N = (M + u.amount) | |
86 | + | let O = { | |
87 | + | let D = getInteger(this, ("No_Of_Deposits_" + v)) | |
88 | + | if ($isInstanceOf(D, "Int")) | |
87 | 89 | then { | |
88 | - | let | |
89 | - | | |
90 | + | let E = D | |
91 | + | E | |
90 | 92 | } | |
91 | 93 | else 0 | |
92 | 94 | } | |
93 | - | let | |
94 | - | let | |
95 | - | let | |
96 | - | if ($isInstanceOf( | |
95 | + | let P = (O + 1) | |
96 | + | let Q = { | |
97 | + | let D = getInteger(this, "Expansion_Counter") | |
98 | + | if ($isInstanceOf(D, "Int")) | |
97 | 99 | then { | |
98 | - | let | |
99 | - | | |
100 | + | let E = D | |
101 | + | E | |
100 | 102 | } | |
101 | 103 | else 0 | |
102 | 104 | } | |
103 | - | let | |
104 | - | if (( | |
105 | + | let R = (Q + 1) | |
106 | + | if ((L != 1)) | |
105 | 107 | then throw("You Need to Mint a CODE License from DApp Address 3JeqfvcGZxJbuSpCB5cFhV2Bb8fdV4WzZzZ.") | |
106 | - | else if (( | |
108 | + | else if ((L > 1)) | |
107 | 109 | then throw("You Own Multiple CODE License on Same Address.") | |
108 | - | else if (( | |
109 | - | then throw((("DApp is Not Started Yet please Wait until " + toString(( | |
110 | - | else if (( | |
111 | - | then throw((("Incorrect asset attached, please attach " + toBase58String( | |
112 | - | else if (( | |
113 | - | then throw(((("Choose Locking days in between " + toString(( | |
114 | - | else if (( | |
115 | - | then throw(((((("You Entered days to " + toString( | |
116 | - | else if (( | |
110 | + | else if ((k > height)) | |
111 | + | then throw((("DApp is Not Started Yet please Wait until " + toString((k - height))) + " blocks")) | |
112 | + | else if ((u.assetId != e)) | |
113 | + | then throw((("Incorrect asset attached, please attach " + toBase58String(e)) + " asset only")) | |
114 | + | else if ((l >= t)) | |
115 | + | then throw(((("Choose Locking days in between " + toString((l + 1))) + " to ") + toString(m))) | |
116 | + | else if ((t > m)) | |
117 | + | then throw(((((("You Entered days to " + toString(t)) + ", Please Enter no. of days in between ") + toString((l + 1))) + " to ") + toString(m))) | |
118 | + | else if ((n > u.amount)) | |
117 | 119 | then throw("Please Attach minimum 0.001 CODE Token To Issue More CODE Asset.") | |
118 | - | else if (( | |
119 | - | then throw((("You can attach maximum " + toString( | |
120 | - | else if (( | |
120 | + | else if ((u.amount > x)) | |
121 | + | then throw((("You can attach maximum " + toString(x)) + "/10^8 CODE.")) | |
122 | + | else if ((K != 129600)) | |
121 | 123 | then throw("You are Not Eligible to Mint CODE. It need minimum 90 Days Staking.") | |
122 | - | else if (( | |
124 | + | else if ((O == 1)) | |
123 | 125 | then throw("You Already Have an Active Staking, Please Wait until Mature.") | |
124 | - | else if (( | |
125 | - | then [StringEntry("Version", a), IntegerEntry("Expansion_Counter", | |
126 | - | else [Burn( | |
126 | + | else if ((o > B)) | |
127 | + | then [StringEntry("Version", a), IntegerEntry("Expansion_Counter", R), StringEntry(((toString(R) + "_Expansion_Updator_") + toString(height)), v), StringEntry("message", (((("New Days Range Expended from " + toString(m)) + " To ") + toString((m + 1))) + " Days. Please Restake CODE.")), IntegerEntry("Maximum_Days_Range", (m + 1)), IntegerEntry("Minimum_Days_Range", (l + 1)), ScriptTransfer(s.caller, u.amount, e)] | |
128 | + | else [Burn(e, u.amount), IntegerEntry("Total_Burned_CODE:", H), IntegerEntry("Total_Txns:", F), IntegerEntry("Inflation", r), IntegerEntry("Block_Passed", q), IntegerEntry("Burn_Factor", B), IntegerEntry(("No_Of_Deposits_" + v), P), IntegerEntry(("Deposit_height_Of_" + v), height), IntegerEntry(("Total_Lock_Blocks_Of_" + v), z), IntegerEntry(("Deposit_Amount_Of_" + v), N), IntegerEntry(("Rewards_Of_" + v), w), StringEntry("message", "<h1>CODE Staked Successfully!</h1><br>")] | |
127 | 129 | } | |
128 | 130 | ||
129 | 131 | ||
130 | 132 | ||
131 | - | @Callable( | |
133 | + | @Callable(s) | |
132 | 134 | func Withdraw () = { | |
133 | - | let | |
134 | - | let | |
135 | - | let | |
136 | - | let | |
137 | - | let | |
138 | - | let | |
139 | - | let | |
140 | - | let | |
141 | - | let | |
142 | - | let | |
143 | - | let | |
144 | - | let | |
145 | - | let | |
146 | - | let | |
147 | - | if ($isInstanceOf( | |
135 | + | let v = toBase58String(s.caller.bytes) | |
136 | + | let S = 1200000000000 | |
137 | + | let T = 24000000 | |
138 | + | let U = 19 | |
139 | + | let V = valueOrErrorMessage(getInteger(addressFromPublicKey(g), ("Deposit_Amount_Of_" + v)), "Your Address not Found on Staking DApp") | |
140 | + | let W = 500 | |
141 | + | let X = ((T - (fraction(V, 1000000, S) * 19)) / 10000) | |
142 | + | let Y = getIntegerValue(this, "Claim_Fee") | |
143 | + | let u = value(s.payments[0]) | |
144 | + | let Z = getIntegerValue(this, ("Deposit_Amount_Of_" + v)) | |
145 | + | let aa = (((getIntegerValue(this, ("Rewards_Of_" + v)) - Z) * X) / 10000) | |
146 | + | let ab = (((getIntegerValue(this, ("Rewards_Of_" + v)) - Z) * W) / 10000) | |
147 | + | let C = { | |
148 | + | let D = getIntegerValue(this, "Total_Txns:") | |
149 | + | if ($isInstanceOf(D, "Int")) | |
148 | 150 | then { | |
149 | - | let | |
150 | - | | |
151 | + | let E = D | |
152 | + | E | |
151 | 153 | } | |
152 | 154 | else 0 | |
153 | 155 | } | |
154 | - | let | |
155 | - | let | |
156 | - | let | |
157 | - | if ($isInstanceOf( | |
156 | + | let F = (C + 1) | |
157 | + | let ac = { | |
158 | + | let D = getIntegerValue(this, "Total_CODE_Claimed:") | |
159 | + | if ($isInstanceOf(D, "Int")) | |
158 | 160 | then { | |
159 | - | let | |
160 | - | | |
161 | + | let E = D | |
162 | + | E | |
161 | 163 | } | |
162 | 164 | else 0 | |
163 | 165 | } | |
164 | - | let | |
165 | - | let | |
166 | - | let | |
167 | - | if ($isInstanceOf( | |
166 | + | let ad = (ac + getIntegerValue(this, ("Rewards_Of_" + v))) | |
167 | + | let ae = { | |
168 | + | let D = getIntegerValue(this, "Total_Issued_CODE:") | |
169 | + | if ($isInstanceOf(D, "Int")) | |
168 | 170 | then { | |
169 | - | let | |
170 | - | | |
171 | + | let E = D | |
172 | + | E | |
171 | 173 | } | |
172 | 174 | else 0 | |
173 | 175 | } | |
174 | - | let | |
175 | - | let | |
176 | - | let | |
177 | - | if ($isInstanceOf( | |
176 | + | let af = (ae + getIntegerValue(this, ("Rewards_Of_" + v))) | |
177 | + | let ag = { | |
178 | + | let D = getIntegerValue(this, "Total_Claim_Fee_In_TN") | |
179 | + | if ($isInstanceOf(D, "Int")) | |
178 | 180 | then { | |
179 | - | let | |
180 | - | | |
181 | + | let E = D | |
182 | + | E | |
181 | 183 | } | |
182 | 184 | else 0 | |
183 | 185 | } | |
184 | - | let | |
185 | - | let | |
186 | - | let | |
187 | - | let | |
188 | - | if (isDefined( | |
189 | - | then throw((("Wrong Asset Attached for Payment, please Attach " + toString( | |
190 | - | else if (( | |
191 | - | then throw((("Please Attach Exact " + toString( | |
192 | - | else if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + | |
193 | - | then throw((((("Your " + toString(getIntegerValue(this, ("Rewards_Of_" + | |
194 | - | else if (( | |
186 | + | let ah = (ag + Y) | |
187 | + | let I = valueOrErrorMessage(getInteger(addressFromPublicKey(g), ("Deposit_height_Of_" + v)), "Your Address not Found on Staking DApp") | |
188 | + | let J = valueOrErrorMessage(getInteger(addressFromPublicKey(g), ("Total_Lock_Blocks_Of_" + v)), "Your Address not Found on Staking DApp") | |
189 | + | let K = (J - I) | |
190 | + | if (isDefined(u.assetId)) | |
191 | + | then throw((("Wrong Asset Attached for Payment, please Attach " + toString(Y)) + "/10^8 TN.")) | |
192 | + | else if ((u.amount != Y)) | |
193 | + | then throw((("Please Attach Exact " + toString(Y)) + "/10^8 TN.")) | |
194 | + | else if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + v)) > height)) | |
195 | + | then throw((((("Your " + toString(getIntegerValue(this, ("Rewards_Of_" + v)))) + "/10^8 CODE are Still Maturing. Token will be Unlocked after ") + toString((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + v)) - height))) + " blocks.")) | |
196 | + | else if ((Z == 0)) | |
195 | 197 | then throw("You Have Already Withdraw your CODE Amount.") | |
196 | - | else if (( | |
198 | + | else if ((K != 129600)) | |
197 | 199 | then throw("You are Not Eligible to Withdraw CODE. It need minimum 90 Days Staking at A4A DApp. Probably you already have Claimed Your Stake or you Overwrite the Smart Contract with less than 90 days.") | |
198 | - | else if (( | |
199 | - | then [IntegerEntry("Total_Txns:", | |
200 | - | else [IntegerEntry("Total_Txns:", | |
200 | + | else if ((V >= 1199999999999)) | |
201 | + | then [IntegerEntry("Total_Txns:", F), IntegerEntry("Total_CODE_Claimed:", ad), IntegerEntry("Total_Issued_CODE:", af), IntegerEntry("Total_Claim_Fee_In_TN", ah), IntegerEntry("Fee_%_Charge", W), IntegerEntry("Fee_Amount", ab), Reissue(e, getIntegerValue(this, ("Rewards_Of_" + v)), true), ScriptTransfer(s.caller, (getIntegerValue(this, ("Rewards_Of_" + v)) - ab), e), ScriptTransfer(addressFromPublicKey(h), fraction(ab, 80, 100), e), ScriptTransfer(addressFromPublicKey(i), fraction(ab, j, 100), e), IntegerEntry(("No_Of_Deposits_" + v), 0), IntegerEntry(("Deposit_height_Of_" + v), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + v), 0), IntegerEntry(("Deposit_Amount_Of_" + v), 0), IntegerEntry(("Rewards_Of_" + v), 0), StringEntry("message", "<h1>CODE UnStaked Successfully!</h1><br>")] | |
202 | + | else [IntegerEntry("Total_Txns:", F), IntegerEntry("Total_CODE_Claimed:", ad), IntegerEntry("Total_Issued_CODE:", af), IntegerEntry("Total_Claim_Fee_In_TN", ah), IntegerEntry("Fee_%_Charge", X), IntegerEntry("Fee_Amount", aa), Reissue(e, getIntegerValue(this, ("Rewards_Of_" + v)), true), ScriptTransfer(s.caller, (getIntegerValue(this, ("Rewards_Of_" + v)) - aa), e), ScriptTransfer(addressFromPublicKey(h), fraction(aa, 80, 100), e), ScriptTransfer(addressFromPublicKey(i), fraction(aa, j, 100), e), IntegerEntry(("No_Of_Deposits_" + v), 0), IntegerEntry(("Deposit_height_Of_" + v), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + v), 0), IntegerEntry(("Deposit_Amount_Of_" + v), 0), IntegerEntry(("Rewards_Of_" + v), 0), StringEntry("message", "<h1>CODE UnStaked Successfully!</h1><br>")] | |
201 | 203 | } | |
202 | 204 | ||
203 | 205 | ||
204 | 206 | ||
205 | - | @Callable( | |
206 | - | func SetDaysRange ( | |
207 | - | let | |
208 | - | let | |
209 | - | let | |
210 | - | let | |
211 | - | if (( | |
212 | - | then throw((("I know You are not An Admin. Only " + | |
213 | - | else if (( | |
207 | + | @Callable(s) | |
208 | + | func SetDaysRange (ai,aj) = { | |
209 | + | let ak = toBase58String(s.caller.bytes) | |
210 | + | let al = getStringValue(this, "DApp_Admin_Rights") | |
211 | + | let am = 7 | |
212 | + | let an = 200 | |
213 | + | if ((al != ak)) | |
214 | + | then throw((("I know You are not An Admin. Only " + al) + " has rights to change Days Range.")) | |
215 | + | else if ((am > ai)) | |
214 | 216 | then throw("Minimum days range must be more than 6 and in between 7-200.") | |
215 | - | else if (( | |
217 | + | else if ((aj > an)) | |
216 | 218 | then throw("Maximum days range can't exceed the 200.") | |
217 | - | else if (( | |
218 | - | then throw((((("Minimum days range can't be exceed the value of Maximum days range. Choose the Range between [" + toString( | |
219 | - | else [IntegerEntry("Minimum_Days_Range", | |
219 | + | else if ((ai > aj)) | |
220 | + | then throw((((("Minimum days range can't be exceed the value of Maximum days range. Choose the Range between [" + toString(am)) + "-") + toString(an)) + "]")) | |
221 | + | else [IntegerEntry("Minimum_Days_Range", ai), IntegerEntry("Maximum_Days_Range", aj)] | |
220 | 222 | } | |
221 | 223 | ||
222 | 224 | ||
223 | 225 | ||
224 | - | @Callable( | |
225 | - | func SetClaimFee ( | |
226 | - | let | |
227 | - | let | |
228 | - | let | |
229 | - | let | |
230 | - | if (( | |
231 | - | then throw((("I know You are not An Admin. Only " + | |
232 | - | else if (( | |
233 | - | then throw((("Minimum Claim fee is " + toString( | |
234 | - | else if (( | |
235 | - | then throw((("Maximum Claim fee can't be more than " + toString( | |
236 | - | else [IntegerEntry("Claim_Fee", | |
226 | + | @Callable(s) | |
227 | + | func SetClaimFee (Y) = { | |
228 | + | let ak = toBase58String(s.caller.bytes) | |
229 | + | let al = getStringValue(this, "DApp_Admin_Rights") | |
230 | + | let ao = 100000000 | |
231 | + | let ap = 100000000000 | |
232 | + | if ((al != ak)) | |
233 | + | then throw((("I know You are not An Admin. Only " + al) + " has rights to change Claim Fee.")) | |
234 | + | else if ((ao > Y)) | |
235 | + | then throw((("Minimum Claim fee is " + toString(ao)) + " TN [int-format].")) | |
236 | + | else if ((Y > ap)) | |
237 | + | then throw((("Maximum Claim fee can't be more than " + toString(ap)) + " TN. [int-format]")) | |
238 | + | else [IntegerEntry("Claim_Fee", Y)] | |
237 | 239 | } | |
238 | 240 | ||
239 | 241 | ||
240 | 242 | ||
241 | - | @Callable(r) | |
242 | - | func SwapWavesToTN () = { | |
243 | - | let t = if ((size(r.payments) == 1)) | |
244 | - | then r.payments[0] | |
245 | - | else throw("Token is required as Attached payment") | |
246 | - | let ap = addressFromStringValue("3JjH6bhCEcN3JduEjACmBvLQ1eQvXSnAuyi") | |
247 | - | let aq = base58'EzwaF58ssALcUCZ9FbyeD1GTSteoZAQZEDTqBAXHfq8y' | |
248 | - | let ar = "TN" | |
249 | - | let as = 2001 | |
250 | - | let at = "global_TN_balance" | |
251 | - | let au = getIntegerValue(ap, at) | |
252 | - | let av = "global_EzwaF58ssALcUCZ9FbyeD1GTSteoZAQZEDTqBAXHfq8y_balance" | |
253 | - | let aw = getIntegerValue(ap, av) | |
254 | - | let ax = fraction(aw, au, (aw + t.amount)) | |
255 | - | let ay = (au - ax) | |
256 | - | let az = fraction(ay, as, 100000) | |
257 | - | let aA = (ay - az) | |
258 | - | let aB = fraction(t.amount, 100000000, aA) | |
259 | - | let aC = AttachedPayment(aq, t.amount) | |
260 | - | let aD = invoke(ap, "swap", [ar, aA], [aC]) | |
261 | - | if ((r.caller != c)) | |
262 | - | then throw((("This Address is not Authorized. Only " + toString(c)) + " is Authorized Address to Sign it.")) | |
263 | - | else if ((aD == aD)) | |
264 | - | then if ((aD == aD)) | |
265 | - | then nil | |
266 | - | else throw("Strict value is not equal to itself.") | |
267 | - | else throw("Strict value is not equal to itself.") | |
268 | - | } | |
243 | + | @Callable(s) | |
244 | + | func TriggerForAutoSwap (aq) = if ((1 > assetBalance(this, fromBase58String(aq)))) | |
245 | + | then throw((aq + " has not Enough Balance To Transfer.")) | |
246 | + | else if ((1 > size(aq))) | |
247 | + | then throw("AssetID Can't be Blank.") | |
248 | + | else [ScriptTransfer(addressFromStringValue(b), assetBalance(this, fromBase58String(aq)), fromBase58String(aq))] | |
269 | 249 | ||
270 | 250 | ||
271 | - | @Verifier( | |
272 | - | func | |
251 | + | @Verifier(ar) | |
252 | + | func as () = sigVerify(ar.bodyBytes, ar.proofs[0], ar.senderPublicKey) | |
273 | 253 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "3.0.0" | |
5 | 5 | ||
6 | - | let b = | |
6 | + | let b = "3JtuUwtQjEXSjERerVhx7ZmfXPPKLnSD332" | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = base58'CFS24Rd5VmayXgJRCaGq1CfrQY9aRNbQEMFcM8r6vsUZ' | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = addressFromPublicKey(c) | |
11 | 11 | ||
12 | - | let e = base58' | |
12 | + | let e = base58'EB4CUQH4fHzzQt9YjcHtA6T7uosHNH9RnQKHgBdZHPCB' | |
13 | 13 | ||
14 | - | let f = base58' | |
14 | + | let f = base58'H3MZcnjakUsXycTbuR1BtZbyXj8C4RAPgdoeoTMGczjX' | |
15 | 15 | ||
16 | - | let g = base58' | |
16 | + | let g = base58'J3cAptAPQxVqpEz6Rch57JeKpbns48s1a6HoeQG9aX4J' | |
17 | 17 | ||
18 | - | let h = base58' | |
18 | + | let h = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
19 | 19 | ||
20 | - | let i = | |
20 | + | let i = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
21 | 21 | ||
22 | - | let j = | |
22 | + | let j = 20 | |
23 | 23 | ||
24 | - | let k = | |
24 | + | let k = 1850000 | |
25 | 25 | ||
26 | - | let l = getIntegerValue(this, " | |
26 | + | let l = getIntegerValue(this, "Minimum_Days_Range") | |
27 | 27 | ||
28 | - | let m = | |
28 | + | let m = getIntegerValue(this, "Maximum_Days_Range") | |
29 | 29 | ||
30 | - | let n = | |
30 | + | let n = 100000 | |
31 | 31 | ||
32 | - | let o = | |
32 | + | let o = 1000000 | |
33 | 33 | ||
34 | - | let p = | |
34 | + | let p = 1440 | |
35 | 35 | ||
36 | - | let q = ( | |
36 | + | let q = (height - k) | |
37 | 37 | ||
38 | - | @Callable(r) | |
39 | - | func Deposit (s) = { | |
40 | - | let t = if ((size(r.payments) == 1)) | |
41 | - | then r.payments[0] | |
42 | - | else throw((("No Payments Attached Please Attach " + toBase58String(d)) + " Asset Only.")) | |
43 | - | let u = toBase58String(r.caller.bytes) | |
44 | - | let v = ((((q * t.amount) * s) / 365) / 1000) | |
45 | - | let w = (p * 100000) | |
46 | - | let x = (o * s) | |
47 | - | let y = (height + x) | |
48 | - | let z = fraction(l, (w * q), (365 * 1000)) | |
49 | - | let A = fraction(z, 1000000, w) | |
50 | - | let B = { | |
51 | - | let C = getIntegerValue(this, "Total_Txns:") | |
52 | - | if ($isInstanceOf(C, "Int")) | |
38 | + | let r = (fraction(10000000000, 1, q) + 6000) | |
39 | + | ||
40 | + | @Callable(s) | |
41 | + | func Deposit (t) = { | |
42 | + | let u = if ((size(s.payments) == 1)) | |
43 | + | then s.payments[0] | |
44 | + | else throw((("No Payments Attached Please Attach " + toBase58String(e)) + " Asset Only.")) | |
45 | + | let v = toBase58String(s.caller.bytes) | |
46 | + | let w = ((((r * u.amount) * t) / 365) / 1000) | |
47 | + | let x = (q * 100000) | |
48 | + | let y = (p * t) | |
49 | + | let z = (height + y) | |
50 | + | let A = fraction(m, (x * r), (365 * 1000)) | |
51 | + | let B = fraction(A, 1000000, x) | |
52 | + | let C = { | |
53 | + | let D = getIntegerValue(this, "Total_Txns:") | |
54 | + | if ($isInstanceOf(D, "Int")) | |
53 | 55 | then { | |
54 | - | let | |
55 | - | | |
56 | + | let E = D | |
57 | + | E | |
56 | 58 | } | |
57 | 59 | else 0 | |
58 | 60 | } | |
59 | - | let | |
60 | - | let | |
61 | - | let | |
62 | - | if ($isInstanceOf( | |
61 | + | let F = (C + 1) | |
62 | + | let G = { | |
63 | + | let D = getInteger(this, "Total_Burned_CODE:") | |
64 | + | if ($isInstanceOf(D, "Int")) | |
63 | 65 | then { | |
64 | - | let | |
65 | - | | |
66 | + | let E = D | |
67 | + | E | |
66 | 68 | } | |
67 | 69 | else 0 | |
68 | 70 | } | |
69 | - | let | |
70 | - | let | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | let | |
76 | - | if ($isInstanceOf( | |
71 | + | let H = (G + u.amount) | |
72 | + | let I = valueOrErrorMessage(getInteger(addressFromPublicKey(g), ("Deposit_height_Of_" + v)), "Your Address not Found on Staking DApp") | |
73 | + | let J = valueOrErrorMessage(getInteger(addressFromPublicKey(g), ("Total_Lock_Blocks_Of_" + v)), "Your Address not Found on Staking DApp") | |
74 | + | let K = (J - I) | |
75 | + | let L = assetBalance(Address(s.caller.bytes), f) | |
76 | + | let M = { | |
77 | + | let D = getInteger(this, ("Deposit_Amount_Of_" + v)) | |
78 | + | if ($isInstanceOf(D, "Int")) | |
77 | 79 | then { | |
78 | - | let | |
79 | - | | |
80 | + | let E = D | |
81 | + | E | |
80 | 82 | } | |
81 | 83 | else 0 | |
82 | 84 | } | |
83 | - | let | |
84 | - | let | |
85 | - | let | |
86 | - | if ($isInstanceOf( | |
85 | + | let N = (M + u.amount) | |
86 | + | let O = { | |
87 | + | let D = getInteger(this, ("No_Of_Deposits_" + v)) | |
88 | + | if ($isInstanceOf(D, "Int")) | |
87 | 89 | then { | |
88 | - | let | |
89 | - | | |
90 | + | let E = D | |
91 | + | E | |
90 | 92 | } | |
91 | 93 | else 0 | |
92 | 94 | } | |
93 | - | let | |
94 | - | let | |
95 | - | let | |
96 | - | if ($isInstanceOf( | |
95 | + | let P = (O + 1) | |
96 | + | let Q = { | |
97 | + | let D = getInteger(this, "Expansion_Counter") | |
98 | + | if ($isInstanceOf(D, "Int")) | |
97 | 99 | then { | |
98 | - | let | |
99 | - | | |
100 | + | let E = D | |
101 | + | E | |
100 | 102 | } | |
101 | 103 | else 0 | |
102 | 104 | } | |
103 | - | let | |
104 | - | if (( | |
105 | + | let R = (Q + 1) | |
106 | + | if ((L != 1)) | |
105 | 107 | then throw("You Need to Mint a CODE License from DApp Address 3JeqfvcGZxJbuSpCB5cFhV2Bb8fdV4WzZzZ.") | |
106 | - | else if (( | |
108 | + | else if ((L > 1)) | |
107 | 109 | then throw("You Own Multiple CODE License on Same Address.") | |
108 | - | else if (( | |
109 | - | then throw((("DApp is Not Started Yet please Wait until " + toString(( | |
110 | - | else if (( | |
111 | - | then throw((("Incorrect asset attached, please attach " + toBase58String( | |
112 | - | else if (( | |
113 | - | then throw(((("Choose Locking days in between " + toString(( | |
114 | - | else if (( | |
115 | - | then throw(((((("You Entered days to " + toString( | |
116 | - | else if (( | |
110 | + | else if ((k > height)) | |
111 | + | then throw((("DApp is Not Started Yet please Wait until " + toString((k - height))) + " blocks")) | |
112 | + | else if ((u.assetId != e)) | |
113 | + | then throw((("Incorrect asset attached, please attach " + toBase58String(e)) + " asset only")) | |
114 | + | else if ((l >= t)) | |
115 | + | then throw(((("Choose Locking days in between " + toString((l + 1))) + " to ") + toString(m))) | |
116 | + | else if ((t > m)) | |
117 | + | then throw(((((("You Entered days to " + toString(t)) + ", Please Enter no. of days in between ") + toString((l + 1))) + " to ") + toString(m))) | |
118 | + | else if ((n > u.amount)) | |
117 | 119 | then throw("Please Attach minimum 0.001 CODE Token To Issue More CODE Asset.") | |
118 | - | else if (( | |
119 | - | then throw((("You can attach maximum " + toString( | |
120 | - | else if (( | |
120 | + | else if ((u.amount > x)) | |
121 | + | then throw((("You can attach maximum " + toString(x)) + "/10^8 CODE.")) | |
122 | + | else if ((K != 129600)) | |
121 | 123 | then throw("You are Not Eligible to Mint CODE. It need minimum 90 Days Staking.") | |
122 | - | else if (( | |
124 | + | else if ((O == 1)) | |
123 | 125 | then throw("You Already Have an Active Staking, Please Wait until Mature.") | |
124 | - | else if (( | |
125 | - | then [StringEntry("Version", a), IntegerEntry("Expansion_Counter", | |
126 | - | else [Burn( | |
126 | + | else if ((o > B)) | |
127 | + | then [StringEntry("Version", a), IntegerEntry("Expansion_Counter", R), StringEntry(((toString(R) + "_Expansion_Updator_") + toString(height)), v), StringEntry("message", (((("New Days Range Expended from " + toString(m)) + " To ") + toString((m + 1))) + " Days. Please Restake CODE.")), IntegerEntry("Maximum_Days_Range", (m + 1)), IntegerEntry("Minimum_Days_Range", (l + 1)), ScriptTransfer(s.caller, u.amount, e)] | |
128 | + | else [Burn(e, u.amount), IntegerEntry("Total_Burned_CODE:", H), IntegerEntry("Total_Txns:", F), IntegerEntry("Inflation", r), IntegerEntry("Block_Passed", q), IntegerEntry("Burn_Factor", B), IntegerEntry(("No_Of_Deposits_" + v), P), IntegerEntry(("Deposit_height_Of_" + v), height), IntegerEntry(("Total_Lock_Blocks_Of_" + v), z), IntegerEntry(("Deposit_Amount_Of_" + v), N), IntegerEntry(("Rewards_Of_" + v), w), StringEntry("message", "<h1>CODE Staked Successfully!</h1><br>")] | |
127 | 129 | } | |
128 | 130 | ||
129 | 131 | ||
130 | 132 | ||
131 | - | @Callable( | |
133 | + | @Callable(s) | |
132 | 134 | func Withdraw () = { | |
133 | - | let | |
134 | - | let | |
135 | - | let | |
136 | - | let | |
137 | - | let | |
138 | - | let | |
139 | - | let | |
140 | - | let | |
141 | - | let | |
142 | - | let | |
143 | - | let | |
144 | - | let | |
145 | - | let | |
146 | - | let | |
147 | - | if ($isInstanceOf( | |
135 | + | let v = toBase58String(s.caller.bytes) | |
136 | + | let S = 1200000000000 | |
137 | + | let T = 24000000 | |
138 | + | let U = 19 | |
139 | + | let V = valueOrErrorMessage(getInteger(addressFromPublicKey(g), ("Deposit_Amount_Of_" + v)), "Your Address not Found on Staking DApp") | |
140 | + | let W = 500 | |
141 | + | let X = ((T - (fraction(V, 1000000, S) * 19)) / 10000) | |
142 | + | let Y = getIntegerValue(this, "Claim_Fee") | |
143 | + | let u = value(s.payments[0]) | |
144 | + | let Z = getIntegerValue(this, ("Deposit_Amount_Of_" + v)) | |
145 | + | let aa = (((getIntegerValue(this, ("Rewards_Of_" + v)) - Z) * X) / 10000) | |
146 | + | let ab = (((getIntegerValue(this, ("Rewards_Of_" + v)) - Z) * W) / 10000) | |
147 | + | let C = { | |
148 | + | let D = getIntegerValue(this, "Total_Txns:") | |
149 | + | if ($isInstanceOf(D, "Int")) | |
148 | 150 | then { | |
149 | - | let | |
150 | - | | |
151 | + | let E = D | |
152 | + | E | |
151 | 153 | } | |
152 | 154 | else 0 | |
153 | 155 | } | |
154 | - | let | |
155 | - | let | |
156 | - | let | |
157 | - | if ($isInstanceOf( | |
156 | + | let F = (C + 1) | |
157 | + | let ac = { | |
158 | + | let D = getIntegerValue(this, "Total_CODE_Claimed:") | |
159 | + | if ($isInstanceOf(D, "Int")) | |
158 | 160 | then { | |
159 | - | let | |
160 | - | | |
161 | + | let E = D | |
162 | + | E | |
161 | 163 | } | |
162 | 164 | else 0 | |
163 | 165 | } | |
164 | - | let | |
165 | - | let | |
166 | - | let | |
167 | - | if ($isInstanceOf( | |
166 | + | let ad = (ac + getIntegerValue(this, ("Rewards_Of_" + v))) | |
167 | + | let ae = { | |
168 | + | let D = getIntegerValue(this, "Total_Issued_CODE:") | |
169 | + | if ($isInstanceOf(D, "Int")) | |
168 | 170 | then { | |
169 | - | let | |
170 | - | | |
171 | + | let E = D | |
172 | + | E | |
171 | 173 | } | |
172 | 174 | else 0 | |
173 | 175 | } | |
174 | - | let | |
175 | - | let | |
176 | - | let | |
177 | - | if ($isInstanceOf( | |
176 | + | let af = (ae + getIntegerValue(this, ("Rewards_Of_" + v))) | |
177 | + | let ag = { | |
178 | + | let D = getIntegerValue(this, "Total_Claim_Fee_In_TN") | |
179 | + | if ($isInstanceOf(D, "Int")) | |
178 | 180 | then { | |
179 | - | let | |
180 | - | | |
181 | + | let E = D | |
182 | + | E | |
181 | 183 | } | |
182 | 184 | else 0 | |
183 | 185 | } | |
184 | - | let | |
185 | - | let | |
186 | - | let | |
187 | - | let | |
188 | - | if (isDefined( | |
189 | - | then throw((("Wrong Asset Attached for Payment, please Attach " + toString( | |
190 | - | else if (( | |
191 | - | then throw((("Please Attach Exact " + toString( | |
192 | - | else if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + | |
193 | - | then throw((((("Your " + toString(getIntegerValue(this, ("Rewards_Of_" + | |
194 | - | else if (( | |
186 | + | let ah = (ag + Y) | |
187 | + | let I = valueOrErrorMessage(getInteger(addressFromPublicKey(g), ("Deposit_height_Of_" + v)), "Your Address not Found on Staking DApp") | |
188 | + | let J = valueOrErrorMessage(getInteger(addressFromPublicKey(g), ("Total_Lock_Blocks_Of_" + v)), "Your Address not Found on Staking DApp") | |
189 | + | let K = (J - I) | |
190 | + | if (isDefined(u.assetId)) | |
191 | + | then throw((("Wrong Asset Attached for Payment, please Attach " + toString(Y)) + "/10^8 TN.")) | |
192 | + | else if ((u.amount != Y)) | |
193 | + | then throw((("Please Attach Exact " + toString(Y)) + "/10^8 TN.")) | |
194 | + | else if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + v)) > height)) | |
195 | + | then throw((((("Your " + toString(getIntegerValue(this, ("Rewards_Of_" + v)))) + "/10^8 CODE are Still Maturing. Token will be Unlocked after ") + toString((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + v)) - height))) + " blocks.")) | |
196 | + | else if ((Z == 0)) | |
195 | 197 | then throw("You Have Already Withdraw your CODE Amount.") | |
196 | - | else if (( | |
198 | + | else if ((K != 129600)) | |
197 | 199 | then throw("You are Not Eligible to Withdraw CODE. It need minimum 90 Days Staking at A4A DApp. Probably you already have Claimed Your Stake or you Overwrite the Smart Contract with less than 90 days.") | |
198 | - | else if (( | |
199 | - | then [IntegerEntry("Total_Txns:", | |
200 | - | else [IntegerEntry("Total_Txns:", | |
200 | + | else if ((V >= 1199999999999)) | |
201 | + | then [IntegerEntry("Total_Txns:", F), IntegerEntry("Total_CODE_Claimed:", ad), IntegerEntry("Total_Issued_CODE:", af), IntegerEntry("Total_Claim_Fee_In_TN", ah), IntegerEntry("Fee_%_Charge", W), IntegerEntry("Fee_Amount", ab), Reissue(e, getIntegerValue(this, ("Rewards_Of_" + v)), true), ScriptTransfer(s.caller, (getIntegerValue(this, ("Rewards_Of_" + v)) - ab), e), ScriptTransfer(addressFromPublicKey(h), fraction(ab, 80, 100), e), ScriptTransfer(addressFromPublicKey(i), fraction(ab, j, 100), e), IntegerEntry(("No_Of_Deposits_" + v), 0), IntegerEntry(("Deposit_height_Of_" + v), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + v), 0), IntegerEntry(("Deposit_Amount_Of_" + v), 0), IntegerEntry(("Rewards_Of_" + v), 0), StringEntry("message", "<h1>CODE UnStaked Successfully!</h1><br>")] | |
202 | + | else [IntegerEntry("Total_Txns:", F), IntegerEntry("Total_CODE_Claimed:", ad), IntegerEntry("Total_Issued_CODE:", af), IntegerEntry("Total_Claim_Fee_In_TN", ah), IntegerEntry("Fee_%_Charge", X), IntegerEntry("Fee_Amount", aa), Reissue(e, getIntegerValue(this, ("Rewards_Of_" + v)), true), ScriptTransfer(s.caller, (getIntegerValue(this, ("Rewards_Of_" + v)) - aa), e), ScriptTransfer(addressFromPublicKey(h), fraction(aa, 80, 100), e), ScriptTransfer(addressFromPublicKey(i), fraction(aa, j, 100), e), IntegerEntry(("No_Of_Deposits_" + v), 0), IntegerEntry(("Deposit_height_Of_" + v), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + v), 0), IntegerEntry(("Deposit_Amount_Of_" + v), 0), IntegerEntry(("Rewards_Of_" + v), 0), StringEntry("message", "<h1>CODE UnStaked Successfully!</h1><br>")] | |
201 | 203 | } | |
202 | 204 | ||
203 | 205 | ||
204 | 206 | ||
205 | - | @Callable( | |
206 | - | func SetDaysRange ( | |
207 | - | let | |
208 | - | let | |
209 | - | let | |
210 | - | let | |
211 | - | if (( | |
212 | - | then throw((("I know You are not An Admin. Only " + | |
213 | - | else if (( | |
207 | + | @Callable(s) | |
208 | + | func SetDaysRange (ai,aj) = { | |
209 | + | let ak = toBase58String(s.caller.bytes) | |
210 | + | let al = getStringValue(this, "DApp_Admin_Rights") | |
211 | + | let am = 7 | |
212 | + | let an = 200 | |
213 | + | if ((al != ak)) | |
214 | + | then throw((("I know You are not An Admin. Only " + al) + " has rights to change Days Range.")) | |
215 | + | else if ((am > ai)) | |
214 | 216 | then throw("Minimum days range must be more than 6 and in between 7-200.") | |
215 | - | else if (( | |
217 | + | else if ((aj > an)) | |
216 | 218 | then throw("Maximum days range can't exceed the 200.") | |
217 | - | else if (( | |
218 | - | then throw((((("Minimum days range can't be exceed the value of Maximum days range. Choose the Range between [" + toString( | |
219 | - | else [IntegerEntry("Minimum_Days_Range", | |
219 | + | else if ((ai > aj)) | |
220 | + | then throw((((("Minimum days range can't be exceed the value of Maximum days range. Choose the Range between [" + toString(am)) + "-") + toString(an)) + "]")) | |
221 | + | else [IntegerEntry("Minimum_Days_Range", ai), IntegerEntry("Maximum_Days_Range", aj)] | |
220 | 222 | } | |
221 | 223 | ||
222 | 224 | ||
223 | 225 | ||
224 | - | @Callable( | |
225 | - | func SetClaimFee ( | |
226 | - | let | |
227 | - | let | |
228 | - | let | |
229 | - | let | |
230 | - | if (( | |
231 | - | then throw((("I know You are not An Admin. Only " + | |
232 | - | else if (( | |
233 | - | then throw((("Minimum Claim fee is " + toString( | |
234 | - | else if (( | |
235 | - | then throw((("Maximum Claim fee can't be more than " + toString( | |
236 | - | else [IntegerEntry("Claim_Fee", | |
226 | + | @Callable(s) | |
227 | + | func SetClaimFee (Y) = { | |
228 | + | let ak = toBase58String(s.caller.bytes) | |
229 | + | let al = getStringValue(this, "DApp_Admin_Rights") | |
230 | + | let ao = 100000000 | |
231 | + | let ap = 100000000000 | |
232 | + | if ((al != ak)) | |
233 | + | then throw((("I know You are not An Admin. Only " + al) + " has rights to change Claim Fee.")) | |
234 | + | else if ((ao > Y)) | |
235 | + | then throw((("Minimum Claim fee is " + toString(ao)) + " TN [int-format].")) | |
236 | + | else if ((Y > ap)) | |
237 | + | then throw((("Maximum Claim fee can't be more than " + toString(ap)) + " TN. [int-format]")) | |
238 | + | else [IntegerEntry("Claim_Fee", Y)] | |
237 | 239 | } | |
238 | 240 | ||
239 | 241 | ||
240 | 242 | ||
241 | - | @Callable(r) | |
242 | - | func SwapWavesToTN () = { | |
243 | - | let t = if ((size(r.payments) == 1)) | |
244 | - | then r.payments[0] | |
245 | - | else throw("Token is required as Attached payment") | |
246 | - | let ap = addressFromStringValue("3JjH6bhCEcN3JduEjACmBvLQ1eQvXSnAuyi") | |
247 | - | let aq = base58'EzwaF58ssALcUCZ9FbyeD1GTSteoZAQZEDTqBAXHfq8y' | |
248 | - | let ar = "TN" | |
249 | - | let as = 2001 | |
250 | - | let at = "global_TN_balance" | |
251 | - | let au = getIntegerValue(ap, at) | |
252 | - | let av = "global_EzwaF58ssALcUCZ9FbyeD1GTSteoZAQZEDTqBAXHfq8y_balance" | |
253 | - | let aw = getIntegerValue(ap, av) | |
254 | - | let ax = fraction(aw, au, (aw + t.amount)) | |
255 | - | let ay = (au - ax) | |
256 | - | let az = fraction(ay, as, 100000) | |
257 | - | let aA = (ay - az) | |
258 | - | let aB = fraction(t.amount, 100000000, aA) | |
259 | - | let aC = AttachedPayment(aq, t.amount) | |
260 | - | let aD = invoke(ap, "swap", [ar, aA], [aC]) | |
261 | - | if ((r.caller != c)) | |
262 | - | then throw((("This Address is not Authorized. Only " + toString(c)) + " is Authorized Address to Sign it.")) | |
263 | - | else if ((aD == aD)) | |
264 | - | then if ((aD == aD)) | |
265 | - | then nil | |
266 | - | else throw("Strict value is not equal to itself.") | |
267 | - | else throw("Strict value is not equal to itself.") | |
268 | - | } | |
243 | + | @Callable(s) | |
244 | + | func TriggerForAutoSwap (aq) = if ((1 > assetBalance(this, fromBase58String(aq)))) | |
245 | + | then throw((aq + " has not Enough Balance To Transfer.")) | |
246 | + | else if ((1 > size(aq))) | |
247 | + | then throw("AssetID Can't be Blank.") | |
248 | + | else [ScriptTransfer(addressFromStringValue(b), assetBalance(this, fromBase58String(aq)), fromBase58String(aq))] | |
269 | 249 | ||
270 | 250 | ||
271 | - | @Verifier( | |
272 | - | func | |
251 | + | @Verifier(ar) | |
252 | + | func as () = sigVerify(ar.bodyBytes, ar.proofs[0], ar.senderPublicKey) | |
273 | 253 |
github/deemru/w8io/026f985 128.63 ms ◑