@shipload/sdk 0.3.4 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/shipload.js CHANGED
@@ -213,7 +213,7 @@ var platform = /*#__PURE__*/Object.freeze({
213
213
  Contract: Contract$1
214
214
  });
215
215
 
216
- const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAB0HYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BmFycml2ZQACBW93bmVyBG5hbWUCaWQGdWludDY0CGJ1eWdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CWNhcmdvX3JvdwAFAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50MTYGbG9hZGVkBnVpbnQxNgpjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAEGY29tbWl0C2NoZWNrc3VtMjU2C2Nvb3JkaW5hdGVzAAIBeAVpbnQ2NAF5BWludDY0BmVuYWJsZQABB2VuYWJsZWQEYm9vbApnb29kX3ByaWNlAAICaWQGdWludDE2BXByaWNlBnVpbnQ2NARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcEaW5pdAABBHNlZWQLY2hlY2tzdW0yNTYEam9pbgABB2FjY291bnQEbmFtZQxsb2FkZXJfc3RhdHMAAwRtYXNzBnVpbnQzMghxdWFudGl0eQZ1aW50MTYGdGhydXN0BnVpbnQzMgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzCnBsYXllcl9yb3cAAwVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDY0BHNhbHQAAQRzYWx0BnVpbnQ2NAlzZWxsZ29vZHMAAwdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQMc2VxdWVuY2Vfcm93AAIDa2V5BG5hbWUFdmFsdWUGdWludDY0CHNoaXBfcm93AAoCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcIbG9jYXRpb24LY29vcmRpbmF0ZXMEc2tpbgV1aW50OAR0aWVyBXVpbnQ4BXN0YXRlCnNoaXBfc3RhdGUFc3RhdHMKc2hpcF9zdGF0cwdsb2FkZXJzDGxvYWRlcl9zdGF0cwp0cmF2ZWxwbGFuDHRyYXZlbF9wbGFuPwpzaGlwX3N0YXRlAAEGZW5lcmd5BnVpbnQzMgpzaGlwX3N0YXRzAAYIY2FwYWNpdHkGdWludDMyBWRyYWluBnVpbnQzMgRtYXNzBnVpbnQ2NAVvcmJpdAZ1aW50MTYIcmVjaGFyZ2UGdWludDMyBnRocnVzdAZ1aW50NjQJc3RhdGVfcm93AAUHZW5hYmxlZARib29sBWVwb2NoBnVpbnQ2NARzYWx0BnVpbnQ2NARzZWVkC2NoZWNrc3VtMjU2BmNvbW1pdAtjaGVja3N1bTI1NgZ0cmF2ZWwABAVvd25lcgRuYW1lAmlkBnVpbnQ2NAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwhyZWNoYXJnZQRib29sC3RyYXZlbF9wbGFuAAMLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMJZGVwYXJ0dXJlCnRpbWVfcG9pbnQIZHVyYXRpb24GdWludDMyDnRyYXZlbF9zdW1tYXJ5AAwFc3RhdHMKc2hpcF9zdGF0cwdsb2FkZXJzDGxvYWRlcl9zdGF0cwZvcmlnaW4LY29vcmRpbmF0ZXMLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIZGlzdGFuY2UGdWludDY0CXRvdGFsbWFzcwZ1aW50NjQMYWNjZWxlcmF0aW9uBnVpbnQ2NApmbGlnaHR0aW1lBnVpbnQ2NAtlbmVyZ3l1c2FnZQZ1aW50NjQMcmVjaGFyZ2V0aW1lBnVpbnQ2NAhsb2FkdGltZQZ1aW50NjQEdGltZQZ1aW50NjQKdHJhdmVsdGltZQACAmlkBnVpbnQ2NAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwR3aXBlAAARAAAAQKFpdjIHYWR2YW5jZdMBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkdmFuY2UKc3VtbWFyeTogJ0FkdmFuY2UgdHVybicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQWR2YW5jZSB0aGUgZ2FtZSB0byB0aGUgbmV4dCB0dXJuLgAAAACo7e41BmFycml2ZbMCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFycml2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgdHJhdmVsJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDb21wbGV0ZSB0aGUgdHJhdmVsIG9mIGEgc2hpcCBieSB1cGRhdGluZyBpdHMgbG9jYXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGNvb3JkaW5hdGVzIGFmdGVyIHRoZSB0cmF2ZWwgZHVyYXRpb24gaGFzIHBhc3NlZC4KCi0tLQAAADhRyrw+CGJ1eWdvb2Rz3QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYnV5Z29vZHMKc3VtbWFyeTogJ0J1eSBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUHVyY2hhc2UgZ29vZHMgYW5kIGFkZCB0aGVtIHRvIGEgc2hpcCdzIGNhcmdvLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAZCclRQZjb21taXTxAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uCgotLS0AAAAAqHjMVAZlbmFibGXiAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQuCgotLS0AAAAAANCwaQRoYXNo/QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgoKLS0tAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAAAAAJDddARpbml0+gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdApzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgc2VlZCB2YWx1ZXMgdG8gYm9vdHN0cmFwIGdhbWUgc3RhdGUuAAAAAAAwHX0Eam9pbskBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAoKLS0tABRyt2YFr5ELbWFya2V0cHJpY2WbAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZQpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGdvb2QgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhIHNwZWNpZmllZCBnb29kIGF0IGEgZ2l2ZW4gbG9jYXRpb24uCgotLS2AFXK3ZgWvkQxtYXJrZXRwcmljZXOVAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZXMKc3VtbWFyeTogJ0dldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgYSBnaXZlbiBsb2NhdGlvbi4AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAAAES1zc0GdHJhdmVs/QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIGEgc2hpcCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgdHJhdmVsIG9mIGEgc2hpcCBmcm9tIGl0cyBjdXJyZW50IGxvY2F0aW9uIHRvIGEgbmV3IGRlc3RpbmF0aW9uLgoKLS0tAICSLke1zc0KdHJhdmVsdGltZYwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbHRpbWUKc3VtbWFyeTogJ0VzdGltYXRlIFRyYXZlbCBUaW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFc3RpbWF0ZSB0aGUgZHVyYXRpb24gb2YgYSBzaGlwIHRyYXZlbGluZyB3aXRob3V0IGNvbW1pdHRpbmcgdG8gdGhlIGFjdGlvbi4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0FAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAAAUAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyABRyt2YFr5EKZ29vZF9wcmljZYAVcrdmBa+RDGdvb2RfcHJpY2VbXQCAki5Htc3NDnRyYXZlbF9zdW1tYXJ5');
216
+ const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAB4HYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BmFycml2ZQABAmlkBnVpbnQ2NAhidXlnb29kcwADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAljYXJnb19yb3cABQJpZAZ1aW50NjQHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDE2BmxvYWRlZAZ1aW50MTYKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngtjb29yZGluYXRlcwACAXgFaW50NjQBeQVpbnQ2NAZlbmFibGUAAQdlbmFibGVkBGJvb2wKZ29vZF9wcmljZQACAmlkBnVpbnQxNgVwcmljZQZ1aW50NjQEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nBGluaXQAAQRzZWVkC2NoZWNrc3VtMjU2BGpvaW4AAQdhY2NvdW50BG5hbWUMbG9hZGVyX3N0YXRzAAMEbWFzcwZ1aW50MzIIcXVhbnRpdHkGdWludDE2BnRocnVzdAZ1aW50MzILbWFya2V0cHJpY2UAAghsb2NhdGlvbgtjb29yZGluYXRlcwdnb29kX2lkBnVpbnQxNgxtYXJrZXRwcmljZXMAAQhsb2NhdGlvbgtjb29yZGluYXRlcwpwbGF5ZXJfcm93AAMFb3duZXIEbmFtZQdiYWxhbmNlBnVpbnQ2NARkZWJ0BnVpbnQ2NARzYWx0AAEEc2FsdAZ1aW50NjQJc2VsbGdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0DHNlcXVlbmNlX3JvdwACA2tleQRuYW1lBXZhbHVlBnVpbnQ2NAhzaGlwX3JvdwAKAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nCGxvY2F0aW9uC2Nvb3JkaW5hdGVzBHNraW4FdWludDgEdGllcgV1aW50OAVzdGF0ZQpzaGlwX3N0YXRlBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMKdHJhdmVscGxhbgx0cmF2ZWxfcGxhbj8Kc2hpcF9zdGF0ZQABBmVuZXJneQZ1aW50MzIKc2hpcF9zdGF0cwAGCGNhcGFjaXR5BnVpbnQzMgVkcmFpbgZ1aW50MzIEbWFzcwZ1aW50NjQFb3JiaXQGdWludDE2CHJlY2hhcmdlBnVpbnQzMgZ0aHJ1c3QGdWludDY0CXN0YXRlX3JvdwAFB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50NjQEc2FsdAZ1aW50NjQEc2VlZAtjaGVja3N1bTI1NgZjb21taXQLY2hlY2tzdW0yNTYGdHJhdmVsAAMCaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCHJlY2hhcmdlBGJvb2wLdHJhdmVsX3BsYW4ACAlkZXBhcnR1cmUKdGltZV9wb2ludAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwpmbGlnaHR0aW1lBnVpbnQzMghsb2FkdGltZQZ1aW50MzIMcmVjaGFyZ2V0aW1lBnVpbnQzMgRtYXNzBnVpbnQ2NAtlbmVyZ3l1c2FnZQZ1aW50MzIIZGlzdGFuY2UGdWludDY0DnRyYXZlbF9zdW1tYXJ5AAwFc3RhdHMKc2hpcF9zdGF0cwdsb2FkZXJzDGxvYWRlcl9zdGF0cwZvcmlnaW4LY29vcmRpbmF0ZXMLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIZGlzdGFuY2UGdWludDY0CXRvdGFsbWFzcwZ1aW50NjQMYWNjZWxlcmF0aW9uB2Zsb2F0NjQKZmxpZ2h0dGltZQZ1aW50NjQLZW5lcmd5dXNhZ2UGdWludDY0DHJlY2hhcmdldGltZQZ1aW50NjQIbG9hZHRpbWUGdWludDY0BHRpbWUGdWludDY0CnRyYXZlbHBsYW4ABAJpZAZ1aW50NjQGb3JpZ2luC2Nvb3JkaW5hdGVzC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCHJlY2hhcmdlBGJvb2wKdHJhdmVsdGltZQACAmlkBnVpbnQ2NAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwR3aXBlAAASAAAAQKFpdjIHYWR2YW5jZdMBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkdmFuY2UKc3VtbWFyeTogJ0FkdmFuY2UgdHVybicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQWR2YW5jZSB0aGUgZ2FtZSB0byB0aGUgbmV4dCB0dXJuLgAAAACo7e41BmFycml2ZbMCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFycml2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgdHJhdmVsJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDb21wbGV0ZSB0aGUgdHJhdmVsIG9mIGEgc2hpcCBieSB1cGRhdGluZyBpdHMgbG9jYXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGNvb3JkaW5hdGVzIGFmdGVyIHRoZSB0cmF2ZWwgZHVyYXRpb24gaGFzIHBhc3NlZC4KCi0tLQAAADhRyrw+CGJ1eWdvb2Rz3QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYnV5Z29vZHMKc3VtbWFyeTogJ0J1eSBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUHVyY2hhc2UgZ29vZHMgYW5kIGFkZCB0aGVtIHRvIGEgc2hpcCdzIGNhcmdvLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAZCclRQZjb21taXTxAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uCgotLS0AAAAAqHjMVAZlbmFibGXiAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQuCgotLS0AAAAAANCwaQRoYXNo/QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgoKLS0tAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAAAAAJDddARpbml0+gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdApzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgc2VlZCB2YWx1ZXMgdG8gYm9vdHN0cmFwIGdhbWUgc3RhdGUuAAAAAAAwHX0Eam9pbskBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAoKLS0tABRyt2YFr5ELbWFya2V0cHJpY2WbAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZQpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGdvb2QgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhIHNwZWNpZmllZCBnb29kIGF0IGEgZ2l2ZW4gbG9jYXRpb24uCgotLS2AFXK3ZgWvkQxtYXJrZXRwcmljZXOVAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZXMKc3VtbWFyeTogJ0dldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgYSBnaXZlbiBsb2NhdGlvbi4AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAAAES1zc0GdHJhdmVsyAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIGEgc2hpcCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgdHJhdmVsIG9mIGEgc2hpcCBmcm9tIGl0cyBjdXJyZW50IGxvY2F0aW9uIHRvIGEgbmV3IGRlc3RpbmF0aW9uLgoKLS0tCgpUaGlzIGFjdGlvbiBkZXRlcm1pbmVzIHRoZSBtYXJrZXQgcHJpY2Ugb2YgYWxsIGdvb2RzIGF0IGEgZ2l2ZW4gbG9jYXRpb24uAMA0sUa1zc0KdHJhdmVscGxhbo4CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbHBsYW4Kc3VtbWFyeTogJ0VzdGltYXRlIGEgdHJhdmVsIHBsYW4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZSB3aGF0IHRoZSB0cmF2ZWwgcGxhbiBpcyBmb3IgYSBzaGlwIHRyYXZlbGluZyB0byBhIGdpdmVuIGxvY2F0aW9uLgoKLS0tAICSLke1zc0KdHJhdmVsdGltZYwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbHRpbWUKc3VtbWFyeTogJ0VzdGltYXRlIFRyYXZlbCBUaW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFc3RpbWF0ZSB0aGUgZHVyYXRpb24gb2YgYSBzaGlwIHRyYXZlbGluZyB3aXRob3V0IGNvbW1pdHRpbmcgdG8gdGhlIGFjdGlvbi4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0FAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAAAYAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyABRyt2YFr5EKZ29vZF9wcmljZYAVcrdmBa+RDGdvb2RfcHJpY2VbXQDANLFGtc3NC3RyYXZlbF9wbGFuAICSLke1zc0OdHJhdmVsX3N1bW1hcnk=');
217
217
  const abi = antelope.ABI.from(abiBlob);
