tx · 4jd3kkipT2v4gwoMhjbRW2oigL8Lem6SF2qBv6LaHR3f 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA: -0.02500000 Waves 2023.08.14 15:48 [2710253] smart account 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA > SELF 0.00000000 Waves
{ "type": 13, "id": "4jd3kkipT2v4gwoMhjbRW2oigL8Lem6SF2qBv6LaHR3f", "fee": 2500000, "feeAssetId": null, "timestamp": 1692017312862, "version": 2, "chainId": 84, "sender": "3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA", "senderPublicKey": "CiRX9ubobzbD36ZwTyuBFiPnPkmzMQ7GDsF3hMoVbcVR", "proofs": [ "58St9X6XR5drnLcembDHXZhfTBVxTu2aM28idsr2LatXmL5PEEjnAcvjdoDSvNRhUy4rkwQ4kDmcKP2ZmjFuxUKH" ], "script": "base64:AAIFAAAAAAAAABsIAhIICgYBAQEBAQQSAwoBARIDCgEBEgMKAQEAAAARAAAAAAtCTUxfVG9rZW5JRAEAAAAAAAAAACNwcmVzYWxlX3RpbWVzdGFtcF9jb250cm9sbGVyX3B1YmtleQEAAAAg463XstSKNtaiPAMTm2AWTDVjxzAiveOx6Vx7CmnuvCMAAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAjcHJlc2FsZV90aW1lc3RhbXBfY29udHJvbGxlcl9wdWJrZXkAAAAADmV4cGlyZWR0c2Vycm9yAgAAADhTdGFydCBUaW1lc3RhbXAgY2FuJ3QgYmUgbGVzcyB0aGFuIGxhc3QgYmxvY2sgVGltZXN0YW1wLgAAAAAHdHNlcnJvcgIAAAA8RW5kIFRpbWVzdGFtcCBjYW4ndCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gU3RhcnQgVGltZXN0YW1wAAAAAApwcmljZWVycm9yAgAAACZUb2tlbiBQcmljZSBjYW4ndCBiZSBsZXNzIHRoYW4gb3IgWmVybwAAAAAIY2FwZXJyb3ICAAAAM1NvZnQgQ2FwIEFtb3VudCBjYW4ndCBiZSBtb3JlIHRoYW4gSGFyZCBDYXAgQW1vdW50LgAAAAAIb3JkZXJtc2cCAAAAMjxoMT5QcmVzYWxlIE9yZGVyIFN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+AAAAABBwcmVzYWxlX2luaXRfbXNnAgAAADc8aDE+UHJlU2FsZSBQYXJhbWV0ZXJzIFN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+AAAAAAlweW10ZXJyb3ICAAAAK0RBcHAgTmVlZCBXQVZFUyBUb2tlbiBhcyBBdHRhY2ggcGF5bWVudFsxXS4AAAAADm9yZGVycHltdGVycm9yAgAAAC1BdHRhY2hlZCBwYXltZW50WzFdIGlzIGxlc3MgdGhhbiB0b2tlbiBwcmljZSAAAAAADGxhdW5jaF9lcnJvcgIAAAAmRGFwcCB3aWxsIHN0YXJ0IFByZS1TYWxlIGF0IFRpbWVzdGFtcCAAAAAAC21pbmJhbGVycm9yAgAAAGZNaW5pbXVtIDAuMSBXQVZFUyByZXF1aXJlZCBvbiBZb3VyIEFkZHJlc3MsIFBsZWFzZSBob2xkIG1pbi4gMC4xIFdBVkVTIG9uIHlvdXIgQWRkcmVzcyB0byBwbGFjZSBvcmRlci4AAAAAD3ByZXNhbGVfZW5kX2VycgIAAAAgUHJlLVNhbGUgaXMgb3ZlciBmb3IgdGhpcyBSb3VuZC4AAAAAE3ByZXNhbGVfbm90X2VuZF9lcnICAAAAJFByZS1TYWxlIGlzIG5vdCBvdmVyIGZvciB0aGlzIFJvdW5kLgAAAAAKcmVmdW5kX2VycgIAAAB6U29mdGNhcCBvciBIYXJkIENhcCBhbHJlYWR5IFJlYWNoZWQgb3IgcHJvYmFibHkgUHJlU2FsZSB3YXMgU2V0IHdpdGggRmFsc2UgdG8gUmVmdW5kLCBzbyBubyBSZWZ1bmQgYWxsb3dlZCBmb3IgdGhpcyBSb3VuZC4AAAAAD3JlZnVuZF9pbml0X21zZwIAAAArPGgxPlJlZnVuZCBSZWNlaXZlZCBTdWNjZXNzZnVsbHkhLjwvaDE+PGJyPgAAAAQAAAABaQEAAAAUU2V0UHJlU2FsZVBhcmFtZXRlcnMAAAAGAAAAF1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wAAAAFVByZXNhbGVfRW5kX1RpbWVTdGFtcAAAAAtUb2tlbl9QcmljZQAAAA9Tb2Z0X0NhcF9BbW91bnQAAAAPSGFyZF9DYXBfQW1vdW50AAAADEFsbG93X1JlZnVuZAQAAAAHU3RhcnRUUwUAAAAXUHJlc2FsZV9TdGFydF9UaW1lU3RhbXAEAAAABUVuZFRTBQAAABVQcmVzYWxlX0VuZF9UaW1lU3RhbXAEAAAAEnJlYWRfZnVuZGluZ19yb3VuZAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABVDdXJyZW50X0Z1bmRpbmdfUm91bmQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAANY3VycmVudF9yb3VuZAkAAGQAAAACBQAAABJyZWFkX2Z1bmRpbmdfcm91bmQAAAAAAAAAAAEDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABJjb250cm9sbGVyX2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAZgAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAABdQcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAkAAAIAAAABBQAAAA5leHBpcmVkdHNlcnJvcgMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABdQcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAAAAAAAAAAADQkAAAIAAAABAgAAAG9TdGFydCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4DCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAAVUHJlc2FsZV9FbmRfVGltZVN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAbUVuZCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4DCQAAZgAAAAIAAAAAAAAAAAEFAAAAC1Rva2VuX1ByaWNlCQAAAgAAAAEFAAAACnByaWNlZXJyb3IDCQAAZwAAAAIFAAAAB1N0YXJ0VFMFAAAABUVuZFRTCQAAAgAAAAEFAAAAB3RzZXJyb3IDCQAAZgAAAAIFAAAAD1NvZnRfQ2FwX0Ftb3VudAUAAAAPSGFyZF9DYXBfQW1vdW50CQAAAgAAAAEFAAAACGNhcGVycm9yCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABVDdXJyZW50X0Z1bmRpbmdfUm91bmQFAAAADWN1cnJlbnRfcm91bmQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAA1jdXJyZW50X3JvdW5kAgAAABhfUHJlc2FsZV9TdGFydF9UaW1lU3RhbXAFAAAAB1N0YXJ0VFMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAA1jdXJyZW50X3JvdW5kAgAAABZfUHJlc2FsZV9FbmRfVGltZVN0YW1wBQAAAAVFbmRUUwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAADF9Ub2tlbl9QcmljZQUAAAALVG9rZW5fUHJpY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAA1jdXJyZW50X3JvdW5kAgAAABBfU29mdF9DYXBfQW1vdW50BQAAAA9Tb2Z0X0NhcF9BbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAA1jdXJyZW50X3JvdW5kAgAAABBfSGFyZF9DYXBfQW1vdW50BQAAAA9IYXJkX0NhcF9BbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAA1jdXJyZW50X3JvdW5kAgAAABFfSW5pdGlhdGVkX0hlaWdodAUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAANY3VycmVudF9yb3VuZAIAAAANX0FsbG93X1JlZnVuZAUAAAAMQWxsb3dfUmVmdW5kCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAAEHByZXNhbGVfaW5pdF9tc2cFAAAAA25pbAAAAAFpAQAAABFQbGFjZVByZXNhbGVPcmRlcgAAAAEAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAQAAAAWcmVhZF9yb3VuZF90b2tlbl9wcmljZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAxfVG9rZW5fUHJpY2UCAAAALVRva2VuIFByaWNlIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAATcmVhZF9yb3VuZF9zdGFydF90cwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABhfUHJlc2FsZV9TdGFydF9UaW1lU3RhbXACAAAAMVN0YXJ0IFRpbWVzdGFtcCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAEXJlYWRfcm91bmRfZW5kX3RzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAFl9QcmVzYWxlX0VuZF9UaW1lU3RhbXACAAAAL0VuZCBUaW1lc3RhbXAgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABRyZWFkX1NvZnRfQ2FwX0Ftb3VudAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABBfU29mdF9DYXBfQW1vdW50AgAAADFTb2Z0IENhcCBBbW91bnQgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABRyZWFkX0hhcmRfQ2FwX0Ftb3VudAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABBfSGFyZF9DYXBfQW1vdW50AgAAADFIYXJkIENhcCBBbW91bnQgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABFyZWFkX0FsbG93X1JlZnVuZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGwAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQA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AAAAE3JlYWRfcm91bmRfc3RhcnRfdHMDCQAAZgAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAABFyZWFkX3JvdW5kX2VuZF90cwkAAAIAAAABBQAAAA9wcmVzYWxlX2VuZF9lcnIDAwkAAGYAAAACBQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzAAAAAAAAAAAACQAAZgAAAAIFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMAAAAAAAAAAAAHCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0Z1bmRzX0NvbGxlY3Rpb24FAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkFAAAAGnVzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAZX3RvdGFsX2F1dG9fd2l0aGRyYXdfdHhucwUAAAAXcmVhZF9hdXRvX3dpdGhkcmF3X3R4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAtfdG90YWxfdHhucwUAAAAKdG90YWxfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAF19wZW5kaW5nX3NvZnRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfaGFyZGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19zb2Z0Y2FwX3N0YXR1cwIAAAACTm8JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19oYXJkY2FwX3N0YXR1cwIAAAACTm8JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA1fQWxsb3dfUmVmdW5kBQAAABFyZWFkX0FsbG93X1JlZnVuZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAAhvcmRlcm1zZwUAAAADbmlsAwMDCQAAZwAAAAIAAAAAAAAAAAAFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABmAAAAAgUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwAAAAAAAAAAAAcJAAAAAAAAAgUAAAAYdG90YWxfYXV0b193aXRoZHJhd190eG5zAAAAAAAAAAABBwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9GdW5kc19Db2xsZWN0aW9uBQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfBQAAAApjdXJyZW50S2V5BQAAABp1c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAGV90b3RhbF9hdXRvX3dpdGhkcmF3X3R4bnMFAAAAGHRvdGFsX2F1dG9fd2l0aGRyYXdfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zBQAAAAp0b3RhbF90eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfc29mdGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19oYXJkY2FwX3N0YXR1cwUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX3NvZnRjYXBfc3RhdHVzAgAAAANZZXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19oYXJkY2FwX3N0YXR1cwIAAAACTm8JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA1fQWxsb3dfUmVmdW5kBwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABJjb250cm9sbGVyX2FkZHJlc3MFAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24FAAAABHVuaXQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAIb3JkZXJtc2cFAAAAA25pbAMDAwkAAGcAAAACAAAAAAAAAAAABQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAAZgAAAAIFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMAAAAAAAAAAAAHCQAAZgAAAAIFAAAAGHRvdGFsX2F1dG9fd2l0aGRyYXdfdHhucwAAAAAAAAAAAQcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfRnVuZHNfQ29sbGVjdGlvbgUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQUAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABlfdG90YWxfYXV0b193aXRoZHJhd190eG5zBQAAABh0b3RhbF9hdXRvX3dpdGhkcmF3X3R4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAtfdG90YWxfdHhucwUAAAAKdG90YWxfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAF19wZW5kaW5nX3NvZnRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfaGFyZGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19zb2Z0Y2FwX3N0YXR1cwIAAAADWWVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9faGFyZGNhcF9zdGF0dXMCAAAAAk5vCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAANX0FsbG93X1JlZnVuZAcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAASY29udHJvbGxlcl9hZGRyZXNzCAUAAAADcG10AAAABmFtb3VudAUAAAAEdW5pdAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAAhvcmRlcm1zZwUAAAADbmlsAwMDCQAAZwAAAAIAAAAAAAAAAAAFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwcJAAAAAAAAAgUAAAAYdG90YWxfYXV0b193aXRoZHJhd190eG5zAAAAAAAAAAABBwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9GdW5kc19Db2xsZWN0aW9uBQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfBQAAAApjdXJyZW50S2V5BQAAABp1c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAGV90b3RhbF9hdXRvX3dpdGhkcmF3X3R4bnMFAAAAGHRvdGFsX2F1dG9fd2l0aGRyYXdfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zBQAAAAp0b3RhbF90eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfc29mdGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19oYXJkY2FwX3N0YXR1cwUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX3NvZnRjYXBfc3RhdHVzAgAAAANZZXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19oYXJkY2FwX3N0YXR1cwIAAAADWWVzCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAANX0FsbG93X1JlZnVuZAcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAASY29udHJvbGxlcl9hZGRyZXNzBQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uBQAAAAR1bml0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAACG9yZGVybXNnBQAAAANuaWwDAwMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkAAGcAAAACAAAAAAAAAAAABQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzBwkAAGYAAAACBQAAABh0b3RhbF9hdXRvX3dpdGhkcmF3X3R4bnMAAAAAAAAAAAEHCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0Z1bmRzX0NvbGxlY3Rpb24FAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkFAAAAGnVzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAZX3RvdGFsX2F1dG9fd2l0aGRyYXdfdHhucwUAAAAYdG90YWxfYXV0b193aXRoZHJhd190eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAALX3RvdGFsX3R4bnMFAAAACnRvdGFsX3R4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAF19wZW5kaW5nX2hhcmRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9fc29mdGNhcF9zdGF0dXMCAAAAA1llcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX2hhcmRjYXBfc3RhdHVzAgAAAANZZXMJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA1fQWxsb3dfUmVmdW5kBwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABJjb250cm9sbGVyX2FkZHJlc3MIBQAAAANwbXQAAAAGYW1vdW50BQAAAAR1bml0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAACG9yZGVybXNnBQAAAANuaWwJAAACAAAAAQIAAAAGRXJyb3IuAAAAAWkBAAAABlJlZnVuZAAAAAEAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAQAAAAFV0FWRVMFAAAABHVuaXQEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAVcmVhZF9Jbml0aWF0ZWRfSGVpZ2h0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9Jbml0aWF0ZWRfSGVpZ2h0AgAAADJJbml0aWF0ZWQgSGVpZ2h0IG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAWcmVhZF9yb3VuZF90b2tlbl9wcmljZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAxfVG9rZW5fUHJpY2UCAAAALVRva2VuIFByaWNlIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAATcmVhZF9yb3VuZF9zdGFydF90cwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABhfUHJlc2FsZV9TdGFydF9UaW1lU3RhbXACAAAAMVN0YXJ0IFRpbWVzdGFtcCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAEXJlYWRfcm91bmRfZW5kX3RzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAFl9QcmVzYWxlX0VuZF9UaW1lU3RhbXACAAAAL0VuZCBUaW1lc3RhbXAgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABRyZWFkX1NvZnRfQ2FwX0Ftb3VudAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABBfU29mdF9DYXBfQW1vdW50AgAAADFTb2Z0IENhcCBBbW91bnQgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABRyZWFkX0hhcmRfQ2FwX0Ftb3VudAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABBfSGFyZF9DYXBfQW1vdW50AgAAADFIYXJkIENhcCBBbW91bnQgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABtyZWFkX3RvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0Z1bmRzX0NvbGxlY3Rpb24CAAAAOFRvdGFsIEZ1bmRzIENvbGxlY3Rpb24gbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAAB9yZWFkX3VzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQIAAAA7Tm8gRGVwb3NpdCB3YXMgbWFkZSBieSB0aGlzIEFkZHJlc3MgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAEXJlYWRfQWxsb3dfUmVmdW5kCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADV9BbGxvd19SZWZ1bmQCAAAAOEFsbG93X1JlZnVuZCBoYXMgbm8gQm9vbGVuIEVudHJ5IGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAAZQAAAAIFAAAAFHJlYWRfU29mdF9DYXBfQW1vdW50BQAAABtyZWFkX3RvdGFsX2Z1bmRzX2NvbGxlY3Rpb24EAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMJAABlAAAAAgUAAAAUcmVhZF9IYXJkX0NhcF9BbW91bnQFAAAAG3JlYWRfdG90YWxfZnVuZHNfY29sbGVjdGlvbgQAAAAMbWlsbGlzZWNvbmRzAAAAAAAAAAPoBAAAAAZtaW51dGUJAABoAAAAAgAAAAAAAAAAPAUAAAAMbWlsbGlzZWNvbmRzBAAAABVyb3VuZF90aW1lX2RpZmZlcmVuY2UJAABlAAAAAgUAAAARcmVhZF9yb3VuZF9lbmRfdHMFAAAAE3JlYWRfcm91bmRfc3RhcnRfdHMEAAAAFmFkZGl0aW9uYWxfc2FmZV9ibG9ja3MAAAAAAAAAAAoEAAAAEmJsb2Nrc3RpbWV0b21hdHVyZQkAAGQAAAACCQAAZAAAAAIFAAAAFXJlYWRfSW5pdGlhdGVkX0hlaWdodAkAAGsAAAADBQAAABVyb3VuZF90aW1lX2RpZmZlcmVuY2UAAAAAAAAAAAEFAAAABm1pbnV0ZQUAAAAWYWRkaXRpb25hbF9zYWZlX2Jsb2NrcwQAAAAPcGVuZGluZ19yZWZ1bmRzCQAAZQAAAAIFAAAAG3JlYWRfdG90YWxfZnVuZHNfY29sbGVjdGlvbgUAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAMJAABmAAAAAgUAAAASYmxvY2tzdGltZXRvbWF0dXJlCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAABNwcmVzYWxlX25vdF9lbmRfZXJyAgAAABQgUGxlYXNlIFdhaXQgVW50aWwgfgkAAaQAAAABBQAAABJibG9ja3N0aW1ldG9tYXR1cmUCAAAAEyBIZWlnaHQgaXMgcmVhY2hlZC4DCQAAAAAAAAIFAAAAEXJlYWRfQWxsb3dfUmVmdW5kBwkAAAIAAAABBQAAAApyZWZ1bmRfZXJyAwkAAAAAAAACBQAAAB9yZWFkX3VzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkAAAAAAAAAAAACQAAAgAAAAECAAAAMFJlZnVuZCBoYXMgYmVlbiBBbHJlYWR5IENsYWltZWQgYnkgdGhpcyBBZGRyZXNzLgMDCQAAZgAAAAIFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMAAAAAAAAAAAAJAABmAAAAAgUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwAAAAAAAAAAAAcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAKY3VycmVudEtleQUAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAUAAAAFV0FWRVMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8CAAAADlBlbmRpbmdfUmVmdW5kBQAAAA9wZW5kaW5nX3JlZnVuZHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkAAAAAAAAAAAAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAPcmVmdW5kX2luaXRfbXNnBQAAAANuaWwDAwkAAGcAAAACAAAAAAAAAAAABQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAAZgAAAAIFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMAAAAAAAAAAAAHCQAAAgAAAAECAAAAZ1NvZnRDYXAgQWxyZWFkeSBSZWFjaGVkIGZvciB0aGlzIFJvdW5kLiBQbGVhc2UgQ2xpY2sgb24gJ0NsYWltIFRva2VucycgRnVuY3Rpb24gdG8gUmVjZWl2ZSBZb3VyIFRva2Vucy4DAwkAAGcAAAACAAAAAAAAAAAABQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAAZwAAAAIAAAAAAAAAAAAFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMHCQAAAgAAAAECAAAAXlNvZnRDYXAgYW5kIEhhcmQgQWxyZWFkeSBSZWFjaGVkIGZvciB0aGlzIFJvdW5kLiBQbGVhc2UgQ2xpY2sgb24gQ2xhaW0gdG8gUmVjZWl2ZSBZb3VyIFRva2Vucy4JAAACAAAAAQIAAAASV3JvbmcgRW50cnkgRm91bmQuAAAAAWkBAAAADENsYWltX1Rva2VucwAAAAEAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAVzY2FsZQAAAAAABfXhAAQAAAAUcmVhZF9zb2Z0X2NhcF9zdGF0dXMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX3NvZnRjYXBfc3RhdHVzAgAAADBTb2Z0Q2FwIFN0YXR1cyBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfaGFyZF9jYXBfc3RhdHVzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19oYXJkY2FwX3N0YXR1cwIAAAAwSGFyZENhcCBTdGF0dXMgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABZyZWFkX3JvdW5kX3Rva2VuX3ByaWNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADF9Ub2tlbl9QcmljZQIAAAAtVG9rZW4gUHJpY2Ugbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAAB9yZWFkX3VzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQIAAAA7Tm8gRGVwb3NpdCB3YXMgbWFkZSBieSB0aGlzIEFkZHJlc3MgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFmNhbGN1bGF0ZV90b3RhbF90b2tlbnMJAABrAAAAAwUAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAUAAAAFc2NhbGUFAAAAFnJlYWRfcm91bmRfdG9rZW5fcHJpY2UEAAAAGHVzZXJfdG9rZW5zX2NsYWltX2Ftb3VudAkAAGsAAAADBQAAAB9yZWFkX3VzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkBQAAAAVzY2FsZQUAAAAWcmVhZF9yb3VuZF90b2tlbl9wcmljZQQAAAAZcmVhZF90b3RhbF90b2tlbnNfY2xhaW1lZAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX1Rva2Vuc19DbGFpbWVkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFHRvdGFsX3Rva2Vuc19jbGFpbWVkCQAAZAAAAAIFAAAAGXJlYWRfdG90YWxfdG9rZW5zX2NsYWltZWQFAAAAGHVzZXJfdG9rZW5zX2NsYWltX2Ftb3VudAQAAAAWcGVuZGluZ190b2tlbnNfY2xhaW1lZAkAAGUAAAACBQAAABZjYWxjdWxhdGVfdG90YWxfdG9rZW5zBQAAABh1c2VyX3Rva2Vuc19jbGFpbV9hbW91bnQDCQAAAAAAAAIFAAAAFHJlYWRfc29mdF9jYXBfc3RhdHVzAgAAAAJObwkAAAIAAAABAgAAAEZObyBUb2tlbnMgQ0xhaW0sYXMgU29mdENhcCBBbW91bnQgZGlkbid0IHJlYWNoIG51bWJlcnMgZm9yIHRoaXMgUm91bmQuAwMJAAAAAAAAAgUAAAAUcmVhZF9zb2Z0X2NhcF9zdGF0dXMCAAAAA1llcwYJAAAAAAAAAgUAAAAUcmVhZF9oYXJkX2NhcF9zdGF0dXMCAAAAA1llcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19Ub2tlbnNfQ2xhaW1lZAUAAAAUdG90YWxfdG9rZW5zX2NsYWltZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfUGVuZGluZ19Ub2tlbnNfQ2xhaW1lZAUAAAAWcGVuZGluZ190b2tlbnNfY2xhaW1lZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAApjdXJyZW50S2V5BQAAABh1c2VyX3Rva2Vuc19jbGFpbV9hbW91bnQFAAAAC0JNTF9Ub2tlbklEBQAAAANuaWwJAAACAAAAAQIAAAASV3JvbmcgRW50cnkgRm91bmQuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXm37KrV", "height": 2710253, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9HPJLbSu5MFyiZH7h1Ypu9Xo1vbHMhk11UKKvkzXZWVz Next: J2Wp4UMQzSmPTuoCbDDJNXpNWNdFRVJxcy67cG8GUkqx Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = base58' | |
4 | + | let a = base58'' | |
5 | 5 | ||
6 | - | let b = | |
6 | + | let b = base58'GKmJ6BchUgQfwKp4mp5eX8Y9xLioYRm6e1gDfFgdAcCr' | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = addressFromPublicKey(b) | |
9 | 9 | ||
10 | - | let d = " | |
10 | + | let d = "Start Timestamp can't be less than last block Timestamp." | |
11 | 11 | ||
12 | - | let e = " | |
12 | + | let e = "End Timestamp can't be less than or equal to Start Timestamp" | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "Token Price can't be less than or Zero" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "Soft Cap Amount can't be more than Hard Cap Amount." | |
17 | 17 | ||
18 | - | let h = "<h1> | |
18 | + | let h = "<h1>Presale Order Submitted Successfully!</h1><br>" | |
19 | 19 | ||
20 | - | let i = " | |
20 | + | let i = "<h1>PreSale Parameters Submitted Successfully!</h1><br>" | |
21 | 21 | ||
22 | - | let j = " | |
22 | + | let j = "DApp Need WAVES Token as Attach payment[1]." | |
23 | 23 | ||
24 | - | let k = " | |
24 | + | let k = "Attached payment[1] is less than token price " | |
25 | 25 | ||
26 | - | let l = " | |
26 | + | let l = "Dapp will start Pre-Sale at Timestamp " | |
27 | 27 | ||
28 | - | let m = " | |
28 | + | let m = "Minimum 0.1 WAVES required on Your Address, Please hold min. 0.1 WAVES on your Address to place order." | |
29 | 29 | ||
30 | - | let n = "Pre-Sale is | |
30 | + | let n = "Pre-Sale is over for this Round." | |
31 | 31 | ||
32 | - | let o = " | |
32 | + | let o = "Pre-Sale is not over for this Round." | |
33 | 33 | ||
34 | - | let p = " | |
34 | + | let p = "Softcap or Hard Cap already Reached or probably PreSale was Set with False to Refund, so no Refund allowed for this Round." | |
35 | 35 | ||
36 | - | @Callable(q) | |
37 | - | func SetPreSaleParameters (r,s,t,u,v,w) = { | |
38 | - | let x = r | |
36 | + | let q = "<h1>Refund Received Successfully!.</h1><br>" | |
37 | + | ||
38 | + | @Callable(r) | |
39 | + | func SetPreSaleParameters (s,t,u,v,w,x) = { | |
39 | 40 | let y = s | |
40 | - | let z = { | |
41 | - | let A = getInteger(this, "Current_Funding_Round") | |
42 | - | if ($isInstanceOf(A, "Int")) | |
41 | + | let z = t | |
42 | + | let A = { | |
43 | + | let B = getInteger(this, "Current_Funding_Round") | |
44 | + | if ($isInstanceOf(B, "Int")) | |
43 | 45 | then { | |
44 | - | let | |
45 | - | | |
46 | + | let C = B | |
47 | + | C | |
46 | 48 | } | |
47 | 49 | else 0 | |
48 | 50 | } | |
49 | - | let | |
50 | - | if (( | |
51 | - | then throw((("This Address is not Authorized. Only " + toString( | |
52 | - | else if ((lastBlock.timestamp > | |
53 | - | then throw( | |
54 | - | else if ((size(toString( | |
51 | + | let D = (A + 1) | |
52 | + | if ((r.caller != c)) | |
53 | + | then throw((("This Address is not Authorized. Only " + toString(c)) + " is Authorized Address to Sign it.")) | |
54 | + | else if ((lastBlock.timestamp > s)) | |
55 | + | then throw(d) | |
56 | + | else if ((size(toString(s)) != 13)) | |
55 | 57 | then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
56 | - | else if ((size(toString( | |
58 | + | else if ((size(toString(t)) != 13)) | |
57 | 59 | then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
58 | - | else if ((1 > | |
59 | - | then throw( | |
60 | - | else if (( | |
61 | - | then throw( | |
62 | - | else if (( | |
63 | - | then throw( | |
64 | - | else [IntegerEntry("Current_Funding_Round", | |
60 | + | else if ((1 > u)) | |
61 | + | then throw(f) | |
62 | + | else if ((y >= z)) | |
63 | + | then throw(e) | |
64 | + | else if ((v > w)) | |
65 | + | then throw(g) | |
66 | + | else [IntegerEntry("Current_Funding_Round", D), IntegerEntry((toString(D) + "_Presale_Start_TimeStamp"), y), IntegerEntry((toString(D) + "_Presale_End_TimeStamp"), z), IntegerEntry((toString(D) + "_Token_Price"), u), IntegerEntry((toString(D) + "_Soft_Cap_Amount"), v), IntegerEntry((toString(D) + "_Hard_Cap_Amount"), w), IntegerEntry((toString(D) + "_Initiated_Height"), height), BooleanEntry((toString(D) + "_Allow_Refund"), x), StringEntry("message", i)] | |
65 | 67 | } | |
66 | 68 | ||
67 | 69 | ||
68 | 70 | ||
69 | - | @Callable( | |
70 | - | func PlacePresaleOrder ( | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | let | |
76 | - | let | |
77 | - | let | |
78 | - | let | |
79 | - | let | |
80 | - | then | |
81 | - | else throw( | |
82 | - | let | |
83 | - | let | |
84 | - | if ($isInstanceOf( | |
71 | + | @Callable(r) | |
72 | + | func PlacePresaleOrder (E) = { | |
73 | + | let F = valueOrErrorMessage(getInteger(this, (toString(E) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
74 | + | let G = valueOrErrorMessage(getInteger(this, (toString(E) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
75 | + | let H = valueOrErrorMessage(getInteger(this, (toString(E) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
76 | + | let I = valueOrErrorMessage(getInteger(this, (toString(E) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
77 | + | let J = valueOrErrorMessage(getInteger(this, (toString(E) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
78 | + | let K = valueOrErrorMessage(getBoolean(this, (toString(E) + "_Allow_Refund")), "Refund is not set for this Presale Round.") | |
79 | + | let L = unit | |
80 | + | let M = toBase58String(r.caller.bytes) | |
81 | + | let N = if ((size(r.payments) == 1)) | |
82 | + | then r.payments[0] | |
83 | + | else throw(j) | |
84 | + | let O = { | |
85 | + | let B = getInteger(this, (toString(E) + "_Funds_Collection")) | |
86 | + | if ($isInstanceOf(B, "Int")) | |
85 | 87 | then { | |
86 | - | let | |
87 | - | | |
88 | + | let C = B | |
89 | + | C | |
88 | 90 | } | |
89 | 91 | else 0 | |
90 | 92 | } | |
91 | - | let | |
92 | - | let | |
93 | - | let | |
94 | - | if ($isInstanceOf( | |
93 | + | let P = (O + N.amount) | |
94 | + | let Q = { | |
95 | + | let B = getInteger(this, (toString(E) + "_total_auto_withdraw_txns")) | |
96 | + | if ($isInstanceOf(B, "Int")) | |
95 | 97 | then { | |
96 | - | let | |
97 | - | | |
98 | + | let C = B | |
99 | + | C | |
98 | 100 | } | |
99 | 101 | else 0 | |
100 | 102 | } | |
101 | - | let | |
102 | - | let | |
103 | - | let | |
104 | - | if ($isInstanceOf( | |
103 | + | let R = (Q + 1) | |
104 | + | let S = { | |
105 | + | let B = getInteger(this, (toString(E) + "_total_txns")) | |
106 | + | if ($isInstanceOf(B, "Int")) | |
105 | 107 | then { | |
106 | - | let | |
107 | - | | |
108 | + | let C = B | |
109 | + | C | |
108 | 110 | } | |
109 | 111 | else 0 | |
110 | 112 | } | |
111 | - | let | |
112 | - | let | |
113 | - | let | |
114 | - | if ($isInstanceOf( | |
113 | + | let T = (S + 1) | |
114 | + | let U = { | |
115 | + | let B = getInteger(this, ((toString(E) + "_") + M)) | |
116 | + | if ($isInstanceOf(B, "Int")) | |
115 | 117 | then { | |
116 | - | let | |
117 | - | | |
118 | + | let C = B | |
119 | + | C | |
118 | 120 | } | |
119 | 121 | else 0 | |
120 | 122 | } | |
121 | - | let | |
122 | - | let | |
123 | - | let | |
124 | - | if (isDefined( | |
125 | - | then throw( | |
126 | - | else if (( | |
127 | - | then throw(((( | |
128 | - | else if (( | |
129 | - | then throw(( | |
130 | - | else if ((lastBlock.timestamp > | |
131 | - | then throw( | |
132 | - | else if (if (( | |
133 | - | then ( | |
123 | + | let V = (U + N.amount) | |
124 | + | let W = (I - P) | |
125 | + | let X = (J - P) | |
126 | + | if (isDefined(N.assetId)) | |
127 | + | then throw(j) | |
128 | + | else if ((F > N.amount)) | |
129 | + | then throw((((k + "[") + toString(F)) + "/10^8.]")) | |
130 | + | else if ((G > lastBlock.timestamp)) | |
131 | + | then throw((l + toString(G))) | |
132 | + | else if ((lastBlock.timestamp > H)) | |
133 | + | then throw(n) | |
134 | + | else if (if ((W > 0)) | |
135 | + | then (X > 0) | |
134 | 136 | else false) | |
135 | - | then [IntegerEntry((toString( | |
136 | - | else if (if (if ((0 >= | |
137 | - | then ( | |
137 | + | then [IntegerEntry((toString(E) + "_Funds_Collection"), P), IntegerEntry(((toString(E) + "_") + M), V), IntegerEntry((toString(E) + "_total_auto_withdraw_txns"), Q), IntegerEntry((toString(E) + "_total_txns"), T), IntegerEntry((toString(E) + "_pending_softcap_status"), W), IntegerEntry((toString(E) + "_pending_hardcap_status"), X), StringEntry((toString(E) + "_softcap_status"), "No"), StringEntry((toString(E) + "_hardcap_status"), "No"), BooleanEntry((toString(E) + "_Allow_Refund"), K), StringEntry("message", h)] | |
138 | + | else if (if (if ((0 >= W)) | |
139 | + | then (X > 0) | |
138 | 140 | else false) | |
139 | - | then ( | |
141 | + | then (R == 1) | |
140 | 142 | else false) | |
141 | - | then [IntegerEntry((toString( | |
142 | - | else if (if (if ((0 >= | |
143 | - | then ( | |
143 | + | then [IntegerEntry((toString(E) + "_Funds_Collection"), P), IntegerEntry(((toString(E) + "_") + M), V), IntegerEntry((toString(E) + "_total_auto_withdraw_txns"), R), IntegerEntry((toString(E) + "_total_txns"), T), IntegerEntry((toString(E) + "_pending_softcap_status"), W), IntegerEntry((toString(E) + "_pending_hardcap_status"), X), StringEntry((toString(E) + "_softcap_status"), "Yes"), StringEntry((toString(E) + "_hardcap_status"), "No"), BooleanEntry((toString(E) + "_Allow_Refund"), false), ScriptTransfer(c, P, unit), StringEntry("message", h)] | |
144 | + | else if (if (if ((0 >= W)) | |
145 | + | then (X > 0) | |
144 | 146 | else false) | |
145 | - | then ( | |
147 | + | then (R > 1) | |
146 | 148 | else false) | |
147 | - | then [IntegerEntry((toString( | |
148 | - | else if (if (if ((0 >= | |
149 | - | then (0 >= | |
149 | + | then [IntegerEntry((toString(E) + "_Funds_Collection"), P), IntegerEntry(((toString(E) + "_") + M), V), IntegerEntry((toString(E) + "_total_auto_withdraw_txns"), R), IntegerEntry((toString(E) + "_total_txns"), T), IntegerEntry((toString(E) + "_pending_softcap_status"), W), IntegerEntry((toString(E) + "_pending_hardcap_status"), X), StringEntry((toString(E) + "_softcap_status"), "Yes"), StringEntry((toString(E) + "_hardcap_status"), "No"), BooleanEntry((toString(E) + "_Allow_Refund"), false), ScriptTransfer(c, N.amount, unit), StringEntry("message", h)] | |
150 | + | else if (if (if ((0 >= W)) | |
151 | + | then (0 >= X) | |
150 | 152 | else false) | |
151 | - | then ( | |
153 | + | then (R == 1) | |
152 | 154 | else false) | |
153 | - | then [IntegerEntry((toString( | |
154 | - | else if (if (if ((0 >= | |
155 | - | then (0 >= | |
155 | + | then [IntegerEntry((toString(E) + "_Funds_Collection"), P), IntegerEntry(((toString(E) + "_") + M), V), IntegerEntry((toString(E) + "_total_auto_withdraw_txns"), R), IntegerEntry((toString(E) + "_total_txns"), T), IntegerEntry((toString(E) + "_pending_softcap_status"), W), IntegerEntry((toString(E) + "_pending_hardcap_status"), X), StringEntry((toString(E) + "_softcap_status"), "Yes"), StringEntry((toString(E) + "_hardcap_status"), "Yes"), BooleanEntry((toString(E) + "_Allow_Refund"), false), ScriptTransfer(c, P, unit), StringEntry("message", h)] | |
156 | + | else if (if (if ((0 >= W)) | |
157 | + | then (0 >= X) | |
156 | 158 | else false) | |
157 | - | then ( | |
159 | + | then (R > 1) | |
158 | 160 | else false) | |
159 | - | then [IntegerEntry((toString( | |
161 | + | then [IntegerEntry((toString(E) + "_Funds_Collection"), P), IntegerEntry(((toString(E) + "_") + M), V), IntegerEntry((toString(E) + "_total_auto_withdraw_txns"), R), IntegerEntry((toString(E) + "_total_txns"), T), IntegerEntry((toString(E) + "_pending_softcap_status"), W), IntegerEntry((toString(E) + "_pending_hardcap_status"), X), StringEntry((toString(E) + "_softcap_status"), "Yes"), StringEntry((toString(E) + "_hardcap_status"), "Yes"), BooleanEntry((toString(E) + "_Allow_Refund"), false), ScriptTransfer(c, N.amount, unit), StringEntry("message", h)] | |
160 | 162 | else throw("Error.") | |
161 | 163 | } | |
162 | 164 | ||
163 | 165 | ||
164 | 166 | ||
165 | - | @Callable( | |
166 | - | func Refund ( | |
167 | - | let | |
168 | - | let | |
169 | - | let | |
170 | - | let | |
171 | - | let | |
172 | - | let | |
173 | - | let | |
174 | - | let | |
175 | - | let | |
176 | - | let | |
177 | - | let | |
178 | - | let | |
179 | - | let | |
180 | - | let | |
181 | - | let | |
182 | - | let | |
183 | - | let | |
184 | - | let | |
185 | - | let | |
186 | - | if (( | |
187 | - | then throw(((( | |
188 | - | else if (( | |
189 | - | then throw( | |
190 | - | else if (( | |
167 | + | @Callable(r) | |
168 | + | func Refund (E) = { | |
169 | + | let L = unit | |
170 | + | let M = toBase58String(r.caller.bytes) | |
171 | + | let Y = valueOrErrorMessage(getInteger(this, (toString(E) + "_Initiated_Height")), "Initiated Height not Found for this Presale Round.") | |
172 | + | let F = valueOrErrorMessage(getInteger(this, (toString(E) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
173 | + | let G = valueOrErrorMessage(getInteger(this, (toString(E) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
174 | + | let H = valueOrErrorMessage(getInteger(this, (toString(E) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
175 | + | let I = valueOrErrorMessage(getInteger(this, (toString(E) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
176 | + | let J = valueOrErrorMessage(getInteger(this, (toString(E) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
177 | + | let Z = valueOrErrorMessage(getInteger(this, (toString(E) + "_Funds_Collection")), "Total Funds Collection not Found for this Presale Round.") | |
178 | + | let U = valueOrErrorMessage(getInteger(this, ((toString(E) + "_") + M)), "No Deposit was made by this Address for this Presale Round.") | |
179 | + | let K = valueOrErrorMessage(getBoolean(this, (toString(E) + "_Allow_Refund")), "Allow_Refund has no Boolen Entry for this Presale Round.") | |
180 | + | let W = (I - Z) | |
181 | + | let X = (J - Z) | |
182 | + | let aa = 1000 | |
183 | + | let ab = (60 * aa) | |
184 | + | let ac = (H - G) | |
185 | + | let ad = 10 | |
186 | + | let ae = ((Y + fraction(ac, 1, ab)) + ad) | |
187 | + | let af = (Z - U) | |
188 | + | if ((ae > lastBlock.height)) | |
189 | + | then throw((((o + " Please Wait Until ~") + toString(ae)) + " Height is reached.")) | |
190 | + | else if ((K == false)) | |
191 | + | then throw(p) | |
192 | + | else if ((U == 0)) | |
191 | 193 | then throw("Refund has been Already Claimed by this Address.") | |
192 | - | else if (if (( | |
193 | - | then ( | |
194 | + | else if (if ((W > 0)) | |
195 | + | then (X > 0) | |
194 | 196 | else false) | |
195 | - | then [ScriptTransfer(addressFromStringValue( | |
196 | - | else if (if ((0 >= | |
197 | - | then ( | |
197 | + | then [ScriptTransfer(addressFromStringValue(M), U, L), IntegerEntry(((toString(E) + "_") + "Pending_Refund"), af), IntegerEntry(((toString(E) + "_") + M), 0), StringEntry("message", q)] | |
198 | + | else if (if ((0 >= W)) | |
199 | + | then (X > 0) | |
198 | 200 | else false) | |
199 | - | then throw("SoftCap Already Reached for this Round. Please Click on Claim to Receive Your Tokens.") | |
200 | - | else if (if ((0 >= | |
201 | - | then (0 >= | |
201 | + | then throw("SoftCap Already Reached for this Round. Please Click on 'Claim Tokens' Function to Receive Your Tokens.") | |
202 | + | else if (if ((0 >= W)) | |
203 | + | then (0 >= X) | |
202 | 204 | else false) | |
203 | 205 | then throw("SoftCap and Hard Already Reached for this Round. Please Click on Claim to Receive Your Tokens.") | |
204 | 206 | else throw("Wrong Entry Found.") | |
205 | 207 | } | |
206 | 208 | ||
207 | 209 | ||
208 | - | @Verifier(af) | |
209 | - | func ag () = sigVerify(af.bodyBytes, af.proofs[0], af.senderPublicKey) | |
210 | + | ||
211 | + | @Callable(r) | |
212 | + | func Claim_Tokens (E) = { | |
213 | + | let M = toBase58String(r.caller.bytes) | |
214 | + | let ag = 100000000 | |
215 | + | let ah = valueOrErrorMessage(getString(this, (toString(E) + "_softcap_status")), "SoftCap Status not Found for this Presale Round.") | |
216 | + | let ai = valueOrErrorMessage(getString(this, (toString(E) + "_hardcap_status")), "HardCap Status not Found for this Presale Round.") | |
217 | + | let F = valueOrErrorMessage(getInteger(this, (toString(E) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
218 | + | let U = valueOrErrorMessage(getInteger(this, ((toString(E) + "_") + M)), "No Deposit was made by this Address for this Presale Round.") | |
219 | + | let aj = fraction(U, ag, F) | |
220 | + | let ak = fraction(U, ag, F) | |
221 | + | let al = { | |
222 | + | let B = getInteger(this, (toString(E) + "_Tokens_Claimed")) | |
223 | + | if ($isInstanceOf(B, "Int")) | |
224 | + | then { | |
225 | + | let C = B | |
226 | + | C | |
227 | + | } | |
228 | + | else 0 | |
229 | + | } | |
230 | + | let am = (al + ak) | |
231 | + | let an = (aj - ak) | |
232 | + | if ((ah == "No")) | |
233 | + | then throw("No Tokens CLaim,as SoftCap Amount didn't reach numbers for this Round.") | |
234 | + | else if (if ((ah == "Yes")) | |
235 | + | then true | |
236 | + | else (ai == "Yes")) | |
237 | + | then [IntegerEntry((toString(E) + "_Tokens_Claimed"), am), IntegerEntry((toString(E) + "_Pending_Tokens_Claimed"), an), ScriptTransfer(addressFromStringValue(M), ak, a)] | |
238 | + | else throw("Wrong Entry Found.") | |
239 | + | } | |
240 | + | ||
241 | + | ||
242 | + | @Verifier(ao) | |
243 | + | func ap () = sigVerify(ao.bodyBytes, ao.proofs[0], ao.senderPublicKey) | |
210 | 244 |
github/deemru/w8io/169f3d6 188.45 ms ◑![]()