tx · 2Ug24VpLW4RAn4wLDfMQhArHcu1ypWWA6UWH4T58eoBx 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA: -0.02000000 Waves 2023.08.13 15:29 [2708801] smart account 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA > SELF 0.00000000 Waves
{ "type": 13, "id": "2Ug24VpLW4RAn4wLDfMQhArHcu1ypWWA6UWH4T58eoBx", "fee": 2000000, "feeAssetId": null, "timestamp": 1691929765947, "version": 2, "chainId": 84, "sender": "3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA", "senderPublicKey": "CiRX9ubobzbD36ZwTyuBFiPnPkmzMQ7GDsF3hMoVbcVR", "proofs": [ "38QgPqfghwpxHvx6dDLAapgwA3nbSZQHD2PJXpQv8kA99EM9RXMTjGFPUj9D1acpGbGdMX52Wm2db6EEcpKAzeDb" ], "script": "base64:AAIFAAAAAAAAABYIAhIICgYBAQEBAQQSAwoBARIDCgEBAAAAEAAAAAAjcHJlc2FsZV90aW1lc3RhbXBfY29udHJvbGxlcl9wdWJrZXkBAAAAIOOt17LUijbWojwDE5tgFkw1Y8cwIr3jselcewpp7rwjAAAAABJjb250cm9sbGVyX2FkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAI3ByZXNhbGVfdGltZXN0YW1wX2NvbnRyb2xsZXJfcHVia2V5AAAAAA5leHBpcmVkdHNlcnJvcgIAAAA4U3RhcnQgVGltZXN0YW1wIGNhbid0IGJlIGxlc3MgdGhhbiBsYXN0IGJsb2NrIFRpbWVzdGFtcC4AAAAAB3RzZXJyb3ICAAAAPEVuZCBUaW1lc3RhbXAgY2FuJ3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIFN0YXJ0IFRpbWVzdGFtcAAAAAAKcHJpY2VlcnJvcgIAAAAmVG9rZW4gUHJpY2UgY2FuJ3QgYmUgbGVzcyB0aGFuIG9yIFplcm8AAAAACGNhcGVycm9yAgAAADNTb2Z0IENhcCBBbW91bnQgY2FuJ3QgYmUgbW9yZSB0aGFuIEhhcmQgQ2FwIEFtb3VudC4AAAAACG9yZGVybXNnAgAAACo8aDE+T3JkZXIgU3VibWl0dGVkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4AAAAAEHByZXNhbGVfaW5pdF9tc2cCAAAANzxoMT5QcmVTYWxlIFBhcmFtZXRlcnMgU3VibWl0dGVkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4AAAAACXB5bXRlcnJvcgIAAAArREFwcCBOZWVkIFdBVkVTIFRva2VuIGFzIEF0dGFjaCBwYXltZW50WzFdLgAAAAAOb3JkZXJweW10ZXJyb3ICAAAALUF0dGFjaGVkIHBheW1lbnRbMV0gaXMgbGVzcyB0aGFuIHRva2VuIHByaWNlIAAAAAAMbGF1bmNoX2Vycm9yAgAAACZEYXBwIHdpbGwgc3RhcnQgUHJlLVNhbGUgYXQgVGltZXN0YW1wIAAAAAALbWluYmFsZXJyb3ICAAAAZk1pbmltdW0gMC4xIFdBVkVTIHJlcXVpcmVkIG9uIFlvdXIgQWRkcmVzcywgUGxlYXNlIGhvbGQgbWluLiAwLjEgV0FWRVMgb24geW91ciBBZGRyZXNzIHRvIHBsYWNlIG9yZGVyLgAAAAAPcHJlc2FsZV9lbmRfZXJyAgAAACBQcmUtU2FsZSBpcyBvdmVyIGZvciB0aGlzIFJvdW5kLgAAAAATcHJlc2FsZV9ub3RfZW5kX2VycgIAAAAkUHJlLVNhbGUgaXMgbm90IG92ZXIgZm9yIHRoaXMgUm91bmQuAAAAAApyZWZ1bmRfZXJyAgAAAHpTb2Z0Y2FwIG9yIEhhcmQgQ2FwIGFscmVhZHkgUmVhY2hlZCBvciBwcm9iYWJseSBQcmVTYWxlIHdhcyBTZXQgd2l0aCBGYWxzZSB0byBSZWZ1bmQsIHNvIG5vIFJlZnVuZCBhbGxvd2VkIGZvciB0aGlzIFJvdW5kLgAAAAAPcmVmdW5kX2luaXRfbXNnAgAAACs8aDE+UmVmdW5kIFJlY2VpdmVkIFN1Y2Nlc3NmdWxseSEuPC9oMT48YnI+AAAAAwAAAAFpAQAAABRTZXRQcmVTYWxlUGFyYW1ldGVycwAAAAYAAAAXUHJlc2FsZV9TdGFydF9UaW1lU3RhbXAAAAAVUHJlc2FsZV9FbmRfVGltZVN0YW1wAAAAC1Rva2VuX1ByaWNlAAAAD1NvZnRfQ2FwX0Ftb3VudAAAAA9IYXJkX0NhcF9BbW91bnQAAAAMQWxsb3dfUmVmdW5kBAAAAAdTdGFydFRTBQAAABdQcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAQAAAAFRW5kVFMFAAAAFVByZXNhbGVfRW5kX1RpbWVTdGFtcAQAAAAScmVhZF9mdW5kaW5nX3JvdW5kBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAFUN1cnJlbnRfRnVuZGluZ19Sb3VuZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAA1jdXJyZW50X3JvdW5kCQAAZAAAAAIFAAAAEnJlYWRfZnVuZGluZ19yb3VuZAAAAAAAAAAAAQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAASY29udHJvbGxlcl9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAABmAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAAF1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wCQAAAgAAAAEFAAAADmV4cGlyZWR0c2Vycm9yAwkBAAAAAiE9AAAAAgkAATEAAAABCQABpAAAAAEFAAAAF1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAb1N0YXJ0IFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABVQcmVzYWxlX0VuZF9UaW1lU3RhbXAAAAAAAAAAAA0JAAACAAAAAQIAAABtRW5kIFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAABmAAAAAgAAAAAAAAAAAQUAAAALVG9rZW5fUHJpY2UJAAACAAAAAQUAAAAKcHJpY2VlcnJvcgMJAABnAAAAAgUAAAAHU3RhcnRUUwUAAAAFRW5kVFMJAAACAAAAAQUAAAAHdHNlcnJvcgMJAABmAAAAAgUAAAAPU29mdF9DYXBfQW1vdW50BQAAAA9IYXJkX0NhcF9BbW91bnQJAAACAAAAAQUAAAAIY2FwZXJyb3IJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFUN1cnJlbnRfRnVuZGluZ19Sb3VuZAUAAAANY3VycmVudF9yb3VuZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAGF9QcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAUAAAAHU3RhcnRUUwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAFl9QcmVzYWxlX0VuZF9UaW1lU3RhbXAFAAAABUVuZFRTCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAANY3VycmVudF9yb3VuZAIAAAAMX1Rva2VuX1ByaWNlBQAAAAtUb2tlbl9QcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEF9Tb2Z0X0NhcF9BbW91bnQFAAAAD1NvZnRfQ2FwX0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEF9IYXJkX0NhcF9BbW91bnQFAAAAD0hhcmRfQ2FwX0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEV9Jbml0aWF0ZWRfSGVpZ2h0BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAA1jdXJyZW50X3JvdW5kAgAAAA1fQWxsb3dfUmVmdW5kBQAAAAxBbGxvd19SZWZ1bmQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAQcHJlc2FsZV9pbml0X21zZwUAAAADbmlsAAAAAWkBAAAAEVBsYWNlUHJlc2FsZU9yZGVyAAAAAQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kBAAAABZyZWFkX3JvdW5kX3Rva2VuX3ByaWNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADF9Ub2tlbl9QcmljZQIAAAAtVG9rZW4gUHJpY2Ugbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABNyZWFkX3JvdW5kX3N0YXJ0X3RzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAGF9QcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAIAAAAxU3RhcnQgVGltZXN0YW1wIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAARcmVhZF9yb3VuZF9lbmRfdHMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAWX1ByZXNhbGVfRW5kX1RpbWVTdGFtcAIAAAAvRW5kIFRpbWVzdGFtcCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfU29mdF9DYXBfQW1vdW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEF9Tb2Z0X0NhcF9BbW91bnQCAAAAMVNvZnQgQ2FwIEFtb3VudCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfSGFyZF9DYXBfQW1vdW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEF9IYXJkX0NhcF9BbW91bnQCAAAAMUhhcmQgQ2FwIEFtb3VudCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAEXJlYWRfQWxsb3dfUmVmdW5kCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADV9BbGxvd19SZWZ1bmQCAAAAKVJlZnVuZCBpcyBub3Qgc2V0IGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAAAVXQVZFUwUAAAAEdW5pdAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAABVyZWFkX2Z1bmRzX2NvbGxlY3Rpb24EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9GdW5kc19Db2xsZWN0aW9uAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAABkAAAAAgUAAAAVcmVhZF9mdW5kc19jb2xsZWN0aW9uCAUAAAADcG10AAAABmFtb3VudAQAAAAPcmVhZF90b3RhbF90eG5zBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAtfdG90YWxfdHhucwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAp0b3RhbF90eG5zCQAAZAAAAAIFAAAAD3JlYWRfdG90YWxfdHhucwAAAAAAAAAAAQQAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfBQAAAApjdXJyZW50S2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGnVzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCQAAZAAAAAIFAAAAH3JlYWRfdXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQIBQAAAANwbXQAAAAGYW1vdW50BAAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAAZQAAAAIFAAAAFHJlYWRfU29mdF9DYXBfQW1vdW50BQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uBAAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzCQAAZQAAAAIFAAAAFHJlYWRfSGFyZF9DYXBfQW1vdW50BQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABBQAAAAlweW10ZXJyb3IDCQAAZgAAAAIFAAAAFnJlYWRfcm91bmRfdG9rZW5fcHJpY2UIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAADm9yZGVycHltdGVycm9yAgAAAAFbCQABpAAAAAEFAAAAFnJlYWRfcm91bmRfdG9rZW5fcHJpY2UCAAAABy8xMF44Ll0DCQAAZgAAAAIFAAAAE3JlYWRfcm91bmRfc3RhcnRfdHMIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEJAAEsAAAAAgUAAAAMbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAE3JlYWRfcm91bmRfc3RhcnRfdHMDCQAAZgAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAABFyZWFkX3JvdW5kX2VuZF90cwkAAAIAAAABBQAAAA9wcmVzYWxlX2VuZF9lcnIDAwkAAGYAAAACBQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzAAAAAAAAAAAACQAAZgAAAAIFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMAAAAAAAAAAAAHCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0Z1bmRzX0NvbGxlY3Rpb24FAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkFAAAAGnVzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAALX3RvdGFsX3R4bnMFAAAACnRvdGFsX3R4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAF19wZW5kaW5nX2hhcmRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9fc29mdGNhcF9zdGF0dXMCAAAAAk5vCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9faGFyZGNhcF9zdGF0dXMCAAAAAk5vCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAANX0FsbG93X1JlZnVuZAUAAAARcmVhZF9BbGxvd19SZWZ1bmQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAIb3JkZXJtc2cFAAAAA25pbAMDCQAAZwAAAAIAAAAAAAAAAAAFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABmAAAAAgUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwAAAAAAAAAAAAcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfRnVuZHNfQ29sbGVjdGlvbgUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQUAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAtfdG90YWxfdHhucwUAAAAKdG90YWxfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAF19wZW5kaW5nX3NvZnRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfaGFyZGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19zb2Z0Y2FwX3N0YXR1cwIAAAADWWVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9faGFyZGNhcF9zdGF0dXMCAAAAAk5vCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAANX0FsbG93X1JlZnVuZAcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAASY29udHJvbGxlcl9hZGRyZXNzCQAD8AAAAAIFAAAABHRoaXMBAAAAAAUAAAAEdW5pdAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAAhvcmRlcm1zZwUAAAADbmlsAwMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkAAGcAAAACAAAAAAAAAAAABQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzBwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9GdW5kc19Db2xsZWN0aW9uBQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfBQAAAApjdXJyZW50S2V5BQAAABp1c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zBQAAAAp0b3RhbF90eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfc29mdGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19oYXJkY2FwX3N0YXR1cwUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX3NvZnRjYXBfc3RhdHVzAgAAAANZZXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19oYXJkY2FwX3N0YXR1cwIAAAADWWVzCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAANX0FsbG93X1JlZnVuZAcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAASY29udHJvbGxlcl9hZGRyZXNzCQAD8AAAAAIFAAAABHRoaXMBAAAAAAUAAAAEdW5pdAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAAhvcmRlcm1zZwUAAAADbmlsCQAAAgAAAAECAAAABkVycm9yLgAAAAFpAQAAAAZSZWZ1bmQAAAABAAAAE0VudGVyX1ByZXNhbGVfUm91bmQEAAAABVdBVkVTBQAAAAR1bml0BAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAFXJlYWRfSW5pdGlhdGVkX0hlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfSW5pdGlhdGVkX0hlaWdodAIAAAAySW5pdGlhdGVkIEhlaWdodCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFnJlYWRfcm91bmRfdG9rZW5fcHJpY2UJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAMX1Rva2VuX1ByaWNlAgAAAC1Ub2tlbiBQcmljZSBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAE3JlYWRfcm91bmRfc3RhcnRfdHMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAYX1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wAgAAADFTdGFydCBUaW1lc3RhbXAgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABFyZWFkX3JvdW5kX2VuZF90cwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABZfUHJlc2FsZV9FbmRfVGltZVN0YW1wAgAAAC9FbmQgVGltZXN0YW1wIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAUcmVhZF9Tb2Z0X0NhcF9BbW91bnQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAQX1NvZnRfQ2FwX0Ftb3VudAIAAAAxU29mdCBDYXAgQW1vdW50IG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAUcmVhZF9IYXJkX0NhcF9BbW91bnQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAQX0hhcmRfQ2FwX0Ftb3VudAIAAAAxSGFyZCBDYXAgQW1vdW50IG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAbcmVhZF90b3RhbF9mdW5kc19jb2xsZWN0aW9uCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9GdW5kc19Db2xsZWN0aW9uAgAAADhUb3RhbCBGdW5kcyBDb2xsZWN0aW9uIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkCAAAAO05vIERlcG9zaXQgd2FzIG1hZGUgYnkgdGhpcyBBZGRyZXNzIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABFyZWFkX0FsbG93X1JlZnVuZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGwAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA1fQWxsb3dfUmVmdW5kAgAAADhBbGxvd19SZWZ1bmQgaGFzIG5vIEJvb2xlbiBFbnRyeSBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkAAGUAAAACBQAAABRyZWFkX1NvZnRfQ2FwX0Ftb3VudAUAAAAbcmVhZF90b3RhbF9mdW5kc19jb2xsZWN0aW9uBAAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzCQAAZQAAAAIFAAAAFHJlYWRfSGFyZF9DYXBfQW1vdW50BQAAABtyZWFkX3RvdGFsX2Z1bmRzX2NvbGxlY3Rpb24EAAAADG1pbGxpc2Vjb25kcwAAAAAAAAAD6AQAAAAGbWludXRlCQAAaAAAAAIAAAAAAAAAADwFAAAADG1pbGxpc2Vjb25kcwQAAAAVcm91bmRfdGltZV9kaWZmZXJlbmNlCQAAZQAAAAIFAAAAEXJlYWRfcm91bmRfZW5kX3RzBQAAABNyZWFkX3JvdW5kX3N0YXJ0X3RzBAAAABZhZGRpdGlvbmFsX3NhZmVfYmxvY2tzAAAAAAAAAAAKBAAAABJibG9ja3N0aW1ldG9tYXR1cmUJAABkAAAAAgkAAGQAAAACBQAAABVyZWFkX0luaXRpYXRlZF9IZWlnaHQJAABrAAAAAwUAAAAVcm91bmRfdGltZV9kaWZmZXJlbmNlAAAAAAAAAAABBQAAAAZtaW51dGUFAAAAFmFkZGl0aW9uYWxfc2FmZV9ibG9ja3MEAAAAD3BlbmRpbmdfcmVmdW5kcwkAAGUAAAACBQAAABtyZWFkX3RvdGFsX2Z1bmRzX2NvbGxlY3Rpb24FAAAAH3JlYWRfdXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQDCQAAZgAAAAIFAAAAEmJsb2Nrc3RpbWV0b21hdHVyZQgFAAAACWxhc3RCbG9jawAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAATcHJlc2FsZV9ub3RfZW5kX2VycgIAAAAUIFBsZWFzZSBXYWl0IFVudGlsIH4JAAGkAAAAAQUAAAASYmxvY2tzdGltZXRvbWF0dXJlAgAAABMgSGVpZ2h0IGlzIHJlYWNoZWQuAwkAAAAAAAACBQAAABFyZWFkX0FsbG93X1JlZnVuZAcJAAACAAAAAQUAAAAKcmVmdW5kX2VycgMJAAAAAAAAAgUAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAAAAAAAAAAAAAkAAAIAAAABAgAAADBSZWZ1bmQgaGFzIGJlZW4gQWxyZWFkeSBDbGFpbWVkIGJ5IHRoaXMgQWRkcmVzcy4DAwkAAGYAAAACBQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzAAAAAAAAAAAACQAAZgAAAAIFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMAAAAAAAAAAAAHCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAACmN1cnJlbnRLZXkFAAAAH3JlYWRfdXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQFAAAABVdBVkVTCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfAgAAAA5QZW5kaW5nX1JlZnVuZAUAAAAPcGVuZGluZ19yZWZ1bmRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAAD3JlZnVuZF9pbml0X21zZwUAAAADbmlsAwMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkAAGYAAAACBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzAAAAAAAAAAAABwkAAAIAAAABAgAAAFVTb2Z0Q2FwIEFscmVhZHkgUmVhY2hlZCBmb3IgdGhpcyBSb3VuZC4gUGxlYXNlIENsaWNrIG9uIENsYWltIHRvIFJlY2VpdmUgWW91ciBUb2tlbnMuAwMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkAAGcAAAACAAAAAAAAAAAABQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzBwkAAAIAAAABAgAAAF5Tb2Z0Q2FwIGFuZCBIYXJkIEFscmVhZHkgUmVhY2hlZCBmb3IgdGhpcyBSb3VuZC4gUGxlYXNlIENsaWNrIG9uIENsYWltIHRvIFJlY2VpdmUgWW91ciBUb2tlbnMuCQAAAgAAAAECAAAAEldyb25nIEVudHJ5IEZvdW5kLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5LaneJg==", "height": 2708801, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2NZJ5a8aN69ict6SsC24YpLUn5VXkghw5EQxosjDdxju Next: 7xMxAjGrY6gfW3FE55GDCmpMBRXTBsLPB4phHz9J4Fmv Diff:
Old | New | Differences | |
---|---|---|---|
114 | 114 | else if (if ((0 >= pending_softcap_status)) | |
115 | 115 | then (pending_hardcap_status > 0) | |
116 | 116 | else false) | |
117 | - | then [IntegerEntry((toString(Enter_Presale_Round) + "_Funds_Collection"), total_funds_collection), IntegerEntry(((toString(Enter_Presale_Round) + "_") + currentKey), user_total_funds_deposited), IntegerEntry((toString(Enter_Presale_Round) + "_total_txns"), total_txns), IntegerEntry((toString(Enter_Presale_Round) + "_pending_softcap_status"), pending_softcap_status), IntegerEntry((toString(Enter_Presale_Round) + "_pending_hardcap_status"), pending_hardcap_status), StringEntry((toString(Enter_Presale_Round) + "_softcap_status"), "Yes"), StringEntry((toString(Enter_Presale_Round) + "_hardcap_status"), "No"), BooleanEntry((toString(Enter_Presale_Round) + "_Allow_Refund"), false), StringEntry("message", ordermsg)] | |
117 | + | then [IntegerEntry((toString(Enter_Presale_Round) + "_Funds_Collection"), total_funds_collection), IntegerEntry(((toString(Enter_Presale_Round) + "_") + currentKey), user_total_funds_deposited), IntegerEntry((toString(Enter_Presale_Round) + "_total_txns"), total_txns), IntegerEntry((toString(Enter_Presale_Round) + "_pending_softcap_status"), pending_softcap_status), IntegerEntry((toString(Enter_Presale_Round) + "_pending_hardcap_status"), pending_hardcap_status), StringEntry((toString(Enter_Presale_Round) + "_softcap_status"), "Yes"), StringEntry((toString(Enter_Presale_Round) + "_hardcap_status"), "No"), BooleanEntry((toString(Enter_Presale_Round) + "_Allow_Refund"), false), ScriptTransfer(controller_address, assetBalance(this, base58''), unit), StringEntry("message", ordermsg)] | |
118 | 118 | else if (if ((0 >= pending_softcap_status)) | |
119 | 119 | then (0 >= pending_hardcap_status) | |
120 | 120 | else false) | |
121 | - | then [IntegerEntry((toString(Enter_Presale_Round) + "_Funds_Collection"), total_funds_collection), IntegerEntry(((toString(Enter_Presale_Round) + "_") + currentKey), user_total_funds_deposited), IntegerEntry((toString(Enter_Presale_Round) + "_total_txns"), total_txns), IntegerEntry((toString(Enter_Presale_Round) + "_pending_softcap_status"), pending_softcap_status), IntegerEntry((toString(Enter_Presale_Round) + "_pending_hardcap_status"), pending_hardcap_status), StringEntry((toString(Enter_Presale_Round) + "_softcap_status"), "Yes"), StringEntry((toString(Enter_Presale_Round) + "_hardcap_status"), "Yes"), BooleanEntry((toString(Enter_Presale_Round) + "_Allow_Refund"), false), StringEntry("message", ordermsg)] | |
121 | + | then [IntegerEntry((toString(Enter_Presale_Round) + "_Funds_Collection"), total_funds_collection), IntegerEntry(((toString(Enter_Presale_Round) + "_") + currentKey), user_total_funds_deposited), IntegerEntry((toString(Enter_Presale_Round) + "_total_txns"), total_txns), IntegerEntry((toString(Enter_Presale_Round) + "_pending_softcap_status"), pending_softcap_status), IntegerEntry((toString(Enter_Presale_Round) + "_pending_hardcap_status"), pending_hardcap_status), StringEntry((toString(Enter_Presale_Round) + "_softcap_status"), "Yes"), StringEntry((toString(Enter_Presale_Round) + "_hardcap_status"), "Yes"), BooleanEntry((toString(Enter_Presale_Round) + "_Allow_Refund"), false), ScriptTransfer(controller_address, assetBalance(this, base58''), unit), StringEntry("message", ordermsg)] | |
122 | 122 | else throw("Error.") | |
123 | 123 | } | |
124 | 124 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let presale_timestamp_controller_pubkey = base58'GKmJ6BchUgQfwKp4mp5eX8Y9xLioYRm6e1gDfFgdAcCr' | |
5 | 5 | ||
6 | 6 | let controller_address = addressFromPublicKey(presale_timestamp_controller_pubkey) | |
7 | 7 | ||
8 | 8 | let expiredtserror = "Start Timestamp can't be less than last block Timestamp." | |
9 | 9 | ||
10 | 10 | let tserror = "End Timestamp can't be less than or equal to Start Timestamp" | |
11 | 11 | ||
12 | 12 | let priceerror = "Token Price can't be less than or Zero" | |
13 | 13 | ||
14 | 14 | let caperror = "Soft Cap Amount can't be more than Hard Cap Amount." | |
15 | 15 | ||
16 | 16 | let ordermsg = "<h1>Order Submitted Successfully!</h1><br>" | |
17 | 17 | ||
18 | 18 | let presale_init_msg = "<h1>PreSale Parameters Submitted Successfully!</h1><br>" | |
19 | 19 | ||
20 | 20 | let pymterror = "DApp Need WAVES Token as Attach payment[1]." | |
21 | 21 | ||
22 | 22 | let orderpymterror = "Attached payment[1] is less than token price " | |
23 | 23 | ||
24 | 24 | let launch_error = "Dapp will start Pre-Sale at Timestamp " | |
25 | 25 | ||
26 | 26 | let minbalerror = "Minimum 0.1 WAVES required on Your Address, Please hold min. 0.1 WAVES on your Address to place order." | |
27 | 27 | ||
28 | 28 | let presale_end_err = "Pre-Sale is over for this Round." | |
29 | 29 | ||
30 | 30 | let presale_not_end_err = "Pre-Sale is not over for this Round." | |
31 | 31 | ||
32 | 32 | let refund_err = "Softcap or Hard Cap already Reached or probably PreSale was Set with False to Refund, so no Refund allowed for this Round." | |
33 | 33 | ||
34 | 34 | let refund_init_msg = "<h1>Refund Received Successfully!.</h1><br>" | |
35 | 35 | ||
36 | 36 | @Callable(i) | |
37 | 37 | func SetPreSaleParameters (Presale_Start_TimeStamp,Presale_End_TimeStamp,Token_Price,Soft_Cap_Amount,Hard_Cap_Amount,Allow_Refund) = { | |
38 | 38 | let StartTS = Presale_Start_TimeStamp | |
39 | 39 | let EndTS = Presale_End_TimeStamp | |
40 | 40 | let read_funding_round = match getInteger(this, "Current_Funding_Round") { | |
41 | 41 | case a: Int => | |
42 | 42 | a | |
43 | 43 | case _ => | |
44 | 44 | 0 | |
45 | 45 | } | |
46 | 46 | let current_round = (read_funding_round + 1) | |
47 | 47 | if ((i.caller != controller_address)) | |
48 | 48 | then throw((("This Address is not Authorized. Only " + toString(controller_address)) + " is Authorized Address to Sign it.")) | |
49 | 49 | else if ((lastBlock.timestamp > Presale_Start_TimeStamp)) | |
50 | 50 | then throw(expiredtserror) | |
51 | 51 | else if ((size(toString(Presale_Start_TimeStamp)) != 13)) | |
52 | 52 | then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
53 | 53 | else if ((size(toString(Presale_End_TimeStamp)) != 13)) | |
54 | 54 | then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
55 | 55 | else if ((1 > Token_Price)) | |
56 | 56 | then throw(priceerror) | |
57 | 57 | else if ((StartTS >= EndTS)) | |
58 | 58 | then throw(tserror) | |
59 | 59 | else if ((Soft_Cap_Amount > Hard_Cap_Amount)) | |
60 | 60 | then throw(caperror) | |
61 | 61 | else [IntegerEntry("Current_Funding_Round", current_round), IntegerEntry((toString(current_round) + "_Presale_Start_TimeStamp"), StartTS), IntegerEntry((toString(current_round) + "_Presale_End_TimeStamp"), EndTS), IntegerEntry((toString(current_round) + "_Token_Price"), Token_Price), IntegerEntry((toString(current_round) + "_Soft_Cap_Amount"), Soft_Cap_Amount), IntegerEntry((toString(current_round) + "_Hard_Cap_Amount"), Hard_Cap_Amount), IntegerEntry((toString(current_round) + "_Initiated_Height"), height), BooleanEntry((toString(current_round) + "_Allow_Refund"), Allow_Refund), StringEntry("message", presale_init_msg)] | |
62 | 62 | } | |
63 | 63 | ||
64 | 64 | ||
65 | 65 | ||
66 | 66 | @Callable(i) | |
67 | 67 | func PlacePresaleOrder (Enter_Presale_Round) = { | |
68 | 68 | let read_round_token_price = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
69 | 69 | let read_round_start_ts = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
70 | 70 | let read_round_end_ts = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
71 | 71 | let read_Soft_Cap_Amount = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
72 | 72 | let read_Hard_Cap_Amount = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
73 | 73 | let read_Allow_Refund = valueOrErrorMessage(getBoolean(this, (toString(Enter_Presale_Round) + "_Allow_Refund")), "Refund is not set for this Presale Round.") | |
74 | 74 | let WAVES = unit | |
75 | 75 | let currentKey = toBase58String(i.caller.bytes) | |
76 | 76 | let pmt = if ((size(i.payments) == 1)) | |
77 | 77 | then i.payments[0] | |
78 | 78 | else throw(pymterror) | |
79 | 79 | let read_funds_collection = match getInteger(this, (toString(Enter_Presale_Round) + "_Funds_Collection")) { | |
80 | 80 | case a: Int => | |
81 | 81 | a | |
82 | 82 | case _ => | |
83 | 83 | 0 | |
84 | 84 | } | |
85 | 85 | let total_funds_collection = (read_funds_collection + pmt.amount) | |
86 | 86 | let read_total_txns = match getInteger(this, (toString(Enter_Presale_Round) + "_total_txns")) { | |
87 | 87 | case a: Int => | |
88 | 88 | a | |
89 | 89 | case _ => | |
90 | 90 | 0 | |
91 | 91 | } | |
92 | 92 | let total_txns = (read_total_txns + 1) | |
93 | 93 | let read_user_total_funds_deposited = match getInteger(this, ((toString(Enter_Presale_Round) + "_") + currentKey)) { | |
94 | 94 | case a: Int => | |
95 | 95 | a | |
96 | 96 | case _ => | |
97 | 97 | 0 | |
98 | 98 | } | |
99 | 99 | let user_total_funds_deposited = (read_user_total_funds_deposited + pmt.amount) | |
100 | 100 | let pending_softcap_status = (read_Soft_Cap_Amount - total_funds_collection) | |
101 | 101 | let pending_hardcap_status = (read_Hard_Cap_Amount - total_funds_collection) | |
102 | 102 | if (isDefined(pmt.assetId)) | |
103 | 103 | then throw(pymterror) | |
104 | 104 | else if ((read_round_token_price > pmt.amount)) | |
105 | 105 | then throw((((orderpymterror + "[") + toString(read_round_token_price)) + "/10^8.]")) | |
106 | 106 | else if ((read_round_start_ts > lastBlock.timestamp)) | |
107 | 107 | then throw((launch_error + toString(read_round_start_ts))) | |
108 | 108 | else if ((lastBlock.timestamp > read_round_end_ts)) | |
109 | 109 | then throw(presale_end_err) | |
110 | 110 | else if (if ((pending_softcap_status > 0)) | |
111 | 111 | then (pending_hardcap_status > 0) | |
112 | 112 | else false) | |
113 | 113 | then [IntegerEntry((toString(Enter_Presale_Round) + "_Funds_Collection"), total_funds_collection), IntegerEntry(((toString(Enter_Presale_Round) + "_") + currentKey), user_total_funds_deposited), IntegerEntry((toString(Enter_Presale_Round) + "_total_txns"), total_txns), IntegerEntry((toString(Enter_Presale_Round) + "_pending_softcap_status"), pending_softcap_status), IntegerEntry((toString(Enter_Presale_Round) + "_pending_hardcap_status"), pending_hardcap_status), StringEntry((toString(Enter_Presale_Round) + "_softcap_status"), "No"), StringEntry((toString(Enter_Presale_Round) + "_hardcap_status"), "No"), BooleanEntry((toString(Enter_Presale_Round) + "_Allow_Refund"), read_Allow_Refund), StringEntry("message", ordermsg)] | |
114 | 114 | else if (if ((0 >= pending_softcap_status)) | |
115 | 115 | then (pending_hardcap_status > 0) | |
116 | 116 | else false) | |
117 | - | then [IntegerEntry((toString(Enter_Presale_Round) + "_Funds_Collection"), total_funds_collection), IntegerEntry(((toString(Enter_Presale_Round) + "_") + currentKey), user_total_funds_deposited), IntegerEntry((toString(Enter_Presale_Round) + "_total_txns"), total_txns), IntegerEntry((toString(Enter_Presale_Round) + "_pending_softcap_status"), pending_softcap_status), IntegerEntry((toString(Enter_Presale_Round) + "_pending_hardcap_status"), pending_hardcap_status), StringEntry((toString(Enter_Presale_Round) + "_softcap_status"), "Yes"), StringEntry((toString(Enter_Presale_Round) + "_hardcap_status"), "No"), BooleanEntry((toString(Enter_Presale_Round) + "_Allow_Refund"), false), StringEntry("message", ordermsg)] | |
117 | + | then [IntegerEntry((toString(Enter_Presale_Round) + "_Funds_Collection"), total_funds_collection), IntegerEntry(((toString(Enter_Presale_Round) + "_") + currentKey), user_total_funds_deposited), IntegerEntry((toString(Enter_Presale_Round) + "_total_txns"), total_txns), IntegerEntry((toString(Enter_Presale_Round) + "_pending_softcap_status"), pending_softcap_status), IntegerEntry((toString(Enter_Presale_Round) + "_pending_hardcap_status"), pending_hardcap_status), StringEntry((toString(Enter_Presale_Round) + "_softcap_status"), "Yes"), StringEntry((toString(Enter_Presale_Round) + "_hardcap_status"), "No"), BooleanEntry((toString(Enter_Presale_Round) + "_Allow_Refund"), false), ScriptTransfer(controller_address, assetBalance(this, base58''), unit), StringEntry("message", ordermsg)] | |
118 | 118 | else if (if ((0 >= pending_softcap_status)) | |
119 | 119 | then (0 >= pending_hardcap_status) | |
120 | 120 | else false) | |
121 | - | then [IntegerEntry((toString(Enter_Presale_Round) + "_Funds_Collection"), total_funds_collection), IntegerEntry(((toString(Enter_Presale_Round) + "_") + currentKey), user_total_funds_deposited), IntegerEntry((toString(Enter_Presale_Round) + "_total_txns"), total_txns), IntegerEntry((toString(Enter_Presale_Round) + "_pending_softcap_status"), pending_softcap_status), IntegerEntry((toString(Enter_Presale_Round) + "_pending_hardcap_status"), pending_hardcap_status), StringEntry((toString(Enter_Presale_Round) + "_softcap_status"), "Yes"), StringEntry((toString(Enter_Presale_Round) + "_hardcap_status"), "Yes"), BooleanEntry((toString(Enter_Presale_Round) + "_Allow_Refund"), false), StringEntry("message", ordermsg)] | |
121 | + | then [IntegerEntry((toString(Enter_Presale_Round) + "_Funds_Collection"), total_funds_collection), IntegerEntry(((toString(Enter_Presale_Round) + "_") + currentKey), user_total_funds_deposited), IntegerEntry((toString(Enter_Presale_Round) + "_total_txns"), total_txns), IntegerEntry((toString(Enter_Presale_Round) + "_pending_softcap_status"), pending_softcap_status), IntegerEntry((toString(Enter_Presale_Round) + "_pending_hardcap_status"), pending_hardcap_status), StringEntry((toString(Enter_Presale_Round) + "_softcap_status"), "Yes"), StringEntry((toString(Enter_Presale_Round) + "_hardcap_status"), "Yes"), BooleanEntry((toString(Enter_Presale_Round) + "_Allow_Refund"), false), ScriptTransfer(controller_address, assetBalance(this, base58''), unit), StringEntry("message", ordermsg)] | |
122 | 122 | else throw("Error.") | |
123 | 123 | } | |
124 | 124 | ||
125 | 125 | ||
126 | 126 | ||
127 | 127 | @Callable(i) | |
128 | 128 | func Refund (Enter_Presale_Round) = { | |
129 | 129 | let WAVES = unit | |
130 | 130 | let currentKey = toBase58String(i.caller.bytes) | |
131 | 131 | let read_Initiated_Height = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Initiated_Height")), "Initiated Height not Found for this Presale Round.") | |
132 | 132 | let read_round_token_price = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
133 | 133 | let read_round_start_ts = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
134 | 134 | let read_round_end_ts = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
135 | 135 | let read_Soft_Cap_Amount = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
136 | 136 | let read_Hard_Cap_Amount = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
137 | 137 | let read_total_funds_collection = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Funds_Collection")), "Total Funds Collection not Found for this Presale Round.") | |
138 | 138 | let read_user_total_funds_deposited = valueOrErrorMessage(getInteger(this, ((toString(Enter_Presale_Round) + "_") + currentKey)), "No Deposit was made by this Address for this Presale Round.") | |
139 | 139 | let read_Allow_Refund = valueOrErrorMessage(getBoolean(this, (toString(Enter_Presale_Round) + "_Allow_Refund")), "Allow_Refund has no Boolen Entry for this Presale Round.") | |
140 | 140 | let pending_softcap_status = (read_Soft_Cap_Amount - read_total_funds_collection) | |
141 | 141 | let pending_hardcap_status = (read_Hard_Cap_Amount - read_total_funds_collection) | |
142 | 142 | let milliseconds = 1000 | |
143 | 143 | let minute = (60 * milliseconds) | |
144 | 144 | let round_time_difference = (read_round_end_ts - read_round_start_ts) | |
145 | 145 | let additional_safe_blocks = 10 | |
146 | 146 | let blockstimetomature = ((read_Initiated_Height + fraction(round_time_difference, 1, minute)) + additional_safe_blocks) | |
147 | 147 | let pending_refunds = (read_total_funds_collection - read_user_total_funds_deposited) | |
148 | 148 | if ((blockstimetomature > lastBlock.height)) | |
149 | 149 | then throw((((presale_not_end_err + " Please Wait Until ~") + toString(blockstimetomature)) + " Height is reached.")) | |
150 | 150 | else if ((read_Allow_Refund == false)) | |
151 | 151 | then throw(refund_err) | |
152 | 152 | else if ((read_user_total_funds_deposited == 0)) | |
153 | 153 | then throw("Refund has been Already Claimed by this Address.") | |
154 | 154 | else if (if ((pending_softcap_status > 0)) | |
155 | 155 | then (pending_hardcap_status > 0) | |
156 | 156 | else false) | |
157 | 157 | then [ScriptTransfer(addressFromStringValue(currentKey), read_user_total_funds_deposited, WAVES), IntegerEntry(((toString(Enter_Presale_Round) + "_") + "Pending_Refund"), pending_refunds), IntegerEntry(((toString(Enter_Presale_Round) + "_") + currentKey), 0), StringEntry("message", refund_init_msg)] | |
158 | 158 | else if (if ((0 >= pending_softcap_status)) | |
159 | 159 | then (pending_hardcap_status > 0) | |
160 | 160 | else false) | |
161 | 161 | then throw("SoftCap Already Reached for this Round. Please Click on Claim to Receive Your Tokens.") | |
162 | 162 | else if (if ((0 >= pending_softcap_status)) | |
163 | 163 | then (0 >= pending_hardcap_status) | |
164 | 164 | else false) | |
165 | 165 | then throw("SoftCap and Hard Already Reached for this Round. Please Click on Claim to Receive Your Tokens.") | |
166 | 166 | else throw("Wrong Entry Found.") | |
167 | 167 | } | |
168 | 168 | ||
169 | 169 | ||
170 | 170 | @Verifier(tx) | |
171 | 171 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
172 | 172 |
github/deemru/w8io/026f985 45.67 ms ◑