218
218
  var Types;
219
219
  (function (Types) {
@@ -231,9 +231,6 @@ var Types;
231
231
  Types.advance = advance;
232
232
  let arrive = class arrive extends antelope.Struct {
233
233
  };
234
- tslib.__decorate([
235
- antelope.Struct.field(antelope.Name)
236
- ], arrive.prototype, "owner", void 0);
237
234
  tslib.__decorate([
238
235
  antelope.Struct.field(antelope.UInt64)
239
236
  ], arrive.prototype, "id", void 0);
@@ -492,15 +489,30 @@ var Types;
492
489
  Types.ship_stats = ship_stats;
493
490
  let travel_plan = class travel_plan extends antelope.Struct {
494
491
  };
492
+ tslib.__decorate([
493
+ antelope.Struct.field(antelope.TimePoint)
494
+ ], travel_plan.prototype, "departure", void 0);
495
495
  tslib.__decorate([
496
496
  antelope.Struct.field(coordinates)
497
497
  ], travel_plan.prototype, "destination", void 0);
498
498
  tslib.__decorate([
499
- antelope.Struct.field(antelope.TimePoint)
500
- ], travel_plan.prototype, "departure", void 0);
499
+ antelope.Struct.field(antelope.UInt32)
500
+ ], travel_plan.prototype, "flighttime", void 0);
501
+ tslib.__decorate([
502
+ antelope.Struct.field(antelope.UInt32)
503
+ ], travel_plan.prototype, "loadtime", void 0);
504
+ tslib.__decorate([
505
+ antelope.Struct.field(antelope.UInt32)
506
+ ], travel_plan.prototype, "rechargetime", void 0);
507
+ tslib.__decorate([
508
+ antelope.Struct.field(antelope.UInt64)
509
+ ], travel_plan.prototype, "mass", void 0);
501
510
  tslib.__decorate([
502
511
  antelope.Struct.field(antelope.UInt32)
503
- ], travel_plan.prototype, "duration", void 0);
512
+ ], travel_plan.prototype, "energyusage", void 0);
513
+ tslib.__decorate([
514
+ antelope.Struct.field(antelope.UInt64)
515
+ ], travel_plan.prototype, "distance", void 0);
504
516
  travel_plan = tslib.__decorate([
505
517
  antelope.Struct.type('travel_plan')
506
518
  ], travel_plan);
