tx · 5X9GfwLqG3S7YAiJoFZXQi95Zqzui4uWFqN8j1Gwe8UA 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA: -0.01400000 Waves 2023.08.02 21:31 [2693314] smart account 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA > SELF 0.00000000 Waves
{ "type": 13, "id": "5X9GfwLqG3S7YAiJoFZXQi95Zqzui4uWFqN8j1Gwe8UA", "fee": 1400000, "feeAssetId": null, "timestamp": 1691001138808, "version": 2, "chainId": 84, "sender": "3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA", "senderPublicKey": "CiRX9ubobzbD36ZwTyuBFiPnPkmzMQ7GDsF3hMoVbcVR", "proofs": [ "5sGeKyNUgbucEz92pj2fefKsFdeNySYbw1AQ6PFHD9zw15ZSHknh3tTR5hYz3p9bQCVhYnxpaLxLumHSEDgFBoKp" ], "script": "base64:AAIEAAAAAAAAABAIAhIHCgUBAQEBARIDCgEBAAAADAAAAAAjcHJlc2FsZV90aW1lc3RhbXBfY29udHJvbGxlcl9wdWJrZXkBAAAAIOOt17LUijbWojwDE5tgFkw1Y8cwIr3jselcewpp7rwjAAAAABJjb250cm9sbGVyX2FkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAI3ByZXNhbGVfdGltZXN0YW1wX2NvbnRyb2xsZXJfcHVia2V5AAAAAAd0c2Vycm9yAgAAADxFbmQgVGltZXN0YW1wIGNhbid0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byBTdGFydCBUaW1lc3RhbXAAAAAACnByaWNlZXJyb3ICAAAAJlRva2VuIFByaWNlIGNhbid0IGJlIGxlc3MgdGhhbiBvciBaZXJvAAAAAAhjYXBlcnJvcgIAAAAzU29mdCBDYXAgQW1vdW50IGNhbid0IGJlIG1vcmUgdGhhbiBIYXJkIENhcCBBbW91bnQuAAAAAAhvcmRlcm1zZwIAAAAqPGgxPk9yZGVyIFN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+AAAAABBwcmVzYWxlX2luaXRfbXNnAgAAADc8aDE+UHJlU2FsZSBQYXJhbWV0ZXJzIFN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+AAAAAAlweW10ZXJyb3ICAAAAK0RBcHAgTmVlZCBXQVZFUyBUb2tlbiBhcyBBdHRhY2ggcGF5bWVudFsxXS4AAAAADm9yZGVycHltdGVycm9yAgAAAC1BdHRhY2hlZCBwYXltZW50WzFdIGlzIGxlc3MgdGhhbiB0b2tlbiBwcmljZSAAAAAADGxhdW5jaF9lcnJvcgIAAAAmRGFwcCB3aWxsIHN0YXJ0IFByZS1TYWxlIGF0IFRpbWVzdGFtcCAAAAAAC21pbmJhbGVycm9yAgAAAGZNaW5pbXVtIDAuMSBXQVZFUyByZXF1aXJlZCBvbiBZb3VyIEFkZHJlc3MsIFBsZWFzZSBob2xkIG1pbi4gMC4xIFdBVkVTIG9uIHlvdXIgQWRkcmVzcyB0byBwbGFjZSBvcmRlci4AAAAAB3ZvdGVFcnICAAAAIFByZS1TYWxlIGlzIG92ZXIgZm9yIHRoaXMgUm91bmQuAAAAAgAAAAFpAQAAABRTZXRQcmVTYWxlUGFyYW1ldGVycwAAAAUAAAAXUHJlc2FsZV9TdGFydF9UaW1lU3RhbXAAAAAVUHJlc2FsZV9FbmRfVGltZVN0YW1wAAAAC1Rva2VuX1ByaWNlAAAAD1NvZnRfQ2FwX0Ftb3VudAAAAA9IYXJkX0NhcF9BbW91bnQEAAAAB1N0YXJ0VFMFAAAAF1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wBAAAAAVFbmRUUwUAAAAVUHJlc2FsZV9FbmRfVGltZVN0YW1wBAAAABJyZWFkX2Z1bmRpbmdfcm91bmQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAVQ3VycmVudF9GdW5kaW5nX1JvdW5kAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADWN1cnJlbnRfcm91bmQJAABkAAAAAgUAAAAScmVhZF9mdW5kaW5nX3JvdW5kAAAAAAAAAAABAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABJjb250cm9sbGVyX2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAASY29udHJvbGxlcl9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkBAAAAAiE9AAAAAgkAATEAAAABCQABpAAAAAEFAAAAF1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAb1N0YXJ0IFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABVQcmVzYWxlX0VuZF9UaW1lU3RhbXAAAAAAAAAAAA0JAAACAAAAAQIAAABtRW5kIFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAABmAAAAAgAAAAAAAAAAAQUAAAALVG9rZW5fUHJpY2UJAAACAAAAAQUAAAAKcHJpY2VlcnJvcgMJAABnAAAAAgUAAAAHU3RhcnRUUwUAAAAFRW5kVFMJAAACAAAAAQUAAAAHdHNlcnJvcgMJAABmAAAAAgUAAAAPU29mdF9DYXBfQW1vdW50BQAAAA9IYXJkX0NhcF9BbW91bnQJAAACAAAAAQUAAAAIY2FwZXJyb3IJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFUN1cnJlbnRfRnVuZGluZ19Sb3VuZAUAAAANY3VycmVudF9yb3VuZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAGF9QcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAUAAAAHU3RhcnRUUwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAFl9QcmVzYWxlX0VuZF9UaW1lU3RhbXAFAAAABUVuZFRTCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAANY3VycmVudF9yb3VuZAIAAAAMX1Rva2VuX1ByaWNlBQAAAAtUb2tlbl9QcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEF9Tb2Z0X0NhcF9BbW91bnQFAAAAD1NvZnRfQ2FwX0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEF9IYXJkX0NhcF9BbW91bnQFAAAAD0hhcmRfQ2FwX0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEV9Jbml0aWF0ZWRfSGVpZ2h0BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAQcHJlc2FsZV9pbml0X21zZwUAAAADbmlsAAAAAWkBAAAAEVBsYWNlUHJlc2FsZU9yZGVyAAAAAQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kBAAAABZyZWFkX3JvdW5kX3Rva2VuX3ByaWNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADF9Ub2tlbl9QcmljZQIAAAAtVG9rZW4gUHJpY2Ugbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABNyZWFkX3JvdW5kX3N0YXJ0X3RzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAGF9QcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAIAAAAxU3RhcnQgVGltZXN0YW1wIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAARcmVhZF9yb3VuZF9lbmRfdHMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAWX1ByZXNhbGVfRW5kX1RpbWVTdGFtcAIAAAAvRW5kIFRpbWVzdGFtcCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfU29mdF9DYXBfQW1vdW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEF9Tb2Z0X0NhcF9BbW91bnQCAAAAMVNvZnQgQ2FwIEFtb3VudCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfSGFyZF9DYXBfQW1vdW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEF9IYXJkX0NhcF9BbW91bnQCAAAAMUhhcmQgQ2FwIEFtb3VudCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAABVdBVkVTBQAAAAR1bml0BAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABBQAAAAlweW10ZXJyb3IEAAAAFXJlYWRfZnVuZHNfY29sbGVjdGlvbgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0Z1bmRzX0NvbGxlY3Rpb24DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgkAAGQAAAACBQAAABVyZWFkX2Z1bmRzX2NvbGxlY3Rpb24IBQAAAANwbXQAAAAGYW1vdW50BAAAAA9yZWFkX3RvdGFsX3R4bnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACnRvdGFsX3R4bnMJAABkAAAAAgUAAAAPcmVhZF90b3RhbF90eG5zAAAAAAAAAAABBAAAAB9yZWFkX3VzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAABkAAAAAgUAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAgFAAAAA3BtdAAAAAZhbW91bnQEAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABlAAAAAgUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgUAAAAUcmVhZF9Tb2Z0X0NhcF9BbW91bnQEAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMJAABlAAAAAgUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgUAAAAUcmVhZF9IYXJkX0NhcF9BbW91bnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAEFAAAACXB5bXRlcnJvcgMJAABmAAAAAgUAAAAWcmVhZF9yb3VuZF90b2tlbl9wcmljZQgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAOb3JkZXJweW10ZXJyb3ICAAAAAVsJAAGkAAAAAQUAAAAWcmVhZF9yb3VuZF90b2tlbl9wcmljZQIAAAAHLzEwXjguXQMJAABmAAAAAgUAAAATcmVhZF9yb3VuZF9zdGFydF90cwgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACBQAAAAxsYXVuY2hfZXJyb3IJAAGkAAAAAQUAAAATcmVhZF9yb3VuZF9zdGFydF90cwMDCQAAZgAAAAIFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMAAAAAAAAAAAAJAABmAAAAAgUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwAAAAAAAAAAAAcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfRnVuZHNfQ29sbGVjdGlvbgUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQUAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAtfdG90YWxfdHhucwUAAAAKdG90YWxfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9fc29mdGNhcF9zdGF0dXMCAAAAAk5vCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9faGFyZGNhcF9zdGF0dXMCAAAAAk5vCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAACG9yZGVybXNnBQAAAANuaWwDAwkAAGYAAAACAAAAAAAAAAAABQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAAZgAAAAIFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMAAAAAAAAAAAAHCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0Z1bmRzX0NvbGxlY3Rpb24FAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkFAAAAGnVzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAALX3RvdGFsX3R4bnMFAAAACnRvdGFsX3R4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX3NvZnRjYXBfc3RhdHVzAgAAAANZZXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19oYXJkY2FwX3N0YXR1cwIAAAACTm8JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAIb3JkZXJtc2cFAAAAA25pbAMDCQAAZwAAAAIAAAAAAAAAAAAFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfRnVuZHNfQ29sbGVjdGlvbgUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQUAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAtfdG90YWxfdHhucwUAAAAKdG90YWxfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9fc29mdGNhcF9zdGF0dXMCAAAAA1llcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX2hhcmRjYXBfc3RhdHVzAgAAAANZZXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAIb3JkZXJtc2cFAAAAA25pbAkAAAIAAAABAgAAAAZFcnJvci4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleXIXmDY=", "height": 2693314, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8JQ27gDN4tw7R3JVCHQxgK7BwptpHqHfXnkBU3Fn7JbT Next: EByVVuysyKBGm1MT36c1j5ZTGvMNz1snDRdS6sJpHHUR Diff:
Old | New | Differences | |
---|---|---|---|
63 | 63 | let B = valueOrErrorMessage(getInteger(this, (toString(y) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
64 | 64 | let C = valueOrErrorMessage(getInteger(this, (toString(y) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
65 | 65 | let D = valueOrErrorMessage(getInteger(this, (toString(y) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
66 | - | let E = "No" | |
67 | - | let F = "Yes" | |
68 | - | let G = "No" | |
69 | - | let H = "Yes" | |
70 | - | let I = unit | |
71 | - | let J = toBase58String(m.caller.bytes) | |
72 | - | let K = if ((size(m.payments) == 1)) | |
66 | + | let E = unit | |
67 | + | let F = toBase58String(m.caller.bytes) | |
68 | + | let G = if ((size(m.payments) == 1)) | |
73 | 69 | then m.payments[0] | |
74 | 70 | else throw(h) | |
75 | - | let | |
71 | + | let H = { | |
76 | 72 | let v = getInteger(this, (toString(y) + "_Funds_Collection")) | |
77 | 73 | if ($isInstanceOf(v, "Int")) | |
78 | 74 | then { | |
81 | 77 | } | |
82 | 78 | else 0 | |
83 | 79 | } | |
84 | - | let | |
85 | - | let | |
80 | + | let I = (H + G.amount) | |
81 | + | let J = { | |
86 | 82 | let v = getInteger(this, (toString(y) + "_total_txns")) | |
87 | 83 | if ($isInstanceOf(v, "Int")) | |
88 | 84 | then { | |
91 | 87 | } | |
92 | 88 | else 0 | |
93 | 89 | } | |
94 | - | let | |
95 | - | let | |
96 | - | let v = getInteger(this, ((toString(y) + "_") + | |
90 | + | let K = (J + 1) | |
91 | + | let L = { | |
92 | + | let v = getInteger(this, ((toString(y) + "_") + F)) | |
97 | 93 | if ($isInstanceOf(v, "Int")) | |
98 | 94 | then { | |
99 | 95 | let w = v | |
101 | 97 | } | |
102 | 98 | else 0 | |
103 | 99 | } | |
104 | - | let Q = (P + K.amount) | |
105 | - | if (isDefined(K.assetId)) | |
100 | + | let M = (L + G.amount) | |
101 | + | let N = (I - C) | |
102 | + | let O = (I - D) | |
103 | + | if (isDefined(G.assetId)) | |
106 | 104 | then throw(h) | |
107 | - | else if ((z > | |
105 | + | else if ((z > G.amount)) | |
108 | 106 | then throw((((i + "[") + toString(z)) + "/10^8.]")) | |
109 | 107 | else if ((A > lastBlock.timestamp)) | |
110 | 108 | then throw((j + toString(A))) | |
111 | - | else if ((C > M)) | |
112 | - | then [IntegerEntry((toString(y) + "_Funds_Collection"), M), IntegerEntry(((toString(y) + "_") + J), Q), IntegerEntry((toString(y) + "_total_txns"), O), StringEntry((toString(y) + "_softcap_reach_status"), E), StringEntry((toString(y) + "_hardcap_reach_status"), G), StringEntry("message", f)] | |
113 | - | else if ((M >= C)) | |
114 | - | then [IntegerEntry((toString(y) + "_Funds_Collection"), M), IntegerEntry(((toString(y) + "_") + J), Q), IntegerEntry((toString(y) + "_total_txns"), O), StringEntry((toString(y) + "_softcap_reach_status"), F), StringEntry("message", f)] | |
115 | - | else if ((M >= D)) | |
116 | - | then [IntegerEntry((toString(y) + "_Funds_Collection"), M), IntegerEntry(((toString(y) + "_") + J), Q), IntegerEntry((toString(y) + "_total_txns"), O), StringEntry((toString(y) + "_softcap_reach_status"), F), StringEntry((toString(y) + "_hardcap_reach_status"), H), StringEntry("message", f)] | |
109 | + | else if (if ((N > 0)) | |
110 | + | then (O > 0) | |
111 | + | else false) | |
112 | + | then [IntegerEntry((toString(y) + "_Funds_Collection"), I), IntegerEntry(((toString(y) + "_") + F), M), IntegerEntry((toString(y) + "_total_txns"), K), IntegerEntry((toString(y) + "pending_softcap_status"), N), IntegerEntry((toString(y) + "pending_hardcap_status"), O), StringEntry((toString(y) + "_softcap_status"), "No"), StringEntry((toString(y) + "_hardcap_status"), "No"), StringEntry("message", f)] | |
113 | + | else if (if ((0 > N)) | |
114 | + | then (O > 0) | |
115 | + | else false) | |
116 | + | then [IntegerEntry((toString(y) + "_Funds_Collection"), I), IntegerEntry(((toString(y) + "_") + F), M), IntegerEntry((toString(y) + "_total_txns"), K), IntegerEntry((toString(y) + "pending_softcap_status"), N), IntegerEntry((toString(y) + "pending_hardcap_status"), O), StringEntry((toString(y) + "_softcap_status"), "Yes"), StringEntry((toString(y) + "_hardcap_status"), "No"), StringEntry("message", f)] | |
117 | + | else if (if ((0 >= N)) | |
118 | + | then (0 >= O) | |
119 | + | else false) | |
120 | + | then [IntegerEntry((toString(y) + "_Funds_Collection"), I), IntegerEntry(((toString(y) + "_") + F), M), IntegerEntry((toString(y) + "_total_txns"), K), IntegerEntry((toString(y) + "pending_softcap_status"), N), IntegerEntry((toString(y) + "pending_hardcap_status"), O), StringEntry((toString(y) + "_softcap_status"), "Yes"), StringEntry((toString(y) + "_hardcap_status"), "Yes"), StringEntry("message", f)] | |
117 | 121 | else throw("Error.") | |
118 | 122 | } | |
119 | 123 | ||
120 | 124 | ||
121 | - | @Verifier( | |
122 | - | func | |
125 | + | @Verifier(P) | |
126 | + | func Q () = sigVerify(P.bodyBytes, P.proofs[0], P.senderPublicKey) | |
123 | 127 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
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 | 29 | func SetPreSaleParameters (n,o,p,q,r) = { | |
30 | 30 | let s = n | |
31 | 31 | let t = o | |
32 | 32 | let u = { | |
33 | 33 | let v = getInteger(this, "Current_Funding_Round") | |
34 | 34 | if ($isInstanceOf(v, "Int")) | |
35 | 35 | then { | |
36 | 36 | let w = v | |
37 | 37 | w | |
38 | 38 | } | |
39 | 39 | else 0 | |
40 | 40 | } | |
41 | 41 | let x = (u + 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 | 50 | else if ((s >= t)) | |
51 | 51 | then throw(c) | |
52 | 52 | else if ((q > r)) | |
53 | 53 | then throw(e) | |
54 | 54 | else [IntegerEntry("Current_Funding_Round", x), IntegerEntry((toString(x) + "_Presale_Start_TimeStamp"), s), IntegerEntry((toString(x) + "_Presale_End_TimeStamp"), t), IntegerEntry((toString(x) + "_Token_Price"), p), IntegerEntry((toString(x) + "_Soft_Cap_Amount"), q), IntegerEntry((toString(x) + "_Hard_Cap_Amount"), r), IntegerEntry((toString(x) + "_Initiated_Height"), height), StringEntry("message", g)] | |
55 | 55 | } | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | ||
59 | 59 | @Callable(m) | |
60 | 60 | func PlacePresaleOrder (y) = { | |
61 | 61 | let z = valueOrErrorMessage(getInteger(this, (toString(y) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
62 | 62 | let A = valueOrErrorMessage(getInteger(this, (toString(y) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
63 | 63 | let B = valueOrErrorMessage(getInteger(this, (toString(y) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
64 | 64 | let C = valueOrErrorMessage(getInteger(this, (toString(y) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
65 | 65 | let D = valueOrErrorMessage(getInteger(this, (toString(y) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
66 | - | let E = "No" | |
67 | - | let F = "Yes" | |
68 | - | let G = "No" | |
69 | - | let H = "Yes" | |
70 | - | let I = unit | |
71 | - | let J = toBase58String(m.caller.bytes) | |
72 | - | let K = if ((size(m.payments) == 1)) | |
66 | + | let E = unit | |
67 | + | let F = toBase58String(m.caller.bytes) | |
68 | + | let G = if ((size(m.payments) == 1)) | |
73 | 69 | then m.payments[0] | |
74 | 70 | else throw(h) | |
75 | - | let | |
71 | + | let H = { | |
76 | 72 | let v = getInteger(this, (toString(y) + "_Funds_Collection")) | |
77 | 73 | if ($isInstanceOf(v, "Int")) | |
78 | 74 | then { | |
79 | 75 | let w = v | |
80 | 76 | w | |
81 | 77 | } | |
82 | 78 | else 0 | |
83 | 79 | } | |
84 | - | let | |
85 | - | let | |
80 | + | let I = (H + G.amount) | |
81 | + | let J = { | |
86 | 82 | let v = getInteger(this, (toString(y) + "_total_txns")) | |
87 | 83 | if ($isInstanceOf(v, "Int")) | |
88 | 84 | then { | |
89 | 85 | let w = v | |
90 | 86 | w | |
91 | 87 | } | |
92 | 88 | else 0 | |
93 | 89 | } | |
94 | - | let | |
95 | - | let | |
96 | - | let v = getInteger(this, ((toString(y) + "_") + | |
90 | + | let K = (J + 1) | |
91 | + | let L = { | |
92 | + | let v = getInteger(this, ((toString(y) + "_") + F)) | |
97 | 93 | if ($isInstanceOf(v, "Int")) | |
98 | 94 | then { | |
99 | 95 | let w = v | |
100 | 96 | w | |
101 | 97 | } | |
102 | 98 | else 0 | |
103 | 99 | } | |
104 | - | let Q = (P + K.amount) | |
105 | - | if (isDefined(K.assetId)) | |
100 | + | let M = (L + G.amount) | |
101 | + | let N = (I - C) | |
102 | + | let O = (I - D) | |
103 | + | if (isDefined(G.assetId)) | |
106 | 104 | then throw(h) | |
107 | - | else if ((z > | |
105 | + | else if ((z > G.amount)) | |
108 | 106 | then throw((((i + "[") + toString(z)) + "/10^8.]")) | |
109 | 107 | else if ((A > lastBlock.timestamp)) | |
110 | 108 | then throw((j + toString(A))) | |
111 | - | else if ((C > M)) | |
112 | - | then [IntegerEntry((toString(y) + "_Funds_Collection"), M), IntegerEntry(((toString(y) + "_") + J), Q), IntegerEntry((toString(y) + "_total_txns"), O), StringEntry((toString(y) + "_softcap_reach_status"), E), StringEntry((toString(y) + "_hardcap_reach_status"), G), StringEntry("message", f)] | |
113 | - | else if ((M >= C)) | |
114 | - | then [IntegerEntry((toString(y) + "_Funds_Collection"), M), IntegerEntry(((toString(y) + "_") + J), Q), IntegerEntry((toString(y) + "_total_txns"), O), StringEntry((toString(y) + "_softcap_reach_status"), F), StringEntry("message", f)] | |
115 | - | else if ((M >= D)) | |
116 | - | then [IntegerEntry((toString(y) + "_Funds_Collection"), M), IntegerEntry(((toString(y) + "_") + J), Q), IntegerEntry((toString(y) + "_total_txns"), O), StringEntry((toString(y) + "_softcap_reach_status"), F), StringEntry((toString(y) + "_hardcap_reach_status"), H), StringEntry("message", f)] | |
109 | + | else if (if ((N > 0)) | |
110 | + | then (O > 0) | |
111 | + | else false) | |
112 | + | then [IntegerEntry((toString(y) + "_Funds_Collection"), I), IntegerEntry(((toString(y) + "_") + F), M), IntegerEntry((toString(y) + "_total_txns"), K), IntegerEntry((toString(y) + "pending_softcap_status"), N), IntegerEntry((toString(y) + "pending_hardcap_status"), O), StringEntry((toString(y) + "_softcap_status"), "No"), StringEntry((toString(y) + "_hardcap_status"), "No"), StringEntry("message", f)] | |
113 | + | else if (if ((0 > N)) | |
114 | + | then (O > 0) | |
115 | + | else false) | |
116 | + | then [IntegerEntry((toString(y) + "_Funds_Collection"), I), IntegerEntry(((toString(y) + "_") + F), M), IntegerEntry((toString(y) + "_total_txns"), K), IntegerEntry((toString(y) + "pending_softcap_status"), N), IntegerEntry((toString(y) + "pending_hardcap_status"), O), StringEntry((toString(y) + "_softcap_status"), "Yes"), StringEntry((toString(y) + "_hardcap_status"), "No"), StringEntry("message", f)] | |
117 | + | else if (if ((0 >= N)) | |
118 | + | then (0 >= O) | |
119 | + | else false) | |
120 | + | then [IntegerEntry((toString(y) + "_Funds_Collection"), I), IntegerEntry(((toString(y) + "_") + F), M), IntegerEntry((toString(y) + "_total_txns"), K), IntegerEntry((toString(y) + "pending_softcap_status"), N), IntegerEntry((toString(y) + "pending_hardcap_status"), O), StringEntry((toString(y) + "_softcap_status"), "Yes"), StringEntry((toString(y) + "_hardcap_status"), "Yes"), StringEntry("message", f)] | |
117 | 121 | else throw("Error.") | |
118 | 122 | } | |
119 | 123 | ||
120 | 124 | ||
121 | - | @Verifier( | |
122 | - | func | |
125 | + | @Verifier(P) | |
126 | + | func Q () = sigVerify(P.bodyBytes, P.proofs[0], P.senderPublicKey) | |
123 | 127 |
github/deemru/w8io/169f3d6 42.09 ms ◑