tx · 8CgHeSieBEy7v8rreSezF1YQYa4b67MHrCV97yToKfiN 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA: -0.01500000 Waves 2023.08.04 10:45 [2695553] smart account 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA > SELF 0.00000000 Waves
{ "type": 13, "id": "8CgHeSieBEy7v8rreSezF1YQYa4b67MHrCV97yToKfiN", "fee": 1500000, "feeAssetId": null, "timestamp": 1691135206358, "version": 2, "chainId": 84, "sender": "3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA", "senderPublicKey": "CiRX9ubobzbD36ZwTyuBFiPnPkmzMQ7GDsF3hMoVbcVR", "proofs": [ "iWUPQWwySvbuP3UPbye9ioP1wCrihccN7itg3tjdeFg5q2BTL4g6RyFzkQfeoFMxUtfafy1d3RwmQ5UBBsxUVxv" ], "script": "base64:AAIFAAAAAAAAABEIAhIICgYBAQEBAQQSAwoBAQAAAAwAAAAAI3ByZXNhbGVfdGltZXN0YW1wX2NvbnRyb2xsZXJfcHVia2V5AQAAACDjrdey1Io21qI8AxObYBZMNWPHMCK947HpXHsKae68IwAAAAASY29udHJvbGxlcl9hZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAACNwcmVzYWxlX3RpbWVzdGFtcF9jb250cm9sbGVyX3B1YmtleQAAAAAHdHNlcnJvcgIAAAA8RW5kIFRpbWVzdGFtcCBjYW4ndCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gU3RhcnQgVGltZXN0YW1wAAAAAApwcmljZWVycm9yAgAAACZUb2tlbiBQcmljZSBjYW4ndCBiZSBsZXNzIHRoYW4gb3IgWmVybwAAAAAIY2FwZXJyb3ICAAAAM1NvZnQgQ2FwIEFtb3VudCBjYW4ndCBiZSBtb3JlIHRoYW4gSGFyZCBDYXAgQW1vdW50LgAAAAAIb3JkZXJtc2cCAAAAKjxoMT5PcmRlciBTdWJtaXR0ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgAAAAAQcHJlc2FsZV9pbml0X21zZwIAAAA3PGgxPlByZVNhbGUgUGFyYW1ldGVycyBTdWJtaXR0ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgAAAAAJcHltdGVycm9yAgAAACtEQXBwIE5lZWQgV0FWRVMgVG9rZW4gYXMgQXR0YWNoIHBheW1lbnRbMV0uAAAAAA5vcmRlcnB5bXRlcnJvcgIAAAAtQXR0YWNoZWQgcGF5bWVudFsxXSBpcyBsZXNzIHRoYW4gdG9rZW4gcHJpY2UgAAAAAAxsYXVuY2hfZXJyb3ICAAAAJkRhcHAgd2lsbCBzdGFydCBQcmUtU2FsZSBhdCBUaW1lc3RhbXAgAAAAAAttaW5iYWxlcnJvcgIAAABmTWluaW11bSAwLjEgV0FWRVMgcmVxdWlyZWQgb24gWW91ciBBZGRyZXNzLCBQbGVhc2UgaG9sZCBtaW4uIDAuMSBXQVZFUyBvbiB5b3VyIEFkZHJlc3MgdG8gcGxhY2Ugb3JkZXIuAAAAAAd2b3RlRXJyAgAAACBQcmUtU2FsZSBpcyBvdmVyIGZvciB0aGlzIFJvdW5kLgAAAAIAAAABaQEAAAAUU2V0UHJlU2FsZVBhcmFtZXRlcnMAAAAGAAAAF1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wAAAAFVByZXNhbGVfRW5kX1RpbWVTdGFtcAAAAAtUb2tlbl9QcmljZQAAAA9Tb2Z0X0NhcF9BbW91bnQAAAAPSGFyZF9DYXBfQW1vdW50AAAADEFsbG93X1JlZnVuZAQAAAAHU3RhcnRUUwUAAAAXUHJlc2FsZV9TdGFydF9UaW1lU3RhbXAEAAAABUVuZFRTBQAAABVQcmVzYWxlX0VuZF9UaW1lU3RhbXAEAAAAEnJlYWRfZnVuZGluZ19yb3VuZAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABVDdXJyZW50X0Z1bmRpbmdfUm91bmQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAANY3VycmVudF9yb3VuZAkAAGQAAAACBQAAABJyZWFkX2Z1bmRpbmdfcm91bmQAAAAAAAAAAAEDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABJjb250cm9sbGVyX2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAAXUHJlc2FsZV9TdGFydF9UaW1lU3RhbXAAAAAAAAAAAA0JAAACAAAAAQIAAABvU3RhcnQgVGltZXN0YW1wIGlzIFdyb25nLiBQbGVhc2UgRW50ZXIgYSBWYWxpZCBUaW1lc3RhbXAuIFByb2JhYmx5IHlvdSBlbnRlcmVkIGFuIFRpbWVzdGFtcCBsZXNzIHRoYW4gMTMgQ2hhcnMuAwkBAAAAAiE9AAAAAgkAATEAAAABCQABpAAAAAEFAAAAFVByZXNhbGVfRW5kX1RpbWVTdGFtcAAAAAAAAAAADQkAAAIAAAABAgAAAG1FbmQgVGltZXN0YW1wIGlzIFdyb25nLiBQbGVhc2UgRW50ZXIgYSBWYWxpZCBUaW1lc3RhbXAuIFByb2JhYmx5IHlvdSBlbnRlcmVkIGFuIFRpbWVzdGFtcCBsZXNzIHRoYW4gMTMgQ2hhcnMuAwkAAGYAAAACAAAAAAAAAAABBQAAAAtUb2tlbl9QcmljZQkAAAIAAAABBQAAAApwcmljZWVycm9yAwkAAGcAAAACBQAAAAdTdGFydFRTBQAAAAVFbmRUUwkAAAIAAAABBQAAAAd0c2Vycm9yAwkAAGYAAAACBQAAAA9Tb2Z0X0NhcF9BbW91bnQFAAAAD0hhcmRfQ2FwX0Ftb3VudAkAAAIAAAABBQAAAAhjYXBlcnJvcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAVQ3VycmVudF9GdW5kaW5nX1JvdW5kBQAAAA1jdXJyZW50X3JvdW5kCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAANY3VycmVudF9yb3VuZAIAAAAYX1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wBQAAAAdTdGFydFRTCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAANY3VycmVudF9yb3VuZAIAAAAWX1ByZXNhbGVfRW5kX1RpbWVTdGFtcAUAAAAFRW5kVFMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAA1jdXJyZW50X3JvdW5kAgAAAAxfVG9rZW5fUHJpY2UFAAAAC1Rva2VuX1ByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAANY3VycmVudF9yb3VuZAIAAAAQX1NvZnRfQ2FwX0Ftb3VudAUAAAAPU29mdF9DYXBfQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAANY3VycmVudF9yb3VuZAIAAAAQX0hhcmRfQ2FwX0Ftb3VudAUAAAAPSGFyZF9DYXBfQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAANY3VycmVudF9yb3VuZAIAAAARX0luaXRpYXRlZF9IZWlnaHQFAAAABmhlaWdodAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAABBwcmVzYWxlX2luaXRfbXNnBQAAAANuaWwAAAABaQEAAAARUGxhY2VQcmVzYWxlT3JkZXIAAAABAAAAE0VudGVyX1ByZXNhbGVfUm91bmQEAAAAFnJlYWRfcm91bmRfdG9rZW5fcHJpY2UJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAMX1Rva2VuX1ByaWNlAgAAAC1Ub2tlbiBQcmljZSBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAE3JlYWRfcm91bmRfc3RhcnRfdHMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAYX1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wAgAAADFTdGFydCBUaW1lc3RhbXAgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABFyZWFkX3JvdW5kX2VuZF90cwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABZfUHJlc2FsZV9FbmRfVGltZVN0YW1wAgAAAC9FbmQgVGltZXN0YW1wIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAUcmVhZF9Tb2Z0X0NhcF9BbW91bnQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAQX1NvZnRfQ2FwX0Ftb3VudAIAAAAxU29mdCBDYXAgQW1vdW50IG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAUcmVhZF9IYXJkX0NhcF9BbW91bnQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAQX0hhcmRfQ2FwX0Ftb3VudAIAAAAxSGFyZCBDYXAgQW1vdW50IG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAFV0FWRVMFAAAABHVuaXQEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAEFAAAACXB5bXRlcnJvcgQAAAAVcmVhZF9mdW5kc19jb2xsZWN0aW9uBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfRnVuZHNfQ29sbGVjdGlvbgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uCQAAZAAAAAIFAAAAFXJlYWRfZnVuZHNfY29sbGVjdGlvbggFAAAAA3BtdAAAAAZhbW91bnQEAAAAD3JlYWRfdG90YWxfdHhucwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAALX3RvdGFsX3R4bnMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAKdG90YWxfdHhucwkAAGQAAAACBQAAAA9yZWFkX3RvdGFsX3R4bnMAAAAAAAAAAAEEAAAAH3JlYWRfdXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABp1c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAkAAGQAAAACBQAAAB9yZWFkX3VzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCAUAAAADcG10AAAABmFtb3VudAQAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkAAGUAAAACBQAAABRyZWFkX1NvZnRfQ2FwX0Ftb3VudAUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgQAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwkAAGUAAAACBQAAABRyZWFkX0hhcmRfQ2FwX0Ftb3VudAUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQUAAAAJcHltdGVycm9yAwkAAGYAAAACBQAAABZyZWFkX3JvdW5kX3Rva2VuX3ByaWNlCAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA5vcmRlcnB5bXRlcnJvcgIAAAABWwkAAaQAAAABBQAAABZyZWFkX3JvdW5kX3Rva2VuX3ByaWNlAgAAAAcvMTBeOC5dAwkAAGYAAAACBQAAABNyZWFkX3JvdW5kX3N0YXJ0X3RzCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAADGxhdW5jaF9lcnJvcgkAAaQAAAABBQAAABNyZWFkX3JvdW5kX3N0YXJ0X3RzAwMJAABmAAAAAgUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwAAAAAAAAAAAAkAAGYAAAACBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzAAAAAAAAAAAABwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9GdW5kc19Db2xsZWN0aW9uBQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfBQAAAApjdXJyZW50S2V5BQAAABp1c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zBQAAAAp0b3RhbF90eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfc29mdGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19oYXJkY2FwX3N0YXR1cwUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX3NvZnRjYXBfc3RhdHVzAgAAAAJObwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX2hhcmRjYXBfc3RhdHVzAgAAAAJObwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAAhvcmRlcm1zZwUAAAADbmlsAwMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkAAGYAAAACBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzAAAAAAAAAAAABwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9GdW5kc19Db2xsZWN0aW9uBQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfBQAAAApjdXJyZW50S2V5BQAAABp1c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zBQAAAAp0b3RhbF90eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfc29mdGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19oYXJkY2FwX3N0YXR1cwUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX3NvZnRjYXBfc3RhdHVzAgAAAANZZXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19oYXJkY2FwX3N0YXR1cwIAAAACTm8JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAIb3JkZXJtc2cFAAAAA25pbAMDCQAAZwAAAAIAAAAAAAAAAAAFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfRnVuZHNfQ29sbGVjdGlvbgUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQUAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAtfdG90YWxfdHhucwUAAAAKdG90YWxfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAF19wZW5kaW5nX3NvZnRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfaGFyZGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19zb2Z0Y2FwX3N0YXR1cwIAAAADWWVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9faGFyZGNhcF9zdGF0dXMCAAAAA1llcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAAhvcmRlcm1zZwUAAAADbmlsCQAAAgAAAAECAAAABkVycm9yLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V57rQ2PQ==", "height": 2695553, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2ZJMrBW4bzkuYGB8nuugMNKymREuSuuxAE13Tx9Jt77B Next: EndAEq5on72hxZdrWyZ9jAey2poMktjm7UYsATNq5hWG Diff:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'GKmJ6BchUgQfwKp4mp5eX8Y9xLioYRm6e1gDfFgdAcCr' | |
26 | 26 | let l = "Pre-Sale is over for this Round." | |
27 | 27 | ||
28 | 28 | @Callable(m) | |
29 | - | func SetPreSaleParameters (n,o,p,q,r) = { | |
30 | - | let | |
31 | - | let | |
32 | - | let | |
33 | - | let | |
34 | - | if ($isInstanceOf( | |
29 | + | func SetPreSaleParameters (n,o,p,q,r,s) = { | |
30 | + | let t = n | |
31 | + | let u = o | |
32 | + | let v = { | |
33 | + | let w = getInteger(this, "Current_Funding_Round") | |
34 | + | if ($isInstanceOf(w, "Int")) | |
35 | 35 | then { | |
36 | - | let | |
37 | - | | |
36 | + | let x = w | |
37 | + | x | |
38 | 38 | } | |
39 | 39 | else 0 | |
40 | 40 | } | |
41 | - | let | |
41 | + | let y = (v + 1) | |
42 | 42 | if ((m.caller != b)) | |
43 | 43 | then throw((("This Address is not Authorized. Only " + toString(b)) + " is Authorized Address to Sign it.")) | |
44 | 44 | else if ((size(toString(n)) != 13)) | |
47 | 47 | then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
48 | 48 | else if ((1 > p)) | |
49 | 49 | then throw(d) | |
50 | - | else if (( | |
50 | + | else if ((t >= u)) | |
51 | 51 | then throw(c) | |
52 | 52 | else if ((q > r)) | |
53 | 53 | then throw(e) | |
54 | - | else [IntegerEntry("Current_Funding_Round", | |
54 | + | else [IntegerEntry("Current_Funding_Round", y), IntegerEntry((toString(y) + "_Presale_Start_TimeStamp"), t), IntegerEntry((toString(y) + "_Presale_End_TimeStamp"), u), IntegerEntry((toString(y) + "_Token_Price"), p), IntegerEntry((toString(y) + "_Soft_Cap_Amount"), q), IntegerEntry((toString(y) + "_Hard_Cap_Amount"), r), IntegerEntry((toString(y) + "_Initiated_Height"), height), StringEntry("message", g)] | |
55 | 55 | } | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | ||
59 | 59 | @Callable(m) | |
60 | - | func PlacePresaleOrder ( | |
61 | - | let | |
62 | - | let | |
63 | - | let | |
64 | - | let | |
65 | - | let | |
66 | - | let | |
67 | - | let | |
68 | - | let | |
60 | + | func PlacePresaleOrder (z) = { | |
61 | + | let A = valueOrErrorMessage(getInteger(this, (toString(z) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
62 | + | let B = valueOrErrorMessage(getInteger(this, (toString(z) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
63 | + | let C = valueOrErrorMessage(getInteger(this, (toString(z) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
64 | + | let D = valueOrErrorMessage(getInteger(this, (toString(z) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
65 | + | let E = valueOrErrorMessage(getInteger(this, (toString(z) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
66 | + | let F = unit | |
67 | + | let G = toBase58String(m.caller.bytes) | |
68 | + | let H = if ((size(m.payments) == 1)) | |
69 | 69 | then m.payments[0] | |
70 | 70 | else throw(h) | |
71 | - | let | |
72 | - | let | |
73 | - | if ($isInstanceOf( | |
71 | + | let I = { | |
72 | + | let w = getInteger(this, (toString(z) + "_Funds_Collection")) | |
73 | + | if ($isInstanceOf(w, "Int")) | |
74 | 74 | then { | |
75 | - | let | |
76 | - | | |
75 | + | let x = w | |
76 | + | x | |
77 | 77 | } | |
78 | 78 | else 0 | |
79 | 79 | } | |
80 | - | let | |
81 | - | let | |
82 | - | let | |
83 | - | if ($isInstanceOf( | |
80 | + | let J = (I + H.amount) | |
81 | + | let K = { | |
82 | + | let w = getInteger(this, (toString(z) + "_total_txns")) | |
83 | + | if ($isInstanceOf(w, "Int")) | |
84 | 84 | then { | |
85 | - | let | |
86 | - | | |
85 | + | let x = w | |
86 | + | x | |
87 | 87 | } | |
88 | 88 | else 0 | |
89 | 89 | } | |
90 | - | let | |
91 | - | let | |
92 | - | let | |
93 | - | if ($isInstanceOf( | |
90 | + | let L = (K + 1) | |
91 | + | let M = { | |
92 | + | let w = getInteger(this, ((toString(z) + "_") + G)) | |
93 | + | if ($isInstanceOf(w, "Int")) | |
94 | 94 | then { | |
95 | - | let | |
96 | - | | |
95 | + | let x = w | |
96 | + | x | |
97 | 97 | } | |
98 | 98 | else 0 | |
99 | 99 | } | |
100 | - | let | |
101 | - | let | |
102 | - | let | |
103 | - | if (isDefined( | |
100 | + | let N = (M + H.amount) | |
101 | + | let O = (D - J) | |
102 | + | let P = (E - J) | |
103 | + | if (isDefined(H.assetId)) | |
104 | 104 | then throw(h) | |
105 | - | else if (( | |
106 | - | then throw((((i + "[") + toString( | |
107 | - | else if (( | |
108 | - | then throw((j + toString( | |
109 | - | else if (if (( | |
110 | - | then ( | |
105 | + | else if ((A > H.amount)) | |
106 | + | then throw((((i + "[") + toString(A)) + "/10^8.]")) | |
107 | + | else if ((B > lastBlock.timestamp)) | |
108 | + | then throw((j + toString(B))) | |
109 | + | else if (if ((O > 0)) | |
110 | + | then (P > 0) | |
111 | 111 | else false) | |
112 | - | then [IntegerEntry((toString( | |
113 | - | else if (if ((0 >= | |
114 | - | then ( | |
112 | + | then [IntegerEntry((toString(z) + "_Funds_Collection"), J), IntegerEntry(((toString(z) + "_") + G), N), IntegerEntry((toString(z) + "_total_txns"), L), IntegerEntry((toString(z) + "_pending_softcap_status"), O), IntegerEntry((toString(z) + "_pending_hardcap_status"), P), StringEntry((toString(z) + "_softcap_status"), "No"), StringEntry((toString(z) + "_hardcap_status"), "No"), StringEntry("message", f)] | |
113 | + | else if (if ((0 >= O)) | |
114 | + | then (P > 0) | |
115 | 115 | else false) | |
116 | - | then [IntegerEntry((toString( | |
117 | - | else if (if ((0 >= | |
118 | - | then (0 >= | |
116 | + | then [IntegerEntry((toString(z) + "_Funds_Collection"), J), IntegerEntry(((toString(z) + "_") + G), N), IntegerEntry((toString(z) + "_total_txns"), L), IntegerEntry((toString(z) + "_pending_softcap_status"), O), IntegerEntry((toString(z) + "_pending_hardcap_status"), P), StringEntry((toString(z) + "_softcap_status"), "Yes"), StringEntry((toString(z) + "_hardcap_status"), "No"), StringEntry("message", f)] | |
117 | + | else if (if ((0 >= O)) | |
118 | + | then (0 >= P) | |
119 | 119 | else false) | |
120 | - | then [IntegerEntry((toString( | |
120 | + | then [IntegerEntry((toString(z) + "_Funds_Collection"), J), IntegerEntry(((toString(z) + "_") + G), N), IntegerEntry((toString(z) + "_total_txns"), L), IntegerEntry((toString(z) + "_pending_softcap_status"), O), IntegerEntry((toString(z) + "_pending_hardcap_status"), P), StringEntry((toString(z) + "_softcap_status"), "Yes"), StringEntry((toString(z) + "_hardcap_status"), "Yes"), StringEntry("message", f)] | |
121 | 121 | else throw("Error.") | |
122 | 122 | } | |
123 | 123 | ||
124 | 124 | ||
125 | - | @Verifier( | |
126 | - | func | |
125 | + | @Verifier(Q) | |
126 | + | func R () = sigVerify(Q.bodyBytes, Q.proofs[0], Q.senderPublicKey) | |
127 | 127 |
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'GKmJ6BchUgQfwKp4mp5eX8Y9xLioYRm6e1gDfFgdAcCr' | |
5 | 5 | ||
6 | 6 | let b = addressFromPublicKey(a) | |
7 | 7 | ||
8 | 8 | let c = "End Timestamp can't be less than or equal to Start Timestamp" | |
9 | 9 | ||
10 | 10 | let d = "Token Price can't be less than or Zero" | |
11 | 11 | ||
12 | 12 | let e = "Soft Cap Amount can't be more than Hard Cap Amount." | |
13 | 13 | ||
14 | 14 | let f = "<h1>Order Submitted Successfully!</h1><br>" | |
15 | 15 | ||
16 | 16 | let g = "<h1>PreSale Parameters Submitted Successfully!</h1><br>" | |
17 | 17 | ||
18 | 18 | let h = "DApp Need WAVES Token as Attach payment[1]." | |
19 | 19 | ||
20 | 20 | let i = "Attached payment[1] is less than token price " | |
21 | 21 | ||
22 | 22 | let j = "Dapp will start Pre-Sale at Timestamp " | |
23 | 23 | ||
24 | 24 | let k = "Minimum 0.1 WAVES required on Your Address, Please hold min. 0.1 WAVES on your Address to place order." | |
25 | 25 | ||
26 | 26 | let l = "Pre-Sale is over for this Round." | |
27 | 27 | ||
28 | 28 | @Callable(m) | |
29 | - | func SetPreSaleParameters (n,o,p,q,r) = { | |
30 | - | let | |
31 | - | let | |
32 | - | let | |
33 | - | let | |
34 | - | if ($isInstanceOf( | |
29 | + | func SetPreSaleParameters (n,o,p,q,r,s) = { | |
30 | + | let t = n | |
31 | + | let u = o | |
32 | + | let v = { | |
33 | + | let w = getInteger(this, "Current_Funding_Round") | |
34 | + | if ($isInstanceOf(w, "Int")) | |
35 | 35 | then { | |
36 | - | let | |
37 | - | | |
36 | + | let x = w | |
37 | + | x | |
38 | 38 | } | |
39 | 39 | else 0 | |
40 | 40 | } | |
41 | - | let | |
41 | + | let y = (v + 1) | |
42 | 42 | if ((m.caller != b)) | |
43 | 43 | then throw((("This Address is not Authorized. Only " + toString(b)) + " is Authorized Address to Sign it.")) | |
44 | 44 | else if ((size(toString(n)) != 13)) | |
45 | 45 | then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
46 | 46 | else if ((size(toString(o)) != 13)) | |
47 | 47 | then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
48 | 48 | else if ((1 > p)) | |
49 | 49 | then throw(d) | |
50 | - | else if (( | |
50 | + | else if ((t >= u)) | |
51 | 51 | then throw(c) | |
52 | 52 | else if ((q > r)) | |
53 | 53 | then throw(e) | |
54 | - | else [IntegerEntry("Current_Funding_Round", | |
54 | + | else [IntegerEntry("Current_Funding_Round", y), IntegerEntry((toString(y) + "_Presale_Start_TimeStamp"), t), IntegerEntry((toString(y) + "_Presale_End_TimeStamp"), u), IntegerEntry((toString(y) + "_Token_Price"), p), IntegerEntry((toString(y) + "_Soft_Cap_Amount"), q), IntegerEntry((toString(y) + "_Hard_Cap_Amount"), r), IntegerEntry((toString(y) + "_Initiated_Height"), height), StringEntry("message", g)] | |
55 | 55 | } | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | ||
59 | 59 | @Callable(m) | |
60 | - | func PlacePresaleOrder ( | |
61 | - | let | |
62 | - | let | |
63 | - | let | |
64 | - | let | |
65 | - | let | |
66 | - | let | |
67 | - | let | |
68 | - | let | |
60 | + | func PlacePresaleOrder (z) = { | |
61 | + | let A = valueOrErrorMessage(getInteger(this, (toString(z) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
62 | + | let B = valueOrErrorMessage(getInteger(this, (toString(z) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
63 | + | let C = valueOrErrorMessage(getInteger(this, (toString(z) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
64 | + | let D = valueOrErrorMessage(getInteger(this, (toString(z) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
65 | + | let E = valueOrErrorMessage(getInteger(this, (toString(z) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
66 | + | let F = unit | |
67 | + | let G = toBase58String(m.caller.bytes) | |
68 | + | let H = if ((size(m.payments) == 1)) | |
69 | 69 | then m.payments[0] | |
70 | 70 | else throw(h) | |
71 | - | let | |
72 | - | let | |
73 | - | if ($isInstanceOf( | |
71 | + | let I = { | |
72 | + | let w = getInteger(this, (toString(z) + "_Funds_Collection")) | |
73 | + | if ($isInstanceOf(w, "Int")) | |
74 | 74 | then { | |
75 | - | let | |
76 | - | | |
75 | + | let x = w | |
76 | + | x | |
77 | 77 | } | |
78 | 78 | else 0 | |
79 | 79 | } | |
80 | - | let | |
81 | - | let | |
82 | - | let | |
83 | - | if ($isInstanceOf( | |
80 | + | let J = (I + H.amount) | |
81 | + | let K = { | |
82 | + | let w = getInteger(this, (toString(z) + "_total_txns")) | |
83 | + | if ($isInstanceOf(w, "Int")) | |
84 | 84 | then { | |
85 | - | let | |
86 | - | | |
85 | + | let x = w | |
86 | + | x | |
87 | 87 | } | |
88 | 88 | else 0 | |
89 | 89 | } | |
90 | - | let | |
91 | - | let | |
92 | - | let | |
93 | - | if ($isInstanceOf( | |
90 | + | let L = (K + 1) | |
91 | + | let M = { | |
92 | + | let w = getInteger(this, ((toString(z) + "_") + G)) | |
93 | + | if ($isInstanceOf(w, "Int")) | |
94 | 94 | then { | |
95 | - | let | |
96 | - | | |
95 | + | let x = w | |
96 | + | x | |
97 | 97 | } | |
98 | 98 | else 0 | |
99 | 99 | } | |
100 | - | let | |
101 | - | let | |
102 | - | let | |
103 | - | if (isDefined( | |
100 | + | let N = (M + H.amount) | |
101 | + | let O = (D - J) | |
102 | + | let P = (E - J) | |
103 | + | if (isDefined(H.assetId)) | |
104 | 104 | then throw(h) | |
105 | - | else if (( | |
106 | - | then throw((((i + "[") + toString( | |
107 | - | else if (( | |
108 | - | then throw((j + toString( | |
109 | - | else if (if (( | |
110 | - | then ( | |
105 | + | else if ((A > H.amount)) | |
106 | + | then throw((((i + "[") + toString(A)) + "/10^8.]")) | |
107 | + | else if ((B > lastBlock.timestamp)) | |
108 | + | then throw((j + toString(B))) | |
109 | + | else if (if ((O > 0)) | |
110 | + | then (P > 0) | |
111 | 111 | else false) | |
112 | - | then [IntegerEntry((toString( | |
113 | - | else if (if ((0 >= | |
114 | - | then ( | |
112 | + | then [IntegerEntry((toString(z) + "_Funds_Collection"), J), IntegerEntry(((toString(z) + "_") + G), N), IntegerEntry((toString(z) + "_total_txns"), L), IntegerEntry((toString(z) + "_pending_softcap_status"), O), IntegerEntry((toString(z) + "_pending_hardcap_status"), P), StringEntry((toString(z) + "_softcap_status"), "No"), StringEntry((toString(z) + "_hardcap_status"), "No"), StringEntry("message", f)] | |
113 | + | else if (if ((0 >= O)) | |
114 | + | then (P > 0) | |
115 | 115 | else false) | |
116 | - | then [IntegerEntry((toString( | |
117 | - | else if (if ((0 >= | |
118 | - | then (0 >= | |
116 | + | then [IntegerEntry((toString(z) + "_Funds_Collection"), J), IntegerEntry(((toString(z) + "_") + G), N), IntegerEntry((toString(z) + "_total_txns"), L), IntegerEntry((toString(z) + "_pending_softcap_status"), O), IntegerEntry((toString(z) + "_pending_hardcap_status"), P), StringEntry((toString(z) + "_softcap_status"), "Yes"), StringEntry((toString(z) + "_hardcap_status"), "No"), StringEntry("message", f)] | |
117 | + | else if (if ((0 >= O)) | |
118 | + | then (0 >= P) | |
119 | 119 | else false) | |
120 | - | then [IntegerEntry((toString( | |
120 | + | then [IntegerEntry((toString(z) + "_Funds_Collection"), J), IntegerEntry(((toString(z) + "_") + G), N), IntegerEntry((toString(z) + "_total_txns"), L), IntegerEntry((toString(z) + "_pending_softcap_status"), O), IntegerEntry((toString(z) + "_pending_hardcap_status"), P), StringEntry((toString(z) + "_softcap_status"), "Yes"), StringEntry((toString(z) + "_hardcap_status"), "Yes"), StringEntry("message", f)] | |
121 | 121 | else throw("Error.") | |
122 | 122 | } | |
123 | 123 | ||
124 | 124 | ||
125 | - | @Verifier( | |
126 | - | func | |
125 | + | @Verifier(Q) | |
126 | + | func R () = sigVerify(Q.bodyBytes, Q.proofs[0], Q.senderPublicKey) | |
127 | 127 |
github/deemru/w8io/169f3d6 91.09 ms ◑