@@ -564,9 +576,6 @@ var Types;
564
576
  Types.state_row = state_row;
565
577
  let travel = class travel extends antelope.Struct {
566
578
  };
567
- tslib.__decorate([
568
- antelope.Struct.field(antelope.Name)
569
- ], travel.prototype, "owner", void 0);
570
579
  tslib.__decorate([
571
580
  antelope.Struct.field(antelope.UInt64)
572
581
  ], travel.prototype, "id", void 0);
@@ -601,7 +610,7 @@ var Types;
601
610
  antelope.Struct.field(antelope.UInt64)
602
611
  ], travel_summary.prototype, "totalmass", void 0);
603
612
  tslib.__decorate([
604
- antelope.Struct.field(antelope.UInt64)
613
+ antelope.Struct.field(antelope.Float64)
605
614
  ], travel_summary.prototype, "acceleration", void 0);
606
615
  tslib.__decorate([
607
616
  antelope.Struct.field(antelope.UInt64)
@@ -622,6 +631,24 @@ var Types;
622
631
  antelope.Struct.type('travel_summary')
623
632
  ], travel_summary);
624
633
  Types.travel_summary = travel_summary;
634
+ let travelplan = class travelplan extends antelope.Struct {
635
+ };
636
+ tslib.__decorate([
637
+ antelope.Struct.field(antelope.UInt64)
638
+ ], travelplan.prototype, "id", void 0);
639
+ tslib.__decorate([
640
+ antelope.Struct.field(coordinates)
641
+ ], travelplan.prototype, "origin", void 0);
642
+ tslib.__decorate([
643
+ antelope.Struct.field(coordinates)
644
+ ], travelplan.prototype, "destination", void 0);
645
+ tslib.__decorate([
646
+ antelope.Struct.field('bool')
647
+ ], travelplan.prototype, "recharge", void 0);
648
+ travelplan = tslib.__decorate([
649
+ antelope.Struct.type('travelplan')
650
+ ], travelplan);
651
+ Types.travelplan = travelplan;
625
652
  let traveltime = class traveltime extends antelope.Struct {
626
653
  };
