@shipload/sdk 0.2.1 → 0.3.1

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.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { Blob, ABI, Struct, Name, UInt64, NameType, UInt64Type, Action, Int64, Checksum256, UInt16, UInt32, TimePoint, UInt8, BlockTimestamp, Int64Type, Checksum256Type, Checksum512 } from '@wharfkit/antelope';
1
+ import { Blob, ABI, Struct, Name, UInt64, NameType, UInt64Type, Action, Int64, UInt16, Checksum256, UInt32, TimePoint, UInt8, BlockTimestamp, Int64Type, Checksum256Type, UInt16Type, Checksum512, APIClient } from '@wharfkit/antelope';
2
2
  import { Contract as Contract$2, PartialBy, ContractArgs, ActionOptions, Table } from '@wharfkit/contract';
3
+ import { ChainDefinition } from '@wharfkit/session';
3
4
 
4
5
  declare const abiBlob$1: Blob;
5
6
  declare const abi$1: ABI;
@@ -99,7 +100,6 @@ declare namespace Types {
99
100
  id: UInt64;
100
101
  }
101
102
  class buygoods extends Struct {
102
- buyer: Name;
103
103
  ship_id: UInt64;
104
104
  good_id: UInt64;
105
105
  quantity: UInt64;
@@ -109,6 +109,7 @@ declare namespace Types {
109
109
  ship_id: UInt64;
110
110
  good_id: UInt64;
111
111
  quantity: UInt64;
112
+ loaded: UInt64;
112
113
  }
113
114
  class cleartable extends Struct {
114
115
  table_name: Name;
@@ -126,6 +127,10 @@ declare namespace Types {
126
127
  id: UInt64;
127
128
  destination: coordinates;
128
129
  }
130
+ class good_price extends Struct {
131
+ id: UInt16;
132
+ price: UInt64;
133
+ }
129
134
  class hash extends Struct {
130
135
  value: string;
131
136
  }
@@ -142,13 +147,19 @@ declare namespace Types {
142
147
  quantity: UInt16;
143
148
  thrust: UInt32;
144
149
  }
150
+ class marketprice extends Struct {
151
+ location: coordinates;
152
+ good_id: UInt16;
153
+ }
154
+ class marketprices extends Struct {
155
+ location: coordinates;
156
+ }
145
157
  class player_row extends Struct {
146
158
  owner: Name;
147
159
  balance: UInt64;
148
160
  debt: UInt64;
149
161
  }
150
162
  class sellgoods extends Struct {
151
- seller: Name;
152
163
  ship_id: UInt64;
153
164
  good_id: UInt64;
154
165
  quantity: UInt64;
@@ -157,10 +168,12 @@ declare namespace Types {
157
168
  key: Name;
158
169
  value: UInt64;
159
170
  }
171
+ class ship_state extends Struct {
172
+ energy: UInt32;
173
+ }
160
174
  class ship_stats extends Struct {
161
175
  capacity: UInt32;
162
176
  drain: UInt32;
163
- energy: UInt32;
164
177
  mass: UInt64;
165
178
  orbit: UInt16;
166
179
  recharge: UInt32;
@@ -178,6 +191,7 @@ declare namespace Types {
178
191
  location: coordinates;
179
192
  skin: UInt8;
180
193
  tier: UInt8;
194
+ state: ship_state;
181
195
  stats: ship_stats;
182
196
  loaders: loader_stats;
183
197
  travelplan?: travel_plan;
@@ -251,7 +265,6 @@ declare namespace ActionParams {
251
265
  id: UInt64Type;
252
266
  }
253
267
  interface buygoods {
254
- buyer: NameType;
255
268
  ship_id: UInt64Type;
256
269
  good_id: UInt64Type;
257
270
  quantity: UInt64Type;
@@ -278,8 +291,14 @@ declare namespace ActionParams {
278
291
  interface join {
279
292
  account: NameType;
280
293
  }
294
+ interface marketprice {
295
+ location: Type.coordinates;
296
+ good_id: UInt16Type;
297
+ }
298
+ interface marketprices {
299
+ location: Type.coordinates;
300
+ }
281
301
  interface sellgoods {
282
- seller: NameType;
283
302
  ship_id: UInt64Type;
284
303
  good_id: UInt64Type;
285
304
  quantity: UInt64Type;
@@ -306,6 +325,8 @@ interface ActionNameParams {
306
325
  hash: ActionParams.hash;
307
326
  init: ActionParams.init;
308
327
  join: ActionParams.join;
328
+ marketprice: ActionParams.marketprice;
329
+ marketprices: ActionParams.marketprices;
309
330
  sellgoods: ActionParams.sellgoods;
310
331
  test: ActionParams.test;
311
332
  travel: ActionParams.travel;
@@ -315,6 +336,8 @@ type ActionNames = keyof ActionNameParams;
315
336
  interface ActionReturnValues {
316
337
  esttravel: Types.travel_summary;
317
338
  hash: Checksum512;
339
+ marketprice: Types.good_price;
340
+ marketprices: Types.good_price[];
318
341
  }
319
342
  type ActionReturnNames = keyof ActionReturnValues;
320
343
  declare class Contract extends Contract$2 {
@@ -356,7 +379,8 @@ declare namespace server {
356
379
  };
357
380
  }
358
381
 
359
- declare function hash(seed: Checksum256Type, string: string): string;
382
+ declare function hash(seed: Checksum256Type, string: string): Checksum512;
383
+ declare function hashBytes(seed: Checksum256Type, string: string): Uint8Array;
360
384
 
361
385
  interface Coordinates {
362
386
  x: number;
@@ -370,20 +394,62 @@ interface Dimensions {
370
394
  height: number;
371
395
  }
372
396
  interface Distance {
373
- origin: Coordinates;
374
- destination: Coordinates;
375
- distance: number;
397
+ origin: ActionParams.Type.coordinates;
398
+ destination: ActionParams.Type.coordinates;
399
+ distance: UInt16;
400
+ }
401
+ interface Good {
402
+ id: UInt16;
403
+ name: string;
404
+ description: string;
405
+ base_price: UInt64;
406
+ mass: UInt64;
407
+ }
408
+ interface GoodPrice {
409
+ id: UInt16;
410
+ price: UInt64;
376
411
  }
377
412
 
378
- declare function distance(ship: Types.ship_row): number;
379
- declare function lerp(origin: Coordinates, destination: Coordinates, time: number): {
380
- x: number;
381
- y: number;
382
- };
383
- declare function rotation(origin: Coordinates, destination: Coordinates): number;
384
- declare function hasPlanet(seed: Checksum256, coords: Coordinates): boolean;
413
+ declare function distanceTraveled(ship: Types.ship_row): number;
414
+ declare function distanceBetweenCoordinates(origin: ActionParams.Type.coordinates, destination: ActionParams.Type.coordinates): UInt16;
415
+ declare function distanceBetweenPoints(x1: UInt64Type, y1: UInt64Type, x2: UInt64Type, y2: UInt64Type): UInt16;
416
+ declare function lerp(origin: ActionParams.Type.coordinates, destination: ActionParams.Type.coordinates, time: number): ActionParams.Type.coordinates;
417
+ declare function rotation(origin: ActionParams.Type.coordinates, destination: ActionParams.Type.coordinates): number;
418
+ declare function hasPlanet(seed: Checksum256, coordinates: ActionParams.Type.coordinates): boolean;
419
+ declare function findNearbyPlanets(seed: Checksum256, origin: ActionParams.Type.coordinates, maxDistance?: UInt16Type): Distance[];
385
420
 
421
+ declare const goods: Good[];
422
+ declare function getGood(good_id: UInt16Type): Good;
423
+
424
+ declare function marketprice(location: Coordinates, good_id: UInt16Type, gameSeed: Checksum256Type, epochSeed: Checksum256Type): Promise<UInt64>;
425
+ declare function marketprices(location: Coordinates, gameSeed: Checksum256Type, epochSeed: Checksum256Type): Promise<GoodPrice[]>;
426
+ declare function priceFromRoll(basePrice: UInt64Type, roll: number): UInt64;
427
+
428
+ declare const ERROR_SYSTEM_NOT_INITIALIZED = "System not initialized";
429
+ declare const GOOD_DOES_NOT_EXIST = "Good does not exist";
430
+ declare const GOOD_NOT_AVAILABLE_AT_LOCATION = "Good not available at location";
431
+ declare const PLAYER_NOT_FOUND = "Player not found";
432
+ declare const SHIP_NOT_FOUND = "Ship not found";
433
+ declare const SHIP_CANNOT_BUY_TRAVELING = "Ship cannot buy while traveling";
434
+ declare const INSUFFICIENT_BALANCE = "Insufficient balance";
435
+ declare const INSUFFICIENT_GOOD_QUANTITY = "Insufficient good quantity";
436
+ declare const REQUIRES_MORE_THAN_ONE = "Requires more than one";
437
+
438
+ interface ShiploadOptions {
439
+ contractName?: string;
440
+ client?: APIClient;
441
+ }
442
+ interface ShiploadConstructorOptions extends ShiploadOptions {
443
+ serverContract: Contract$2;
444
+ }
386
445
  declare class Shipload {
446
+ private client;
447
+ private server;
448
+ constructor(chain: ChainDefinition, { client, serverContract }: ShiploadConstructorOptions);
449
+ static load(chain: ChainDefinition, shiploadOptions: ShiploadOptions): Promise<Shipload>;
450
+ getState(): Promise<Types.state_row>;
451
+ marketprice(location: Coordinates, good_id: number): Promise<UInt64>;
452
+ marketprices(location: Coordinates): Promise<GoodPrice[]>;
387
453
  }
388
454
 
389
- export { CameraPosition, Coordinates, Dimensions, Distance, platform as PlatformContract, server as ServerContract, Shipload as default, distance, hasPlanet, hash, lerp, rotation };
455
+ export { CameraPosition, Coordinates, Dimensions, Distance, ERROR_SYSTEM_NOT_INITIALIZED, GOOD_DOES_NOT_EXIST, GOOD_NOT_AVAILABLE_AT_LOCATION, Good, GoodPrice, INSUFFICIENT_BALANCE, INSUFFICIENT_GOOD_QUANTITY, PLAYER_NOT_FOUND, platform as PlatformContract, REQUIRES_MORE_THAN_ONE, SHIP_CANNOT_BUY_TRAVELING, SHIP_NOT_FOUND, server as ServerContract, Shipload as default, distanceBetweenCoordinates, distanceBetweenPoints, distanceTraveled, findNearbyPlanets, getGood, goods, hasPlanet, hash, hashBytes, lerp, marketprice, marketprices, priceFromRoll, rotation };
package/lib/shipload.js CHANGED
@@ -4,7 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var antelope = require('@wharfkit/antelope');
7
- var contract = require('@wharfkit/contract');
7
+ var ContractKit = require('@wharfkit/contract');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var ContractKit__default = /*#__PURE__*/_interopDefaultLegacy(ContractKit);
8
12
 
9
13
  const abiBlob$1 = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAAcKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/C2NvbXBhbnlfcm93AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxmb3VuZGNvbXBhbnkAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcJc3RhdGVfcm93AAEHZW5hYmxlZARib29sBHRlc3QAAQRkYXRhBnN0cmluZwR3aXBlAAAFAICKx+RrVEQKY2xlYXJ0YWJsZQAAAAAAqHjMVAZlbmFibGXzAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ0VuYWJsZS9kaXNhYmxlIHBsYXRmb3JtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhlIHBsYXRmb3JtIGNvbnRyYWN0LuCnqZKiNDVdDGZvdW5kY29tcGFueYMCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZvdW5kY29tcGFueQpzdW1tYXJ5OiAnRm91bmQgYSBuZXcgY29tcGFueScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkZvdW5kIGEgbmV3IGNvbXBhbnkgaW4gdGhlIFNoaXBsb2FkIHBsYXRmb3JtIGNvbnRyYWN0LgAAAAAAkLHKBHRlc3QAAAAAAACgquMEd2lwZQACAAAAwE9TJUUDaTY0AAALY29tcGFueV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cBE1NoaXBsb2FkIChQbGF0Zm9ybSkTU2hpcGxvYWQgKFBsYXRmb3JtKQAAAAA=');
10
14
  const abi$1 = antelope.ABI.from(abiBlob$1);
@@ -87,7 +91,7 @@ const TableMap$1 = {
87
91
  company: Types$1.company_row,
88
92
  state: Types$1.state_row,
89
93
  };
90
- class Contract$1 extends contract.Contract {
94
+ class Contract$1 extends ContractKit.Contract {
91
95
  constructor(args) {
92
96
  super({
93
97
  client: args.client,
@@ -112,7 +116,7 @@ var platform = /*#__PURE__*/Object.freeze({
112
116
  Contract: Contract$1
113
117
  });
114
118
 
115
- const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yABgHYWR2YW5jZQAABmFycml2ZQACBW93bmVyBG5hbWUCaWQGdWludDY0CGJ1eWdvb2RzAAQFYnV5ZXIEbmFtZQdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQJY2FyZ29fcm93AAQCaWQGdWludDY0B3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NApjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8LY29vcmRpbmF0ZXMAAgF4BWludDY0AXkFaW50NjQGZW5hYmxlAAEHZW5hYmxlZARib29sCWVzdHRyYXZlbAACAmlkBnVpbnQ2NAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwRoYXNoAAEFdmFsdWUGc3RyaW5nBGluaXQAAgRzZWVkC2NoZWNrc3VtMjU2CWVwb2Noc2VlZAtjaGVja3N1bTI1NgRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwAECGNhcGFjaXR5BnVpbnQxNgRtYXNzBnVpbnQzMghxdWFudGl0eQZ1aW50MTYGdGhydXN0BnVpbnQzMgpwbGF5ZXJfcm93AAMFb3duZXIEbmFtZQdiYWxhbmNlBnVpbnQ2NARkZWJ0BnVpbnQ2NAlzZWxsZ29vZHMABAZzZWxsZXIEbmFtZQdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQMc2VxdWVuY2Vfcm93AAIDa2V5BG5hbWUFdmFsdWUGdWludDY0CHNoaXBfcm93AAkCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcIbG9jYXRpb24LY29vcmRpbmF0ZXMEc2tpbgV1aW50OAR0aWVyBXVpbnQ4BXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMKdHJhdmVscGxhbgx0cmF2ZWxfcGxhbj8Kc2hpcF9zdGF0cwAHCGNhcGFjaXR5BnVpbnQzMgVkcmFpbgZ1aW50MzIGZW5lcmd5BnVpbnQzMgRtYXNzBnVpbnQ2NAVvcmJpdAZ1aW50MTYIcmVjaGFyZ2UGdWludDMyBnRocnVzdAZ1aW50NjQJc3RhdGVfcm93AAUHZW5hYmxlZARib29sBWVwb2NoBnVpbnQ2NAllcG9jaHNlZWQLY2hlY2tzdW0yNTYHZ2VuZXNpcxRibG9ja190aW1lc3RhbXBfdHlwZQRzZWVkC2NoZWNrc3VtMjU2C3N1bW1hcnlfcm93AAIDa2V5BG5hbWUFdmFsdWUOdHJhdmVsX3N1bW1hcnkEdGVzdAABBGRhdGEGc3RyaW5nBnRyYXZlbAAEBW93bmVyBG5hbWUCaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCHJlY2hhcmdlBGJvb2wLdHJhdmVsX3BsYW4AAwtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwlkZXBhcnR1cmUKdGltZV9wb2ludAhkdXJhdGlvbgZ1aW50MzIOdHJhdmVsX3N1bW1hcnkADAVzdGF0cwpzaGlwX3N0YXRzB2xvYWRlcnMMbG9hZGVyX3N0YXRzBm9yaWdpbgtjb29yZGluYXRlcwtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwhkaXN0YW5jZQZ1aW50NjQJdG90YWxtYXNzBnVpbnQ2NAxhY2NlbGVyYXRpb24GdWludDY0CmZsaWdodHRpbWUGdWludDY0C2VuZXJneXVzYWdlBnVpbnQ2NAxyZWNoYXJnZXRpbWUGdWludDY0CGxvYWR0aW1lBnVpbnQ2NAR0aW1lBnVpbnQ2NAR3aXBlAAANAAAAQKFpdjIHYWR2YW5jZdMBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkdmFuY2UKc3VtbWFyeTogJ0FkdmFuY2UgdHVybicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQWR2YW5jZSB0aGUgZ2FtZSB0byB0aGUgbmV4dCB0dXJuLgAAAACo7e41BmFycml2ZQAAAAA4Ucq8PghidXlnb29kcwAAgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAKh4zFQGZW5hYmxl4gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLgoKLS0tAACIapubM1YJZXN0dHJhdmVsAAAAAAAA0LBpBGhhc2jqAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAAAAkN10BGluaXT/AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBpbml0CnN1bW1hcnk6ICdJbml0aWFsaXplIGdhbWUgc2VlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhbGl6ZSBhIHRoZSBnYW1lcyBzZWVkIGFuZCBlcG9jaHNlZWQgdmFsdWVzIHRvIGJvb3RzdHJhcCBnYW1lIHN0YXRlLgAAAAAAMB19BGpvaW7EAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQAAMCJUhajwglzZWxsZ29vZHMAAAAAAACQscoEdGVzdLIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRlc3QKc3VtbWFyeTogJ0RFQlVHOiB0ZXN0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABEtc3NBnRyYXZlbPgBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhIHNoaXAgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tBgAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAAAKTaWtwgNpNjQAAAxzZXF1ZW5jZV9yb3cAAAAAAFBdwwNpNjQAAAhzaGlwX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAMBfI6XGA2k2NAAAC3N1bW1hcnlfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAAAIAAIhqm5szVg50cmF2ZWxfc3VtbWFyeQAAAAAA0LBpC2NoZWNrc3VtNTEy');
119
+ const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yABwHYWR2YW5jZQAABmFycml2ZQACBW93bmVyBG5hbWUCaWQGdWludDY0CGJ1eWdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CWNhcmdvX3JvdwAFAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQGbG9hZGVkBnVpbnQ2NApjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8LY29vcmRpbmF0ZXMAAgF4BWludDY0AXkFaW50NjQGZW5hYmxlAAEHZW5hYmxlZARib29sCWVzdHRyYXZlbAACAmlkBnVpbnQ2NAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwpnb29kX3ByaWNlAAICaWQGdWludDE2BXByaWNlBnVpbnQ2NARoYXNoAAEFdmFsdWUGc3RyaW5nBGluaXQAAgRzZWVkC2NoZWNrc3VtMjU2CWVwb2Noc2VlZAtjaGVja3N1bTI1NgRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwAECGNhcGFjaXR5BnVpbnQxNgRtYXNzBnVpbnQzMghxdWFudGl0eQZ1aW50MTYGdGhydXN0BnVpbnQzMgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzCnBsYXllcl9yb3cAAwVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDY0CXNlbGxnb29kcwADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cACgJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwhsb2NhdGlvbgtjb29yZGluYXRlcwRza2luBXVpbnQ4BHRpZXIFdWludDgFc3RhdGUKc2hpcF9zdGF0ZQVzdGF0cwpzaGlwX3N0YXRzB2xvYWRlcnMMbG9hZGVyX3N0YXRzCnRyYXZlbHBsYW4MdHJhdmVsX3BsYW4/CnNoaXBfc3RhdGUAAQZlbmVyZ3kGdWludDMyCnNoaXBfc3RhdHMABghjYXBhY2l0eQZ1aW50MzIFZHJhaW4GdWludDMyBG1hc3MGdWludDY0BW9yYml0BnVpbnQxNghyZWNoYXJnZQZ1aW50MzIGdGhydXN0BnVpbnQ2NAlzdGF0ZV9yb3cABQdlbmFibGVkBGJvb2wFZXBvY2gGdWludDY0CWVwb2Noc2VlZAtjaGVja3N1bTI1NgdnZW5lc2lzFGJsb2NrX3RpbWVzdGFtcF90eXBlBHNlZWQLY2hlY2tzdW0yNTYLc3VtbWFyeV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQ50cmF2ZWxfc3VtbWFyeQR0ZXN0AAEEZGF0YQZzdHJpbmcGdHJhdmVsAAQFb3duZXIEbmFtZQJpZAZ1aW50NjQLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIcmVjaGFyZ2UEYm9vbAt0cmF2ZWxfcGxhbgADC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCWRlcGFydHVyZQp0aW1lX3BvaW50CGR1cmF0aW9uBnVpbnQzMg50cmF2ZWxfc3VtbWFyeQAMBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMGb3JpZ2luC2Nvb3JkaW5hdGVzC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCGRpc3RhbmNlBnVpbnQ2NAl0b3RhbG1hc3MGdWludDY0DGFjY2VsZXJhdGlvbgZ1aW50NjQKZmxpZ2h0dGltZQZ1aW50NjQLZW5lcmd5dXNhZ2UGdWludDY0DHJlY2hhcmdldGltZQZ1aW50NjQIbG9hZHRpbWUGdWludDY0BHRpbWUGdWludDY0BHdpcGUAAA8AAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAiGqbmzNWCWVzdHRyYXZlbAAAAAAAANCwaQRoYXNo6gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAAAAAJDddARpbml0/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdApzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgZXBvY2hzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAAAAADAdfQRqb2luyQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkCgotLS0AFHK3ZgWvkQttYXJrZXRwcmljZZsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlCnN1bW1hcnk6ICdHZXQgcHJpY2Ugb2YgZ29vZCBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGEgc3BlY2lmaWVkIGdvb2QgYXQgYSBnaXZlbiBsb2NhdGlvbi4KCi0tLYAVcrdmBa+RDG1hcmtldHByaWNlc5UCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlcwpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAAAACQscoEdGVzdLIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRlc3QKc3VtbWFyeTogJ0RFQlVHOiB0ZXN0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABEtc3NBnRyYXZlbP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhIHNoaXAgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0GAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAwF8jpcYDaTY0AAALc3VtbWFyeV9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAABAAAiGqbmzNWDnRyYXZlbF9zdW1tYXJ5AAAAAADQsGkLY2hlY2tzdW01MTIAFHK3ZgWvkQpnb29kX3ByaWNlgBVyt2YFr5EMZ29vZF9wcmljZVtd');
116
120
  const abi = antelope.ABI.from(abiBlob);
117
121
  var Types;
118
122
  (function (Types) {
@@ -136,9 +140,6 @@ var Types;
136
140
  Types.arrive = arrive;
137
141
  let buygoods = class buygoods extends antelope.Struct {
138
142
  };
139
- tslib.__decorate([
140
- antelope.Struct.field(antelope.Name)
141
- ], buygoods.prototype, "buyer", void 0);
142
143
  tslib.__decorate([
143
144
  antelope.Struct.field(antelope.UInt64)
144
145
  ], buygoods.prototype, "ship_id", void 0);
@@ -166,6 +167,9 @@ var Types;
166
167
  tslib.__decorate([
167
168
  antelope.Struct.field(antelope.UInt64)
168
169
  ], cargo_row.prototype, "quantity", void 0);
170
+ tslib.__decorate([
171
+ antelope.Struct.field(antelope.UInt64)
172
+ ], cargo_row.prototype, "loaded", void 0);
169
173
  cargo_row = tslib.__decorate([
170
174
  antelope.Struct.type('cargo_row')
171
175
  ], cargo_row);
@@ -218,6 +222,18 @@ var Types;
218
222
  antelope.Struct.type('esttravel')
219
223
  ], esttravel);
220
224
  Types.esttravel = esttravel;
225
+ let good_price = class good_price extends antelope.Struct {
226
+ };
227
+ tslib.__decorate([
228
+ antelope.Struct.field(antelope.UInt16)
229
+ ], good_price.prototype, "id", void 0);
230
+ tslib.__decorate([
231
+ antelope.Struct.field(antelope.UInt64)
232
+ ], good_price.prototype, "price", void 0);
233
+ good_price = tslib.__decorate([
234
+ antelope.Struct.type('good_price')
235
+ ], good_price);
236
+ Types.good_price = good_price;
221
237
  let hash = class hash extends antelope.Struct {
222
238
  };
223
239
  tslib.__decorate([
@@ -266,6 +282,27 @@ var Types;
266
282
  antelope.Struct.type('loader_stats')
267
283
  ], loader_stats);
268
284
  Types.loader_stats = loader_stats;
285
+ let marketprice = class marketprice extends antelope.Struct {
286
+ };
287
+ tslib.__decorate([
288
+ antelope.Struct.field(coordinates)
289
+ ], marketprice.prototype, "location", void 0);
290
+ tslib.__decorate([
291
+ antelope.Struct.field(antelope.UInt16)
292
+ ], marketprice.prototype, "good_id", void 0);
293
+ marketprice = tslib.__decorate([
294
+ antelope.Struct.type('marketprice')
295
+ ], marketprice);
296
+ Types.marketprice = marketprice;
297
+ let marketprices = class marketprices extends antelope.Struct {
298
+ };
299
+ tslib.__decorate([
300
+ antelope.Struct.field(coordinates)
301
+ ], marketprices.prototype, "location", void 0);
302
+ marketprices = tslib.__decorate([
303
+ antelope.Struct.type('marketprices')
304
+ ], marketprices);
305
+ Types.marketprices = marketprices;
269
306
  let player_row = class player_row extends antelope.Struct {
270
307
  };
271
308
  tslib.__decorate([
@@ -283,9 +320,6 @@ var Types;
283
320
  Types.player_row = player_row;
284
321
  let sellgoods = class sellgoods extends antelope.Struct {
285
322
  };
286
- tslib.__decorate([
287
- antelope.Struct.field(antelope.Name)
288
- ], sellgoods.prototype, "seller", void 0);
289
323
  tslib.__decorate([
290
324
  antelope.Struct.field(antelope.UInt64)
291
325
  ], sellgoods.prototype, "ship_id", void 0);
@@ -311,6 +345,15 @@ var Types;
311
345
  antelope.Struct.type('sequence_row')
312
346
  ], sequence_row);
313
347
  Types.sequence_row = sequence_row;
348
+ let ship_state = class ship_state extends antelope.Struct {
349
+ };
350
+ tslib.__decorate([
351
+ antelope.Struct.field(antelope.UInt32)
352
+ ], ship_state.prototype, "energy", void 0);
353
+ ship_state = tslib.__decorate([
354
+ antelope.Struct.type('ship_state')
355
+ ], ship_state);
356
+ Types.ship_state = ship_state;
314
357
  let ship_stats = class ship_stats extends antelope.Struct {
315
358
  };
316
359
  tslib.__decorate([
@@ -319,9 +362,6 @@ var Types;
319
362
  tslib.__decorate([
320
363
  antelope.Struct.field(antelope.UInt32)
321
364
  ], ship_stats.prototype, "drain", void 0);
322
- tslib.__decorate([
323
- antelope.Struct.field(antelope.UInt32)
324
- ], ship_stats.prototype, "energy", void 0);
325
365
  tslib.__decorate([
326
366
  antelope.Struct.field(antelope.UInt64)
327
367
  ], ship_stats.prototype, "mass", void 0);
@@ -373,6 +413,9 @@ var Types;
373
413
  tslib.__decorate([
374
414
  antelope.Struct.field(antelope.UInt8)
375
415
  ], ship_row.prototype, "tier", void 0);
416
+ tslib.__decorate([
417
+ antelope.Struct.field(ship_state)
418
+ ], ship_row.prototype, "state", void 0);
376
419
  tslib.__decorate([
377
420
  antelope.Struct.field(ship_stats)
378
421
  ], ship_row.prototype, "stats", void 0);
@@ -503,7 +546,7 @@ const TableMap = {
503
546
  state: Types.state_row,
504
547
  summary: Types.summary_row,
505
548
  };
506
- class Contract extends contract.Contract {
549
+ class Contract extends ContractKit.Contract {
507
550
  constructor(args) {
508
551
  super({
509
552
  client: args.client,
@@ -533,39 +576,309 @@ var server = /*#__PURE__*/Object.freeze({
533
576
 
534
577
  function hash(seed, string) {
535
578
  const bytes = antelope.Bytes.from(`${seed}${string}`, 'utf8');
536
- return String(antelope.Checksum512.hash(bytes));
579
+ return antelope.Checksum512.hash(bytes);
580
+ }
581
+ function hashBytes(seed, string) {
582
+ return hash(seed, string).array;
537
583
  }
538
584
 
539
- function distance(ship) {
585
+ function distanceTraveled(ship) {
540
586
  if (ship.travelplan) {
541
587
  const { departure, duration } = ship.travelplan;
542
588
  return (+new Date() - +departure.toDate()) / (Number(duration) * 1000);
543
589
  }
544
590
  return 0;
545
591
  }
592
+ function distanceBetweenCoordinates(origin, destination) {
593
+ return distanceBetweenPoints(origin.x, origin.y, destination.x, destination.y);
594
+ }
595
+ function distanceBetweenPoints(x1, y1, x2, y2) {
596
+ const x = Math.pow(x1 - x2, 2);
597
+ const y = Math.pow(y1 - y2, 2);
598
+ return antelope.UInt16.from(Math.sqrt(x + y));
599
+ }
546
600
  function lerp(origin, destination, time) {
547
601
  return {
548
- x: (1 - time) * origin.x + time * destination.x,
549
- y: (1 - time) * origin.y + time * destination.y,
602
+ x: (1 - time) * Number(origin.x) + time * Number(destination.x),
603
+ y: (1 - time) * Number(origin.y) + time * Number(destination.y),
550
604
  };
551
605
  }
552
606
  function rotation(origin, destination) {
553
607
  return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
554
608
  }
555
- function hasPlanet(seed, coords) {
556
- const str = ['system', coords.x, coords.y].join('-');
557
- return hash(seed, str).slice(0, 2) === '00';
609
+ function hasPlanet(seed, coordinates) {
610
+ const str = ['system', coordinates.x, coordinates.y].join('-');
611
+ return String(hash(seed, str)).slice(0, 2) === '00';
612
+ }
613
+ function findNearbyPlanets(seed, origin, maxDistance = 20) {
614
+ const nearbySystems = [];
615
+ const max = antelope.UInt16.from(maxDistance);
616
+ const xMin = antelope.Int64.from(origin.x).subtracting(max);
617
+ const xMax = antelope.Int64.from(origin.x).adding(max);
618
+ const yMin = antelope.Int64.from(origin.y).subtracting(max);
619
+ const yMax = antelope.Int64.from(origin.y).adding(max);
620
+ for (let x = Number(xMin); x <= Number(xMax); x++) {
621
+ for (let y = Number(yMin); y <= Number(yMax); y++) {
622
+ const samePlace = x === origin.x && y === origin.y;
623
+ if (!samePlace) {
624
+ const distance = distanceBetweenPoints(origin.x, origin.y, x, y);
625
+ if (Number(distance) <= Number(max)) {
626
+ const system = hasPlanet(seed, { x, y });
627
+ if (system) {
628
+ nearbySystems.push({ origin, destination: { x, y }, distance });
629
+ }
630
+ }
631
+ }
632
+ }
633
+ }
634
+ return nearbySystems;
635
+ }
636
+
637
+ const goods = [
638
+ {
639
+ id: antelope.UInt16.from(1),
640
+ name: 'FizzGlo',
641
+ description: 'Pops with flavor! A neon drink that makes your burps glow.',
642
+ base_price: antelope.UInt64.from(200),
643
+ mass: antelope.UInt64.from(500),
644
+ },
645
+ {
646
+ id: antelope.UInt16.from(2),
647
+ name: 'ZapSnacks',
648
+ description: 'Electric taste! Spicy edible energy sparks for a tongue-tingling experience.',
649
+ base_price: antelope.UInt64.from(300),
650
+ mass: antelope.UInt64.from(2000),
651
+ },
652
+ {
653
+ id: antelope.UInt16.from(3),
654
+ name: 'Blob Buddies',
655
+ description: 'Squishy friends! Clingy, cute and mood-matching pet blobs for every home!',
656
+ base_price: antelope.UInt64.from(400),
657
+ mass: antelope.UInt64.from(10000),
658
+ },
659
+ {
660
+ id: antelope.UInt16.from(4),
661
+ name: 'TuneTooth',
662
+ description: 'Whistle while you eat! Edible instrument treats that play tunes when chewed.',
663
+ base_price: antelope.UInt64.from(600),
664
+ mass: antelope.UInt64.from(3000),
665
+ },
666
+ {
667
+ id: antelope.UInt16.from(5),
668
+ name: 'SunPods',
669
+ description: 'Miniature suns in your pocket providing on-demand light & warmth.',
670
+ base_price: antelope.UInt64.from(800),
671
+ mass: antelope.UInt64.from(1000),
672
+ },
673
+ {
674
+ id: antelope.UInt16.from(6),
675
+ name: 'Fuzzix',
676
+ description: 'Pocket-sized quantum fluff generator for instant comfy.',
677
+ base_price: antelope.UInt64.from(1000),
678
+ mass: antelope.UInt64.from(4000),
679
+ },
680
+ {
681
+ id: antelope.UInt16.from(7),
682
+ name: 'GlowGo',
683
+ description: 'Ingestible bioluminescent jelly, your inside glows in the dark!',
684
+ base_price: antelope.UInt64.from(140),
685
+ mass: antelope.UInt64.from(3000),
686
+ },
687
+ {
688
+ id: antelope.UInt16.from(8),
689
+ name: 'KrackleKaps',
690
+ description: 'Capsules packed with tiny firecrackers, spice up meals and parties.',
691
+ base_price: antelope.UInt64.from(180),
692
+ mass: antelope.UInt64.from(2000),
693
+ },
694
+ {
695
+ id: antelope.UInt16.from(9),
696
+ name: 'PlasmaMints',
697
+ description: 'Hypercharged candy giving plasma breath capable of cutting through steel.',
698
+ base_price: antelope.UInt64.from(220),
699
+ mass: antelope.UInt64.from(500),
700
+ },
701
+ {
702
+ id: antelope.UInt16.from(10),
703
+ name: 'TimeTreats',
704
+ description: 'Confectionery morsels releasing slow-mo effect over a limited period.',
705
+ base_price: antelope.UInt64.from(250),
706
+ mass: antelope.UInt64.from(3000),
707
+ },
708
+ {
709
+ id: antelope.UInt16.from(11),
710
+ name: 'QuantumQuencher',
711
+ description: 'Bottled hyper-fluid quenching thirst across multiple parallel realities simultaneously.',
712
+ base_price: antelope.UInt64.from(300),
713
+ mass: antelope.UInt64.from(6000),
714
+ },
715
+ {
716
+ id: antelope.UInt16.from(12),
717
+ name: 'TransmatterTruffles',
718
+ description: 'Delectable chocolates instantly teleporting consumers short distances.',
719
+ base_price: antelope.UInt64.from(350),
720
+ mass: antelope.UInt64.from(4000),
721
+ },
722
+ {
723
+ id: antelope.UInt16.from(13),
724
+ name: 'MemoryGum',
725
+ description: 'Chewable gum storing or replaying memories while being chewed.',
726
+ base_price: antelope.UInt64.from(400),
727
+ mass: antelope.UInt64.from(500),
728
+ },
729
+ {
730
+ id: antelope.UInt16.from(14),
731
+ name: 'SymbioSnack',
732
+ description: 'Edible alien larvae adopting owner’s taste preference upon consumption.',
733
+ base_price: antelope.UInt64.from(500),
734
+ mass: antelope.UInt64.from(1000),
735
+ },
736
+ ];
737
+ function getGood(good_id) {
738
+ const good = goods.find((g) => g.id.equals(good_id));
739
+ if (!good) {
740
+ throw new Error('Good does not exist');
741
+ }
742
+ return good;
558
743
  }
559
744
 
745
+ function roll(game_seed, roll_seed) {
746
+ const byteArray = hashBytes(game_seed, roll_seed);
747
+ return (byteArray[0] << 8) | byteArray[1];
748
+ }
749
+
750
+ function marketprice(location, good_id, gameSeed, epochSeed) {
751
+ return tslib.__awaiter(this, void 0, void 0, function* () {
752
+ const good = getGood(good_id);
753
+ const rollSeed = `${location.x}${epochSeed}${location.y}${good_id}`;
754
+ const rollValue = roll(gameSeed, rollSeed);
755
+ return priceFromRoll(good.base_price, rollValue);
756
+ });
757
+ }
758
+ function marketprices(location, gameSeed, epochSeed) {
759
+ return tslib.__awaiter(this, void 0, void 0, function* () {
760
+ return Promise.all(goods.map((good) => tslib.__awaiter(this, void 0, void 0, function* () {
761
+ const price = yield marketprice(location, good.id, gameSeed, epochSeed);
762
+ return { price, id: good.id };
763
+ })));
764
+ });
765
+ }
766
+ function priceFromRoll(basePrice, roll) {
767
+ basePrice = Number(basePrice);
768
+ let price;
769
+ if (roll < 13) {
770
+ price = basePrice * 2.25;
771
+ }
772
+ else if (roll < 176) {
773
+ price = basePrice * 1.75;
774
+ }
775
+ else if (roll < 996) {
776
+ price = basePrice * 1.4;
777
+ }
778
+ else if (roll < 2966) {
779
+ price = basePrice * 1.225;
780
+ }
781
+ else if (roll < 19568) {
782
+ price = basePrice * 1.07;
783
+ }
784
+ else if (roll < 45988) {
785
+ price = 0;
786
+ }
787
+ else if (roll < 62508) {
788
+ price = basePrice * 0.925;
789
+ }
790
+ else if (roll < 64518) {
791
+ price = basePrice * 0.77;
792
+ }
793
+ else if (roll < 65437) {
794
+ price = basePrice * 0.595;
795
+ }
796
+ else if (roll < 65523) {
797
+ price = basePrice * 0.41;
798
+ }
799
+ else {
800
+ price = basePrice * 0.285;
801
+ }
802
+ return antelope.UInt64.from(price);
803
+ }
804
+
805
+ const ERROR_SYSTEM_NOT_INITIALIZED = 'System not initialized';
806
+ const GOOD_DOES_NOT_EXIST = 'Good does not exist';
807
+ const GOOD_NOT_AVAILABLE_AT_LOCATION = 'Good not available at location';
808
+ const PLAYER_NOT_FOUND = 'Player not found';
809
+ const SHIP_NOT_FOUND = 'Ship not found';
810
+ const SHIP_CANNOT_BUY_TRAVELING = 'Ship cannot buy while traveling';
811
+ const INSUFFICIENT_BALANCE = 'Insufficient balance';
812
+ const INSUFFICIENT_GOOD_QUANTITY = 'Insufficient good quantity';
813
+ const REQUIRES_MORE_THAN_ONE = 'Requires more than one';
814
+
560
815
  class Shipload {
816
+ constructor(chain, { client, serverContract }) {
817
+ this.client = client || new antelope.APIClient({ url: chain.url });
818
+ this.server = serverContract
819
+ ? serverContract
820
+ : new Contract({ client: this.client });
821
+ }
822
+ static load(chain, shiploadOptions) {
823
+ return tslib.__awaiter(this, void 0, void 0, function* () {
824
+ let server$1 = new Contract({
825
+ client: new antelope.APIClient({ url: chain.url }),
826
+ });
827
+ if (shiploadOptions.contractName) {
828
+ const client = shiploadOptions.client || new antelope.APIClient({ url: chain.url });
829
+ const contractKit = new ContractKit__default["default"]({ client });
830
+ server$1 = yield contractKit.load(shiploadOptions.contractName);
831
+ }
832
+ return new Shipload(chain, Object.assign(Object.assign({}, shiploadOptions), { serverContract: server$1 }));
833
+ });
834
+ }
835
+ getState() {
836
+ return tslib.__awaiter(this, void 0, void 0, function* () {
837
+ const state = yield this.server.table('state').get();
838
+ if (!state) {
839
+ throw new Error(ERROR_SYSTEM_NOT_INITIALIZED);
840
+ }
841
+ return state;
842
+ });
843
+ }
844
+ marketprice(location, good_id) {
845
+ return tslib.__awaiter(this, void 0, void 0, function* () {
846
+ const { seed, epochseed } = yield this.getState();
847
+ return marketprice(location, good_id, seed, epochseed);
848
+ });
849
+ }
850
+ marketprices(location) {
851
+ return tslib.__awaiter(this, void 0, void 0, function* () {
852
+ const { seed, epochseed } = yield this.getState();
853
+ return marketprices(location, seed, epochseed);
854
+ });
855
+ }
561
856
  }
562
857
 
858
+ exports.ERROR_SYSTEM_NOT_INITIALIZED = ERROR_SYSTEM_NOT_INITIALIZED;
859
+ exports.GOOD_DOES_NOT_EXIST = GOOD_DOES_NOT_EXIST;
860
+ exports.GOOD_NOT_AVAILABLE_AT_LOCATION = GOOD_NOT_AVAILABLE_AT_LOCATION;
861
+ exports.INSUFFICIENT_BALANCE = INSUFFICIENT_BALANCE;
862
+ exports.INSUFFICIENT_GOOD_QUANTITY = INSUFFICIENT_GOOD_QUANTITY;
863
+ exports.PLAYER_NOT_FOUND = PLAYER_NOT_FOUND;
563
864
  exports.PlatformContract = platform;
865
+ exports.REQUIRES_MORE_THAN_ONE = REQUIRES_MORE_THAN_ONE;
866
+ exports.SHIP_CANNOT_BUY_TRAVELING = SHIP_CANNOT_BUY_TRAVELING;
867
+ exports.SHIP_NOT_FOUND = SHIP_NOT_FOUND;
564
868
  exports.ServerContract = server;
565
869
  exports["default"] = Shipload;
566
- exports.distance = distance;
870
+ exports.distanceBetweenCoordinates = distanceBetweenCoordinates;
871
+ exports.distanceBetweenPoints = distanceBetweenPoints;
872
+ exports.distanceTraveled = distanceTraveled;
873
+ exports.findNearbyPlanets = findNearbyPlanets;
874
+ exports.getGood = getGood;
875
+ exports.goods = goods;
567
876
  exports.hasPlanet = hasPlanet;
568
877
  exports.hash = hash;
878
+ exports.hashBytes = hashBytes;
569
879
  exports.lerp = lerp;
880
+ exports.marketprice = marketprice;
881
+ exports.marketprices = marketprices;
882
+ exports.priceFromRoll = priceFromRoll;
570
883
  exports.rotation = rotation;
571
884
  //# sourceMappingURL=shipload.js.map