tx · Ezg5DzcMot3xgmkdhxxYJxb5RMM2NPaovSazy29dz8vf 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA: -0.01200000 Waves 2023.08.02 11:47 [2692736] smart account 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA > SELF 0.00000000 Waves
{ "type": 13, "id": "Ezg5DzcMot3xgmkdhxxYJxb5RMM2NPaovSazy29dz8vf", "fee": 1200000, "feeAssetId": null, "timestamp": 1690966057962, "version": 2, "chainId": 84, "sender": "3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA", "senderPublicKey": "CiRX9ubobzbD36ZwTyuBFiPnPkmzMQ7GDsF3hMoVbcVR", "proofs": [ "51jJXbWRVcwqXTmG9yEvao1ERNJBwHJh6e8UhLwGnQGqWfznS2yn6FD44Ak35VeAmbYNCcysdR8iH86bXAnW9gqx" ], "script": "base64:AAIEAAAAAAAAABAIAhIHCgUBAQEBARIDCgEBAAAADAAAAAAjcHJlc2FsZV90aW1lc3RhbXBfY29udHJvbGxlcl9wdWJrZXkBAAAAIOOt17LUijbWojwDE5tgFkw1Y8cwIr3jselcewpp7rwjAAAAABJjb250cm9sbGVyX2FkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAI3ByZXNhbGVfdGltZXN0YW1wX2NvbnRyb2xsZXJfcHVia2V5AAAAAAd0c2Vycm9yAgAAADxFbmQgVGltZXN0YW1wIGNhbid0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byBTdGFydCBUaW1lc3RhbXAAAAAACnByaWNlZXJyb3ICAAAAJlRva2VuIFByaWNlIGNhbid0IGJlIGxlc3MgdGhhbiBvciBaZXJvAAAAAAhjYXBlcnJvcgIAAAAzU29mdCBDYXAgQW1vdW50IGNhbid0IGJlIG1vcmUgdGhhbiBIYXJkIENhcCBBbW91bnQuAAAAAAhvcmRlcm1zZwIAAAAqPGgxPk9yZGVyIFN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+AAAAABBwcmVzYWxlX2luaXRfbXNnAgAAADc8aDE+UHJlU2FsZSBQYXJhbWV0ZXJzIFN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+AAAAAAlweW10ZXJyb3ICAAAAK0RBcHAgTmVlZCBXQVZFUyBUb2tlbiBhcyBBdHRhY2ggcGF5bWVudFsxXS4AAAAADm9yZGVycHltdGVycm9yAgAAAC1BdHRhY2hlZCBwYXltZW50WzFdIGlzIGxlc3MgdGhhbiB0b2tlbiBwcmljZSAAAAAADGxhdW5jaF9lcnJvcgIAAAAmRGFwcCB3aWxsIHN0YXJ0IFByZS1TYWxlIGF0IFRpbWVzdGFtcCAAAAAAC21pbmJhbGVycm9yAgAAAGZNaW5pbXVtIDAuMSBXQVZFUyByZXF1aXJlZCBvbiBZb3VyIEFkZHJlc3MsIFBsZWFzZSBob2xkIG1pbi4gMC4xIFdBVkVTIG9uIHlvdXIgQWRkcmVzcyB0byBwbGFjZSBvcmRlci4AAAAAB3ZvdGVFcnICAAAAIFByZS1TYWxlIGlzIG92ZXIgZm9yIHRoaXMgUm91bmQuAAAAAgAAAAFpAQAAABRTZXRQcmVTYWxlUGFyYW1ldGVycwAAAAUAAAAXUHJlc2FsZV9TdGFydF9UaW1lU3RhbXAAAAAVUHJlc2FsZV9FbmRfVGltZVN0YW1wAAAAC1Rva2VuX1ByaWNlAAAAD1NvZnRfQ2FwX0Ftb3VudAAAAA9IYXJkX0NhcF9BbW91bnQEAAAAB1N0YXJ0VFMFAAAAF1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wBAAAAAVFbmRUUwUAAAAVUHJlc2FsZV9FbmRfVGltZVN0YW1wBAAAABJyZWFkX2Z1bmRpbmdfcm91bmQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAVQ3VycmVudF9GdW5kaW5nX1JvdW5kAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADWN1cnJlbnRfcm91bmQJAABkAAAAAgUAAAAScmVhZF9mdW5kaW5nX3JvdW5kAAAAAAAAAAABAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABJjb250cm9sbGVyX2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAASY29udHJvbGxlcl9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkBAAAAAiE9AAAAAgkAATEAAAABCQABpAAAAAEFAAAAF1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAb1N0YXJ0IFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABVQcmVzYWxlX0VuZF9UaW1lU3RhbXAAAAAAAAAAAA0JAAACAAAAAQIAAABtRW5kIFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAABmAAAAAgAAAAAAAAAAAQUAAAALVG9rZW5fUHJpY2UJAAACAAAAAQUAAAAKcHJpY2VlcnJvcgMJAABnAAAAAgUAAAAHU3RhcnRUUwUAAAAFRW5kVFMJAAACAAAAAQUAAAAHdHNlcnJvcgMJAABmAAAAAgUAAAAPU29mdF9DYXBfQW1vdW50BQAAAA9IYXJkX0NhcF9BbW91bnQJAAACAAAAAQUAAAAIY2FwZXJyb3IJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFUN1cnJlbnRfRnVuZGluZ19Sb3VuZAUAAAANY3VycmVudF9yb3VuZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAGF9QcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAUAAAAHU3RhcnRUUwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAFl9QcmVzYWxlX0VuZF9UaW1lU3RhbXAFAAAABUVuZFRTCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAANY3VycmVudF9yb3VuZAIAAAAMX1Rva2VuX1ByaWNlBQAAAAtUb2tlbl9QcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEF9Tb2Z0X0NhcF9BbW91bnQFAAAAD1NvZnRfQ2FwX0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEF9IYXJkX0NhcF9BbW91bnQFAAAAD0hhcmRfQ2FwX0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEV9Jbml0aWF0ZWRfSGVpZ2h0BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAQcHJlc2FsZV9pbml0X21zZwUAAAADbmlsAAAAAWkBAAAAEVBsYWNlUHJlc2FsZU9yZGVyAAAAAQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kBAAAABZyZWFkX3JvdW5kX3Rva2VuX3ByaWNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADF9Ub2tlbl9QcmljZQIAAAAtVG9rZW4gUHJpY2Ugbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABNyZWFkX3JvdW5kX3N0YXJ0X3RzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAGF9QcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAIAAAAxU3RhcnQgVGltZXN0YW1wIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAARcmVhZF9yb3VuZF9lbmRfdHMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAWX1ByZXNhbGVfRW5kX1RpbWVTdGFtcAIAAAAvRW5kIFRpbWVzdGFtcCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfU29mdF9DYXBfQW1vdW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEF9Tb2Z0X0NhcF9BbW91bnQCAAAAMVNvZnQgQ2FwIEFtb3VudCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfSGFyZF9DYXBfQW1vdW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEF9IYXJkX0NhcF9BbW91bnQCAAAAMUhhcmQgQ2FwIEFtb3VudCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFnNvZnRjYXBfcmVhY2hfc3RhdHVzXzECAAAAAk5vBAAAABZzb2Z0Y2FwX3JlYWNoX3N0YXR1c18yAgAAAANZZXMEAAAAFmhhcmRjYXBfcmVhY2hfc3RhdHVzXzECAAAAAk5vBAAAABZoYXJkY2FwX3JlYWNoX3N0YXR1c18yAgAAAANZZXMEAAAABVdBVkVTBQAAAAR1bml0BAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABBQAAAAlweW10ZXJyb3IEAAAAFXJlYWRfZnVuZHNfY29sbGVjdGlvbgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0Z1bmRzX0NvbGxlY3Rpb24DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgkAAGQAAAACBQAAABVyZWFkX2Z1bmRzX2NvbGxlY3Rpb24IBQAAAANwbXQAAAAGYW1vdW50BAAAAA9yZWFkX3RvdGFsX3R4bnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACnRvdGFsX3R4bnMJAABkAAAAAgUAAAAPcmVhZF90b3RhbF90eG5zAAAAAAAAAAABBAAAAB9yZWFkX3VzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAABkAAAAAgUAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAgFAAAAA3BtdAAAAAZhbW91bnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAEFAAAACXB5bXRlcnJvcgMJAABmAAAAAgUAAAAWcmVhZF9yb3VuZF90b2tlbl9wcmljZQgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAOb3JkZXJweW10ZXJyb3ICAAAAAVsJAAGkAAAAAQUAAAAWcmVhZF9yb3VuZF90b2tlbl9wcmljZQIAAAAHLzEwXjguXQMJAABmAAAAAgUAAAATcmVhZF9yb3VuZF9zdGFydF90cwgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACBQAAAAxsYXVuY2hfZXJyb3IJAAGkAAAAAQUAAAATcmVhZF9yb3VuZF9zdGFydF90cwMJAABmAAAAAgUAAAAUcmVhZF9Tb2Z0X0NhcF9BbW91bnQFAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfRnVuZHNfQ29sbGVjdGlvbgUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQUAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAtfdG90YWxfdHhucwUAAAAKdG90YWxfdHhucwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAABRzb2Z0Y2FwX3JlYWNoX3N0YXR1cwUAAAAWc29mdGNhcF9yZWFjaF9zdGF0dXNfMQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAABRoYXJkY2FwX3JlYWNoX3N0YXR1cwUAAAAWaGFyZGNhcF9yZWFjaF9zdGF0dXNfMQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAAhvcmRlcm1zZwUAAAADbmlsAwkAAGcAAAACBQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uBQAAABRyZWFkX1NvZnRfQ2FwX0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9GdW5kc19Db2xsZWN0aW9uBQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfBQAAAApjdXJyZW50S2V5BQAAABp1c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zBQAAAAp0b3RhbF90eG5zCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAFHNvZnRjYXBfcmVhY2hfc3RhdHVzBQAAABZzb2Z0Y2FwX3JlYWNoX3N0YXR1c18yCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAACG9yZGVybXNnBQAAAANuaWwDCQAAZwAAAAIFAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24FAAAAFHJlYWRfSGFyZF9DYXBfQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0Z1bmRzX0NvbGxlY3Rpb24FAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkFAAAAGnVzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAALX3RvdGFsX3R4bnMFAAAACnRvdGFsX3R4bnMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAUc29mdGNhcF9yZWFjaF9zdGF0dXMFAAAAFnNvZnRjYXBfcmVhY2hfc3RhdHVzXzIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAUaGFyZGNhcF9yZWFjaF9zdGF0dXMFAAAAFmhhcmRjYXBfcmVhY2hfc3RhdHVzXzIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAIb3JkZXJtc2cFAAAAA25pbAkAAAIAAAABAgAAAAZFcnJvci4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleUfTE8A=", "height": 2692736, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Dg1y5eWutS3omXBpRrAqMQEWMR8FBFqkrXTdhnKyQoJm Next: E2UEhaJioiQDDWxWBLa7C8jVpX3aH1ojEuLmoK5MKrAc Diff:
Old | New | Differences | |
---|---|---|---|
11 | 11 | ||
12 | 12 | let caperror = "Soft Cap Amount can't be more than Hard Cap Amount." | |
13 | 13 | ||
14 | - | let | |
14 | + | let ordermsg = "<h1>Order Submitted Successfully!</h1><br>" | |
15 | 15 | ||
16 | 16 | let presale_init_msg = "<h1>PreSale Parameters Submitted Successfully!</h1><br>" | |
17 | 17 | ||
18 | - | let pymterror = "DApp Need 0.1 WAVES Token as Attach payment[1]." | |
18 | + | let pymterror = "DApp Need WAVES Token as Attach payment[1]." | |
19 | + | ||
20 | + | let orderpymterror = "Attached payment[1] is less than token price " | |
19 | 21 | ||
20 | 22 | let launch_error = "Dapp will start Pre-Sale at Timestamp " | |
21 | 23 | ||
22 | - | let minbalerror = " | |
24 | + | let minbalerror = "Minimum 0.1 WAVES required on Your Address, Please hold min. 0.1 WAVES on your Address to place order." | |
23 | 25 | ||
24 | - | let asseterr = "Incorrect asset attach, please attach WAVES Only." | |
25 | - | ||
26 | - | let voteErr = "Pre-Sale Round is over for this Dapp." | |
26 | + | let voteErr = "Pre-Sale is over for this Round." | |
27 | 27 | ||
28 | 28 | @Callable(i) | |
29 | 29 | func SetPreSaleParameters (Presale_Start_TimeStamp,Presale_End_TimeStamp,Token_Price,Soft_Cap_Amount,Hard_Cap_Amount) = { | |
52 | 52 | } | |
53 | 53 | ||
54 | 54 | ||
55 | + | ||
56 | + | @Callable(i) | |
57 | + | func PlacePresaleOrder (Enter_Presale_Round) = { | |
58 | + | let read_round_token_price = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
59 | + | let read_round_start_ts = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
60 | + | let read_round_end_ts = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
61 | + | let read_Soft_Cap_Amount = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
62 | + | let read_Hard_Cap_Amount = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
63 | + | let softcap_reach_status_1 = "No" | |
64 | + | let softcap_reach_status_2 = "Yes" | |
65 | + | let hardcap_reach_status_1 = "No" | |
66 | + | let hardcap_reach_status_2 = "Yes" | |
67 | + | let WAVES = unit | |
68 | + | let currentKey = toBase58String(i.caller.bytes) | |
69 | + | let pmt = if ((size(i.payments) == 1)) | |
70 | + | then i.payments[0] | |
71 | + | else throw(pymterror) | |
72 | + | let read_funds_collection = match getInteger(this, (toString(Enter_Presale_Round) + "_Funds_Collection")) { | |
73 | + | case a: Int => | |
74 | + | a | |
75 | + | case _ => | |
76 | + | 0 | |
77 | + | } | |
78 | + | let total_funds_collection = (read_funds_collection + pmt.amount) | |
79 | + | let read_total_txns = match getInteger(this, (toString(Enter_Presale_Round) + "_total_txns")) { | |
80 | + | case a: Int => | |
81 | + | a | |
82 | + | case _ => | |
83 | + | 0 | |
84 | + | } | |
85 | + | let total_txns = (read_total_txns + 1) | |
86 | + | let read_user_total_funds_deposited = match getInteger(this, ((toString(Enter_Presale_Round) + "_") + currentKey)) { | |
87 | + | case a: Int => | |
88 | + | a | |
89 | + | case _ => | |
90 | + | 0 | |
91 | + | } | |
92 | + | let user_total_funds_deposited = (read_user_total_funds_deposited + pmt.amount) | |
93 | + | if (isDefined(pmt.assetId)) | |
94 | + | then throw(pymterror) | |
95 | + | else if ((read_round_token_price > pmt.amount)) | |
96 | + | then throw((((orderpymterror + "[") + toString(read_round_token_price)) + "/10^8.]")) | |
97 | + | else if ((read_round_start_ts > lastBlock.timestamp)) | |
98 | + | then throw((launch_error + toString(read_round_start_ts))) | |
99 | + | else if ((read_Soft_Cap_Amount > total_funds_collection)) | |
100 | + | 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), StringEntry("softcap_reach_status", softcap_reach_status_1), StringEntry("hardcap_reach_status", hardcap_reach_status_1), StringEntry("message", ordermsg)] | |
101 | + | else if ((total_funds_collection >= read_Soft_Cap_Amount)) | |
102 | + | 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), StringEntry("softcap_reach_status", softcap_reach_status_2), StringEntry("message", ordermsg)] | |
103 | + | else if ((total_funds_collection >= read_Hard_Cap_Amount)) | |
104 | + | 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), StringEntry("softcap_reach_status", softcap_reach_status_2), StringEntry("hardcap_reach_status", hardcap_reach_status_2), StringEntry("message", ordermsg)] | |
105 | + | else throw("Error.") | |
106 | + | } | |
107 | + | ||
108 | + | ||
55 | 109 | @Verifier(tx) | |
56 | 110 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
57 | 111 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
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 tserror = "End Timestamp can't be less than or equal to Start Timestamp" | |
9 | 9 | ||
10 | 10 | let priceerror = "Token Price can't be less than or Zero" | |
11 | 11 | ||
12 | 12 | let caperror = "Soft Cap Amount can't be more than Hard Cap Amount." | |
13 | 13 | ||
14 | - | let | |
14 | + | let ordermsg = "<h1>Order Submitted Successfully!</h1><br>" | |
15 | 15 | ||
16 | 16 | let presale_init_msg = "<h1>PreSale Parameters Submitted Successfully!</h1><br>" | |
17 | 17 | ||
18 | - | let pymterror = "DApp Need 0.1 WAVES Token as Attach payment[1]." | |
18 | + | let pymterror = "DApp Need WAVES Token as Attach payment[1]." | |
19 | + | ||
20 | + | let orderpymterror = "Attached payment[1] is less than token price " | |
19 | 21 | ||
20 | 22 | let launch_error = "Dapp will start Pre-Sale at Timestamp " | |
21 | 23 | ||
22 | - | let minbalerror = " | |
24 | + | let minbalerror = "Minimum 0.1 WAVES required on Your Address, Please hold min. 0.1 WAVES on your Address to place order." | |
23 | 25 | ||
24 | - | let asseterr = "Incorrect asset attach, please attach WAVES Only." | |
25 | - | ||
26 | - | let voteErr = "Pre-Sale Round is over for this Dapp." | |
26 | + | let voteErr = "Pre-Sale is over for this Round." | |
27 | 27 | ||
28 | 28 | @Callable(i) | |
29 | 29 | func SetPreSaleParameters (Presale_Start_TimeStamp,Presale_End_TimeStamp,Token_Price,Soft_Cap_Amount,Hard_Cap_Amount) = { | |
30 | 30 | let StartTS = Presale_Start_TimeStamp | |
31 | 31 | let EndTS = Presale_End_TimeStamp | |
32 | 32 | let read_funding_round = match getInteger(this, "Current_Funding_Round") { | |
33 | 33 | case a: Int => | |
34 | 34 | a | |
35 | 35 | case _ => | |
36 | 36 | 0 | |
37 | 37 | } | |
38 | 38 | let current_round = (read_funding_round + 1) | |
39 | 39 | if ((i.caller != controller_address)) | |
40 | 40 | then throw((("This Address is not Authorized. Only " + toString(controller_address)) + " is Authorized Address to Sign it.")) | |
41 | 41 | else if ((size(toString(Presale_Start_TimeStamp)) != 13)) | |
42 | 42 | then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
43 | 43 | else if ((size(toString(Presale_End_TimeStamp)) != 13)) | |
44 | 44 | then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
45 | 45 | else if ((1 > Token_Price)) | |
46 | 46 | then throw(priceerror) | |
47 | 47 | else if ((StartTS >= EndTS)) | |
48 | 48 | then throw(tserror) | |
49 | 49 | else if ((Soft_Cap_Amount > Hard_Cap_Amount)) | |
50 | 50 | then throw(caperror) | |
51 | 51 | 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), StringEntry("message", presale_init_msg)] | |
52 | 52 | } | |
53 | 53 | ||
54 | 54 | ||
55 | + | ||
56 | + | @Callable(i) | |
57 | + | func PlacePresaleOrder (Enter_Presale_Round) = { | |
58 | + | let read_round_token_price = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
59 | + | let read_round_start_ts = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
60 | + | let read_round_end_ts = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
61 | + | let read_Soft_Cap_Amount = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
62 | + | let read_Hard_Cap_Amount = valueOrErrorMessage(getInteger(this, (toString(Enter_Presale_Round) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
63 | + | let softcap_reach_status_1 = "No" | |
64 | + | let softcap_reach_status_2 = "Yes" | |
65 | + | let hardcap_reach_status_1 = "No" | |
66 | + | let hardcap_reach_status_2 = "Yes" | |
67 | + | let WAVES = unit | |
68 | + | let currentKey = toBase58String(i.caller.bytes) | |
69 | + | let pmt = if ((size(i.payments) == 1)) | |
70 | + | then i.payments[0] | |
71 | + | else throw(pymterror) | |
72 | + | let read_funds_collection = match getInteger(this, (toString(Enter_Presale_Round) + "_Funds_Collection")) { | |
73 | + | case a: Int => | |
74 | + | a | |
75 | + | case _ => | |
76 | + | 0 | |
77 | + | } | |
78 | + | let total_funds_collection = (read_funds_collection + pmt.amount) | |
79 | + | let read_total_txns = match getInteger(this, (toString(Enter_Presale_Round) + "_total_txns")) { | |
80 | + | case a: Int => | |
81 | + | a | |
82 | + | case _ => | |
83 | + | 0 | |
84 | + | } | |
85 | + | let total_txns = (read_total_txns + 1) | |
86 | + | let read_user_total_funds_deposited = match getInteger(this, ((toString(Enter_Presale_Round) + "_") + currentKey)) { | |
87 | + | case a: Int => | |
88 | + | a | |
89 | + | case _ => | |
90 | + | 0 | |
91 | + | } | |
92 | + | let user_total_funds_deposited = (read_user_total_funds_deposited + pmt.amount) | |
93 | + | if (isDefined(pmt.assetId)) | |
94 | + | then throw(pymterror) | |
95 | + | else if ((read_round_token_price > pmt.amount)) | |
96 | + | then throw((((orderpymterror + "[") + toString(read_round_token_price)) + "/10^8.]")) | |
97 | + | else if ((read_round_start_ts > lastBlock.timestamp)) | |
98 | + | then throw((launch_error + toString(read_round_start_ts))) | |
99 | + | else if ((read_Soft_Cap_Amount > total_funds_collection)) | |
100 | + | 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), StringEntry("softcap_reach_status", softcap_reach_status_1), StringEntry("hardcap_reach_status", hardcap_reach_status_1), StringEntry("message", ordermsg)] | |
101 | + | else if ((total_funds_collection >= read_Soft_Cap_Amount)) | |
102 | + | 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), StringEntry("softcap_reach_status", softcap_reach_status_2), StringEntry("message", ordermsg)] | |
103 | + | else if ((total_funds_collection >= read_Hard_Cap_Amount)) | |
104 | + | 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), StringEntry("softcap_reach_status", softcap_reach_status_2), StringEntry("hardcap_reach_status", hardcap_reach_status_2), StringEntry("message", ordermsg)] | |
105 | + | else throw("Error.") | |
106 | + | } | |
107 | + | ||
108 | + | ||
55 | 109 | @Verifier(tx) | |
56 | 110 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
57 | 111 |
github/deemru/w8io/169f3d6 40.90 ms ◑