627
654
  tslib.__decorate([
@@ -677,12 +704,10 @@ var server = /*#__PURE__*/Object.freeze({
677
704
  });
678
705
 
679
706
  function getCurrentEpoch(game) {
680
- return tslib.__awaiter(this, void 0, void 0, function* () {
681
- const current = new Date().getTime();
682
- const difference = (current - game.config.start.toDate().getTime()) / 1000;
683
- const epoch = Math.floor(difference / Number(game.config.epochtime)) + 1;
684
- return epoch;
685
- });
707
+ const current = new Date().getTime();
708
+ const difference = (current - game.config.start.toMilliseconds()) / 1000;
709
+ const epoch = Math.floor(difference / Number(game.config.epochtime)) + 1;
710
+ return epoch;
686
711
  }
687
712
 
688
713
  function hash(seed, string) {
@@ -694,164 +719,261 @@ function hash512(seed, string) {
694
719
  return antelope.Checksum512.hash(bytes);
695
720
  }
696
721
 
697
- function distanceTraveled(ship) {
698
- if (ship.travelplan) {
699
- const { departure, duration } = ship.travelplan;
700
- return (+new Date() - +departure.toDate()) / (Number(duration) * 1000);
701
- }
702
- return 0;
703
- }
704
- function distanceBetweenCoordinates(origin, destination) {
705
- return distanceBetweenPoints(origin.x, origin.y, destination.x, destination.y);
706
- }
707
- function distanceBetweenPoints(x1, y1, x2, y2) {
708
- const x = Math.pow(x1 - x2, 2);
709
- const y = Math.pow(y1 - y2, 2);
710
- return antelope.UInt16.from(Math.sqrt(x + y));
711
- }
712
- function lerp(origin, destination, time) {
713
- return {
714
- x: (1 - time) * Number(origin.x) + time * Number(destination.x),
715
- y: (1 - time) * Number(origin.y) + time * Number(destination.y),
716
- };
717
- }
718
- function rotation(origin, destination) {
719
- return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
720
- }
721
- function hasPlanet(seed, coordinates) {
722
- const str = ['system', coordinates.x, coordinates.y].join('-');
723
- return String(hash512(seed, str)).slice(0, 2) === '00';
724
- }
725
- function findNearbyPlanets(seed, origin, maxDistance = 20) {
726
- const nearbySystems = [];
727
- const max = antelope.UInt16.from(maxDistance);
728
- const xMin = antelope.Int64.from(origin.x).subtracting(max);
729
- const xMax = antelope.Int64.from(origin.x).adding(max);
730
- const yMin = antelope.Int64.from(origin.y).subtracting(max);
731
- const yMax = antelope.Int64.from(origin.y).adding(max);
732
- for (let x = Number(xMin); x <= Number(xMax); x++) {
733
- for (let y = Number(yMin); y <= Number(yMax); y++) {
734
- const samePlace = x === origin.x && y === origin.y;
735
- if (!samePlace) {
736
- const distance = distanceBetweenPoints(origin.x, origin.y, x, y);
737
- if (Number(distance) <= Number(max)) {
738
- const system = hasPlanet(seed, { x, y });
739
- if (system) {
740
- nearbySystems.push({ origin, destination: { x, y }, distance });
741
- }
742
- }
743
- }
744
- }
745
- }
746
- return nearbySystems;
747
- }
722
+ const PRECISION = 10000;
748
723
 
749
724
  const goods = [
750
725
  {
751
- id: antelope.UInt16.from(1),
726
+ id: 1,
752
727
  name: 'FizzGlo',
753
728
  description: 'Pops with flavor! A neon drink that makes your burps glow.',
754
- base_price: antelope.UInt64.from(200),
755
- mass: antelope.UInt64.from(500),
729
+ base_price: 200,
730
+ mass: 5000,
756
731
  },
757
732
  {
758
- id: antelope.UInt16.from(2),
733
+ id: 2,
759
734
  name: 'ZapSnacks',
760
735
  description: 'Electric taste! Spicy edible energy sparks for a tongue-tingling experience.',
761
- base_price: antelope.UInt64.from(300),
762
- mass: antelope.UInt64.from(2000),
736
+ base_price: 300,
737
+ mass: 2000,
763
738
  },
764
739
  {
765
- id: antelope.UInt16.from(3),
740
+ id: 3,
766
741
  name: 'Blob Buddies',
767
742
  description: 'Squishy friends! Clingy, cute and mood-matching pet blobs for every home!',
768
- base_price: antelope.UInt64.from(400),
769
- mass: antelope.UInt64.from(10000),
743
+ base_price: 400,
744
+ mass: 10000,
770
745
  },
771
746
  {
772
- id: antelope.UInt16.from(4),
747
+ id: 4,
773
748
  name: 'TuneTooth',
774
749
  description: 'Whistle while you eat! Edible instrument treats that play tunes when chewed.',
775
- base_price: antelope.UInt64.from(600),
776
- mass: antelope.UInt64.from(3000),
750
+ base_price: 600,
751
+ mass: 3000,
777
752
  },
778
753
  {
779
- id: antelope.UInt16.from(5),
754
+ id: 5,
780
755
  name: 'SunPods',
781
756
  description: 'Miniature suns in your pocket providing on-demand light & warmth.',
782
- base_price: antelope.UInt64.from(800),
783
- mass: antelope.UInt64.from(1000),
757
+ base_price: 800,
758
+ mass: 1000,
784
759
  },
785
760
  {
786
- id: antelope.UInt16.from(6),
761
+ id: 6,
787
762
  name: 'Fuzzix',
788
763
  description: 'Pocket-sized quantum fluff generator for instant comfy.',
789
- base_price: antelope.UInt64.from(1000),
790
- mass: antelope.UInt64.from(4000),
764
+ base_price: 1000,
765
+ mass: 4000,
791
766
  },
792
767
  {
793
- id: antelope.UInt16.from(7),
768
+ id: 7,
794
769
  name: 'GlowGo',
795
770
  description: 'Ingestible bioluminescent jelly, your inside glows in the dark!',
796
- base_price: antelope.UInt64.from(140),
797
- mass: antelope.UInt64.from(3000),
771
+ base_price: 140,
772
+ mass: 10000,
798
773
  },
799
774
  {
800
- id: antelope.UInt16.from(8),
775
+ id: 8,
801
776
  name: 'KrackleKaps',
802
777
  description: 'Capsules packed with tiny firecrackers, spice up meals and parties.',
803
- base_price: antelope.UInt64.from(180),
804
- mass: antelope.UInt64.from(2000),
778
+ base_price: 180,
779
+ mass: 2000,
805
780
  },
806
781
  {
807
- id: antelope.UInt16.from(9),
782
+ id: 9,
808
783
  name: 'PlasmaMints',
809
784
  description: 'Hypercharged candy giving plasma breath capable of cutting through steel.',
810
- base_price: antelope.UInt64.from(220),
811
- mass: antelope.UInt64.from(500),
785
+ base_price: 220,
786
+ mass: 500,
812
787
  },
813
788
  {
814
- id: antelope.UInt16.from(10),
789
+ id: 10,
815
790
  name: 'TimeTreats',
816
791
  description: 'Confectionery morsels releasing slow-mo effect over a limited period.',
817
- base_price: antelope.UInt64.from(250),
818
- mass: antelope.UInt64.from(3000),
792
+ base_price: 250,
793
+ mass: 3000,
819
794
  },
820
795
  {
821
- id: antelope.UInt16.from(11),
796
+ id: 11,
822
797
  name: 'QuantumQuencher',
823
798
  description: 'Bottled hyper-fluid quenching thirst across multiple parallel realities simultaneously.',
824
- base_price: antelope.UInt64.from(300),
825
- mass: antelope.UInt64.from(6000),
799
+ base_price: 300,
800
+ mass: 6000,
826
801
  },
827
802
  {
828
- id: antelope.UInt16.from(12),
803
+ id: 12,
829
804
  name: 'TransmatterTruffles',
830
805
  description: 'Delectable chocolates instantly teleporting consumers short distances.',
831
- base_price: antelope.UInt64.from(350),
832
- mass: antelope.UInt64.from(4000),
806
+ base_price: 350,
807
+ mass: 4000,
833
808
  },
834
809
  {
835
- id: antelope.UInt16.from(13),
810
+ id: 13,
836
811
  name: 'MemoryGum',
837
812
  description: 'Chewable gum storing or replaying memories while being chewed.',
838
- base_price: antelope.UInt64.from(400),
839
- mass: antelope.UInt64.from(500),
813
+ base_price: 400,
814
+ mass: 500,
840
815
  },
841
816
  {
842
- id: antelope.UInt16.from(14),
817
+ id: 14,
843
818
  name: 'SymbioSnack',
844
819
  description: 'Edible alien larvae adopting owner’s taste preference upon consumption.',
845
- base_price: antelope.UInt64.from(500),
846
- mass: antelope.UInt64.from(1000),
820
+ base_price: 500,
821
+ mass: 10000,
847
822
  },
848
823
  ];
824
+ const goodIds = goods.map((g) => g.id);
849
825
  function getGood(good_id) {
850
- const good = goods.find((g) => g.id.equals(good_id));
826
+ const good = goods.find((g) => antelope.UInt16.from(good_id).equals(g.id));
851
827
  if (!good) {
852
828
  throw new Error('Good does not exist');
853
829
  }
854
- return good;
830
+ return Object.assign(Object.assign({}, good), { id: antelope.UInt16.from(good.id), base_price: antelope.UInt64.from(good.base_price), mass: antelope.UInt64.from(good.mass).multiplying(PRECISION) });
831
+ }
832
+ function getGoods() {
833
+ return goods.map((g) => getGood(g.id));
834
+ }
835
+
836
+ function travelplanDuration(travelplan) {
837
+ return antelope.UInt32.from(travelplan.flighttime)
838
+ .adding(travelplan.rechargetime)
839
+ .adding(travelplan.loadtime);
840
+ }
841
+ function distanceTraveled(ship, current = new Date()) {
842
+ if (ship.travelplan) {
843
+ const { departure } = ship.travelplan;
844
+ const duration = travelplanDuration(ship.travelplan);
845
+ return (+current - +departure.toDate()) / (Number(duration) * 1000);
846
+ }
847
+ return 0;
848
+ }
849
+ function distanceBetweenCoordinates(origin, destination) {
850
+ return distanceBetweenPoints(origin.x, origin.y, destination.x, destination.y);
851
+ }
852
+ function distanceBetweenPoints(x1, y1, x2, y2) {
853
+ const x = Math.pow(x1 - x2, 2);
854
+ const y = Math.pow(y1 - y2, 2);
855
+ return antelope.UInt64.from(Math.sqrt(x + y) * PRECISION);
856
+ }
857
+ function lerp(origin, destination, time) {
858
+ return {
859
+ x: (1 - time) * Number(origin.x) + time * Number(destination.x),
860
+ y: (1 - time) * Number(origin.y) + time * Number(destination.y),
861
+ };
862
+ }
863
+ function rotation(origin, destination) {
864
+ return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
865
+ }
866
+ function hasSystem(seed, coordinates) {
867
+ const str = ['system', coordinates.x, coordinates.y].join('-');
868
+ return String(hash512(seed, str)).slice(0, 2) === '00';
869
+ }
870
+ function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION) {
871
+ const nearbySystems = [];
872
+ const max = antelope.UInt64.from(maxDistance / PRECISION);
873
+ const xMin = antelope.Int64.from(origin.x).subtracting(max);
874
+ const xMax = antelope.Int64.from(origin.x).adding(max);
875
+ const yMin = antelope.Int64.from(origin.y).subtracting(max);
876
+ const yMax = antelope.Int64.from(origin.y).adding(max);
877
+ for (let x = Number(xMin); x <= Number(xMax); x++) {
878
+ for (let y = Number(yMin); y <= Number(yMax); y++) {
879
+ const samePlace = x === origin.x && y === origin.y;
880
+ if (!samePlace) {
881
+ const distance = distanceBetweenPoints(origin.x, origin.y, x, y);
882
+ if (Number(distance) <= Number(maxDistance)) {
883
+ const system = hasSystem(seed, { x, y });
884
+ if (system) {
885
+ nearbySystems.push({ origin, destination: { x, y }, distance });
886
+ }
887
+ }
888
+ }
889
+ }
890
+ }
891
+ return nearbySystems;
892
+ }
893
+ function travelplan(game, ship, cargos, origin, destination, recharge) {
894
+ const valid = hasSystem(game.config.seed, destination);
895
+ if (!valid) {
896
+ throw new Error('Invalid destination');
897
+ }
898
+ const distance = distanceBetweenCoordinates(origin, destination);
899
+ const mass = calc_ship_mass(ship, cargos);
900
+ const loadtime = calc_ship_loadtime(ship, cargos);
901
+ const flighttime = calc_ship_flighttime(ship, mass, distance);
902
+ const rechargetime = recharge ? calc_ship_rechargetime(ship) : 0;
903
+ const energyusage = calc_energyusage(ship.stats.drain, flighttime);
904
+ return Types.travel_plan.from({
905
+ departure: antelope.BlockTimestamp.fromDate(new Date()),
906
+ destination,
907
+ loadtime,
908
+ flighttime,
909
+ rechargetime,
910
+ distance,
911
+ energyusage,
912
+ mass,
913
+ });
914
+ }
915
+ function calc_rechargetime(capacity, energy, recharge) {
916
+ return antelope.UInt32.from(capacity).subtracting(energy).dividing(recharge);
917
+ }
918
+ function calc_ship_rechargetime(ship) {
919
+ return calc_rechargetime(ship.stats.capacity, ship.state.energy, ship.stats.recharge);
920
+ }
921
+ function calc_ship_loadtime(ship, cargos) {
922
+ const loadtime = antelope.UInt32.from(0);
923
+ const mass_load = antelope.UInt64.from(0);
924
+ const mass_unload = antelope.UInt64.from(0);
925
+ for (const cargo of cargos) {
926
+ const cargo_delta = Number(cargo.quantity) - Number(cargo.loaded);
927
+ if (cargo_delta !== 0) {
928
+ const good_mass = getGood(cargo.good_id).mass;
929
+ const cargo_mass = good_mass.multiplying(Math.abs(cargo_delta));
930
+ if (cargo_delta > 0) {
931
+ mass_load.add(cargo_mass);
932
+ }
933
+ else {
934
+ mass_unload.add(cargo_mass);
935
+ }
936
+ }
937
+ }
938
+ if (Number(mass_load) > 0 || Number(mass_unload) > 0) {
939
+ mass_load.add(ship.loaders.mass);
940
+ loadtime.add(calc_loader_flighttime(ship, mass_load));
941
+ mass_unload.add(ship.loaders.mass);
942
+ loadtime.add(calc_loader_flighttime(ship, mass_unload));
943
+ }
944
+ return loadtime.dividing(ship.loaders.quantity);
945
+ }
946
+ function calc_flighttime(distance, acceleration) {
947
+ return antelope.UInt32.from(2 * Math.sqrt(Number(distance) / acceleration));
948
+ }
949
+ function calc_loader_flighttime(ship, mass) {
950
+ return calc_flighttime(ship.stats.orbit, calc_loader_acceleration(ship, mass));
951
+ }
952
+ function calc_loader_acceleration(ship, mass) {
953
+ return calc_acceleration(Number(ship.loaders.thrust), Number(mass) + Number(ship.loaders.mass));
954
+ }
955
+ function calc_ship_flighttime(ship, mass, distance) {
956
+ const acceleration = calc_ship_acceleration(ship, mass);
957
+ return calc_flighttime(distance, acceleration);
958
+ }
959
+ function calc_ship_acceleration(ship, mass) {
960
+ return calc_acceleration(Number(ship.stats.thrust), Number(mass));
961
+ }
962
+ function calc_acceleration(thrust, mass) {
963
+ return (thrust / mass) * PRECISION;
964
+ }
965
+ function calc_ship_mass(ship, cargos) {
966
+ const mass = antelope.UInt64.from(ship.stats.mass);
967
+ if (Number(ship.loaders.quantity) > 0) {
968
+ mass.add(ship.loaders.mass.multiplying(ship.loaders.quantity));
969
+ }
970
+ for (const cargo of cargos) {
971
+ mass.add(getGood(cargo.good_id).mass.multiplying(cargo.quantity));
972
+ }
973
+ return mass;
974
+ }
975
+ function calc_energyusage(drain, flighttime) {
976
+ return antelope.UInt32.from(drain).multiplying(flighttime);
855
977
  }
856
978
 
857
979
  function roll(game_seed, roll_seed) {
@@ -869,7 +991,7 @@ function marketprice(location, good_id, gameSeed, epochSeed) {
869
991
  }
870
992
  function marketprices(location, gameSeed, epochSeed) {
871
993
  return tslib.__awaiter(this, void 0, void 0, function* () {
872
- return Promise.all(goods.map((good) => tslib.__awaiter(this, void 0, void 0, function* () {
994
+ return Promise.all(getGoods().map((good) => tslib.__awaiter(this, void 0, void 0, function* () {
873
995
  const price = yield marketprice(location, good.id, gameSeed, epochSeed);
874
996
  return { price, good: good };
875
997
  })));
@@ -988,10 +1110,10 @@ class Shipload {
988
1110
  return marketprices(location, game.config.seed, state.seed);
989
1111
  });
990
1112
  }
991
- hasPlanet(location) {
1113
+ hasSystem(location) {
992
1114
  return tslib.__awaiter(this, void 0, void 0, function* () {
993
1115
  const game = yield this.getGame();
994
- return hasPlanet(game.config.seed, location);
1116
+ return hasSystem(game.config.seed, location);
995
1117
  });
996
1118
  }
997
1119
  findNearbyPlanets(origin, maxDistance = 20) {
@@ -1000,6 +1122,17 @@ class Shipload {
1000
1122
  return findNearbyPlanets(game.config.seed, origin, maxDistance);
1001
1123
  });
1002
1124
  }
1125
+ travelplan(ship, origin, destination, recharge = false) {
1126
+ return tslib.__awaiter(this, void 0, void 0, function* () {
1127
+ const game = yield this.getGame();
1128
+ const cargos = yield this.server.table('cargo').all({
1129
+ from: ship.id,
1130
+ to: ship.id,
1131
+ index_position: 'secondary',
1132
+ });
1133
+ return travelplan(game, ship, cargos, origin, destination, recharge);
1134
+ });
1135
+ }
1003
1136
  }
1004
1137
 
1005
1138
  exports.ERROR_SYSTEM_NOT_INITIALIZED = ERROR_SYSTEM_NOT_INITIALIZED;
@@ -1008,11 +1141,23 @@ exports.GOOD_NOT_AVAILABLE_AT_LOCATION = GOOD_NOT_AVAILABLE_AT_LOCATION;
1008
1141
  exports.INSUFFICIENT_BALANCE = INSUFFICIENT_BALANCE;
1009
1142
  exports.INSUFFICIENT_GOOD_QUANTITY = INSUFFICIENT_GOOD_QUANTITY;
1010
1143
  exports.PLAYER_NOT_FOUND = PLAYER_NOT_FOUND;
1144
+ exports.PRECISION = PRECISION;
1011
1145
  exports.PlatformContract = platform;
1012
1146
  exports.REQUIRES_MORE_THAN_ONE = REQUIRES_MORE_THAN_ONE;
1013
1147
  exports.SHIP_CANNOT_BUY_TRAVELING = SHIP_CANNOT_BUY_TRAVELING;
1014
1148
  exports.SHIP_NOT_FOUND = SHIP_NOT_FOUND;
1015
1149
  exports.ServerContract = server;
1150
+ exports.calc_acceleration = calc_acceleration;
1151
+ exports.calc_energyusage = calc_energyusage;
1152
+ exports.calc_flighttime = calc_flighttime;
1153
+ exports.calc_loader_acceleration = calc_loader_acceleration;
1154
+ exports.calc_loader_flighttime = calc_loader_flighttime;
1155
+ exports.calc_rechargetime = calc_rechargetime;
1156
+ exports.calc_ship_acceleration = calc_ship_acceleration;
1157
+ exports.calc_ship_flighttime = calc_ship_flighttime;
1158
+ exports.calc_ship_loadtime = calc_ship_loadtime;
1159
+ exports.calc_ship_mass = calc_ship_mass;
1160
+ exports.calc_ship_rechargetime = calc_ship_rechargetime;
1016
1161
  exports["default"] = Shipload;
1017
1162
  exports.distanceBetweenCoordinates = distanceBetweenCoordinates;
1018
1163
  exports.distanceBetweenPoints = distanceBetweenPoints;
@@ -1020,8 +1165,9 @@ exports.distanceTraveled = distanceTraveled;
1020
1165
  exports.findNearbyPlanets = findNearbyPlanets;
1021
1166
  exports.getCurrentEpoch = getCurrentEpoch;
1022
1167
  exports.getGood = getGood;
1023
- exports.goods = goods;
1024
- exports.hasPlanet = hasPlanet;
1168
+ exports.getGoods = getGoods;
1169
+ exports.goodIds = goodIds;
1170
+ exports.hasSystem = hasSystem;
1025
1171
  exports.hash = hash;
1026
1172
  exports.hash512 = hash512;
1027
1173
  exports.lerp = lerp;
@@ -1029,4 +1175,6 @@ exports.marketprice = marketprice;
1029
1175
  exports.marketprices = marketprices;
1030
1176
  exports.priceFromRoll = priceFromRoll;
1031
1177
  exports.rotation = rotation;
1178
+ exports.travelplan = travelplan;
1179
+ exports.travelplanDuration = travelplanDuration;
1032
1180
  //# sourceMappingURL=shipload.js.map