@shipload/sdk 0.3.3 → 0.3.5

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);
501
504
  tslib.__decorate([
502
505
  antelope.Struct.field(antelope.UInt32)
503
- ], travel_plan.prototype, "duration", void 0);
506
+ ], travel_plan.prototype, "rechargetime", void 0);
507
+ tslib.__decorate([
508
+ antelope.Struct.field(antelope.UInt64)
509
+ ], travel_plan.prototype, "mass", void 0);
510
+ tslib.__decorate([
511
+ antelope.Struct.field(antelope.UInt32)
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,9 +991,9 @@ 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
- return { price, id: good.id };
996
+ return { price, good: good };
875
997
  })));
876
998
  });
877
999
  }
@@ -925,7 +1047,8 @@ const INSUFFICIENT_GOOD_QUANTITY = 'Insufficient good quantity';
925
1047
  const REQUIRES_MORE_THAN_ONE = 'Requires more than one';
926
1048
 
927
1049
  class Shipload {
928
- constructor(chain, { client, platformContract, serverContract }) {
1050
+ constructor(chain, constructorOptions) {
1051
+ const { client, platformContract, serverContract } = constructorOptions || {};
929
1052
  this.client = client || new antelope.APIClient({ url: chain.url });
930
1053
  this.platform = platformContract
931
1054
  ? platformContract
@@ -939,7 +1062,7 @@ class Shipload {
939
1062
  let platform$1 = new Contract$1({
940
1063
  client: new antelope.APIClient({ url: chain.url }),
941
1064
  });
942
- if (shiploadOptions.platformContractName) {
1065
+ if (shiploadOptions === null || shiploadOptions === void 0 ? void 0 : shiploadOptions.platformContractName) {
943
1066
  const client = shiploadOptions.client || new antelope.APIClient({ url: chain.url });
944
1067
  const contractKit = new ContractKit__default["default"]({ client });
945
1068
  platform$1 = yield contractKit.load(shiploadOptions.platformContractName);
@@ -947,7 +1070,7 @@ class Shipload {
947
1070
  let server$1 = new Contract({
948
1071
  client: new antelope.APIClient({ url: chain.url }),
949
1072
  });
950
- if (shiploadOptions.serverContractName) {
1073
+ if (shiploadOptions === null || shiploadOptions === void 0 ? void 0 : shiploadOptions.serverContractName) {
951
1074
  const client = shiploadOptions.client || new antelope.APIClient({ url: chain.url });
952
1075
  const contractKit = new ContractKit__default["default"]({ client });
953
1076
  server$1 = yield contractKit.load(shiploadOptions.serverContractName);
@@ -987,6 +1110,29 @@ class Shipload {
987
1110
  return marketprices(location, game.config.seed, state.seed);
988
1111
  });
989
1112
  }
1113
+ hasSystem(location) {
1114
+ return tslib.__awaiter(this, void 0, void 0, function* () {
1115
+ const game = yield this.getGame();
1116
+ return hasSystem(game.config.seed, location);
1117
+ });
1118
+ }
1119
+ findNearbyPlanets(origin, maxDistance = 20) {
1120
+ return tslib.__awaiter(this, void 0, void 0, function* () {
1121
+ const game = yield this.getGame();
1122
+ return findNearbyPlanets(game.config.seed, origin, maxDistance);
1123
+ });
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
+ }
990
1136
  }
991
1137
 
992
1138
  exports.ERROR_SYSTEM_NOT_INITIALIZED = ERROR_SYSTEM_NOT_INITIALIZED;
@@ -995,11 +1141,23 @@ exports.GOOD_NOT_AVAILABLE_AT_LOCATION = GOOD_NOT_AVAILABLE_AT_LOCATION;
995
1141
  exports.INSUFFICIENT_BALANCE = INSUFFICIENT_BALANCE;
996
1142
  exports.INSUFFICIENT_GOOD_QUANTITY = INSUFFICIENT_GOOD_QUANTITY;
997
1143
  exports.PLAYER_NOT_FOUND = PLAYER_NOT_FOUND;
1144
+ exports.PRECISION = PRECISION;
998
1145
  exports.PlatformContract = platform;
999
1146
  exports.REQUIRES_MORE_THAN_ONE = REQUIRES_MORE_THAN_ONE;
1000
1147
  exports.SHIP_CANNOT_BUY_TRAVELING = SHIP_CANNOT_BUY_TRAVELING;
1001
1148
  exports.SHIP_NOT_FOUND = SHIP_NOT_FOUND;
1002
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;
1003
1161
  exports["default"] = Shipload;
1004
1162
  exports.distanceBetweenCoordinates = distanceBetweenCoordinates;
1005
1163
  exports.distanceBetweenPoints = distanceBetweenPoints;
@@ -1007,8 +1165,9 @@ exports.distanceTraveled = distanceTraveled;
1007
1165
  exports.findNearbyPlanets = findNearbyPlanets;
1008
1166
  exports.getCurrentEpoch = getCurrentEpoch;
1009
1167
  exports.getGood = getGood;
1010
- exports.goods = goods;
1011
- exports.hasPlanet = hasPlanet;
1168
+ exports.getGoods = getGoods;
1169
+ exports.goodIds = goodIds;
1170
+ exports.hasSystem = hasSystem;
1012
1171
  exports.hash = hash;
1013
1172
  exports.hash512 = hash512;
1014
1173
  exports.lerp = lerp;
@@ -1016,4 +1175,6 @@ exports.marketprice = marketprice;
1016
1175
  exports.marketprices = marketprices;
1017
1176
  exports.priceFromRoll = priceFromRoll;
1018
1177
  exports.rotation = rotation;
1178
+ exports.travelplan = travelplan;
1179
+ exports.travelplanDuration = travelplanDuration;
1019
1180
  //# sourceMappingURL=shipload.js.map