@shipload/sdk 0.3.1 → 0.3.2

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
@@ -10,7 +10,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
10
 
11
11
  var ContractKit__default = /*#__PURE__*/_interopDefaultLegacy(ContractKit);
12
12
 
13
- const abiBlob$1 = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAAcKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/C2NvbXBhbnlfcm93AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxmb3VuZGNvbXBhbnkAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcJc3RhdGVfcm93AAEHZW5hYmxlZARib29sBHRlc3QAAQRkYXRhBnN0cmluZwR3aXBlAAAFAICKx+RrVEQKY2xlYXJ0YWJsZQAAAAAAqHjMVAZlbmFibGXzAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ0VuYWJsZS9kaXNhYmxlIHBsYXRmb3JtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhlIHBsYXRmb3JtIGNvbnRyYWN0LuCnqZKiNDVdDGZvdW5kY29tcGFueYMCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZvdW5kY29tcGFueQpzdW1tYXJ5OiAnRm91bmQgYSBuZXcgY29tcGFueScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkZvdW5kIGEgbmV3IGNvbXBhbnkgaW4gdGhlIFNoaXBsb2FkIHBsYXRmb3JtIGNvbnRyYWN0LgAAAAAAkLHKBHRlc3QAAAAAAACgquMEd2lwZQACAAAAwE9TJUUDaTY0AAALY29tcGFueV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cBE1NoaXBsb2FkIChQbGF0Zm9ybSkTU2hpcGxvYWQgKFBsYXRmb3JtKQAAAAA=');
13
+ const abiBlob$1 = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAA0KY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/C2NvbXBhbnlfcm93AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAplbmFibGVnYW1lAAIIY29udHJhY3QEbmFtZQdlbmFibGVkBGJvb2wMZm91bmRjb21wYW55AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nC2dhbWVfY29uZmlnAAIEc2VlZAtjaGVja3N1bTI1NgllcG9jaHRpbWUGdWludDMyCWdhbWVfbWV0YQAEBG5hbWUGc3RyaW5nC2Rlc2NyaXB0aW9uBnN0cmluZwN1cmwGc3RyaW5nB3ZlcnNpb24Gc3RyaW5nCGdhbWVfcm93AAQIY29udHJhY3QEbmFtZQZjb25maWcLZ2FtZV9jb25maWcEbWV0YQlnYW1lX21ldGEFc3RhdGUKZ2FtZV9zdGF0ZQpnYW1lX3N0YXRlAAMHZW5hYmxlZARib29sBXN0YXJ0DnRpbWVfcG9pbnRfc2VjA2VuZA50aW1lX3BvaW50X3NlYwlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAHAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAACoeMxUBmVuYWJsZfMBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnRW5hYmxlL2Rpc2FibGUgcGxhdGZvcm0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGUgcGxhdGZvcm0gY29udHJhY3QuAICShql4zFQKZW5hYmxlZ2FtZfwBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZWdhbWUKc3VtbWFyeTogJ0VuYWJsZS9kaXNiYWJsZSBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3Qu4KepkqI0NV0MZm91bmRjb21wYW55gwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZm91bmRjb21wYW55CnN1bW1hcnk6ICdGb3VuZCBhIG5ldyBjb21wYW55JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRm91bmQgYSBuZXcgY29tcGFueSBpbiB0aGUgU2hpcGxvYWQgcGxhdGZvcm0gY29udHJhY3QuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AgJKGqWxS1Qp1cGRhdGVnYW1ljQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdXBkYXRlZ2FtZQpzdW1tYXJ5OiAnVXBkYXRlIGdhbWUgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpVcGRhdGUgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVjaWZpZWQgZ2FtZSBjb250cmFjdC4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0DAAAAwE9TJUUDaTY0AAALY29tcGFueV9yb3cAAAAAAKykYQNpNjQAAAhnYW1lX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA==');
14
14
  const abi$1 = antelope.ABI.from(abiBlob$1);
15
15
  var Types$1;
16
16
  (function (Types) {
@@ -50,6 +50,18 @@ var Types$1;
50
50
  antelope.Struct.type('enable')
51
51
  ], enable);
52
52
  Types.enable = enable;
53
+ let enablegame = class enablegame extends antelope.Struct {
54
+ };
55
+ tslib.__decorate([
56
+ antelope.Struct.field(antelope.Name)
57
+ ], enablegame.prototype, "contract", void 0);
58
+ tslib.__decorate([
59
+ antelope.Struct.field('bool')
60
+ ], enablegame.prototype, "enabled", void 0);
61
+ enablegame = tslib.__decorate([
62
+ antelope.Struct.type('enablegame')
63
+ ], enablegame);
64
+ Types.enablegame = enablegame;
53
65
  let foundcompany = class foundcompany extends antelope.Struct {
54
66
  };
55
67
  tslib.__decorate([
@@ -62,6 +74,87 @@ var Types$1;
62
74
  antelope.Struct.type('foundcompany')
63
75
  ], foundcompany);
64
76
  Types.foundcompany = foundcompany;
77
+ let game_config = class game_config extends antelope.Struct {
78
+ };
79
+ tslib.__decorate([
80
+ antelope.Struct.field(antelope.Checksum256)
81
+ ], game_config.prototype, "seed", void 0);
82
+ tslib.__decorate([
83
+ antelope.Struct.field(antelope.UInt32)
84
+ ], game_config.prototype, "epochtime", void 0);
85
+ game_config = tslib.__decorate([
86
+ antelope.Struct.type('game_config')
87
+ ], game_config);
88
+ Types.game_config = game_config;
89
+ let game_meta = class game_meta extends antelope.Struct {
90
+ };
91
+ tslib.__decorate([
92
+ antelope.Struct.field('string')
93
+ ], game_meta.prototype, "name", void 0);
94
+ tslib.__decorate([
95
+ antelope.Struct.field('string')
96
+ ], game_meta.prototype, "description", void 0);
97
+ tslib.__decorate([
98
+ antelope.Struct.field('string')
99
+ ], game_meta.prototype, "url", void 0);
100
+ tslib.__decorate([
101
+ antelope.Struct.field('string')
102
+ ], game_meta.prototype, "version", void 0);
103
+ game_meta = tslib.__decorate([
104
+ antelope.Struct.type('game_meta')
105
+ ], game_meta);
106
+ Types.game_meta = game_meta;
107
+ let game_state = class game_state extends antelope.Struct {
108
+ };
109
+ tslib.__decorate([
110
+ antelope.Struct.field('bool')
111
+ ], game_state.prototype, "enabled", void 0);
112
+ tslib.__decorate([
113
+ antelope.Struct.field(antelope.TimePointSec)
114
+ ], game_state.prototype, "start", void 0);
115
+ tslib.__decorate([
116
+ antelope.Struct.field(antelope.TimePointSec)
117
+ ], game_state.prototype, "end", void 0);
118
+ game_state = tslib.__decorate([
119
+ antelope.Struct.type('game_state')
120
+ ], game_state);
121
+ Types.game_state = game_state;
122
+ let game_row = class game_row extends antelope.Struct {
123
+ };
124
+ tslib.__decorate([
125
+ antelope.Struct.field(antelope.Name)
126
+ ], game_row.prototype, "contract", void 0);
127
+ tslib.__decorate([
128
+ antelope.Struct.field(game_config)
129
+ ], game_row.prototype, "config", void 0);
130
+ tslib.__decorate([
131
+ antelope.Struct.field(game_meta)
132
+ ], game_row.prototype, "meta", void 0);
133
+ tslib.__decorate([
134
+ antelope.Struct.field(game_state)
135
+ ], game_row.prototype, "state", void 0);
136
+ game_row = tslib.__decorate([
137
+ antelope.Struct.type('game_row')
138
+ ], game_row);
139
+ Types.game_row = game_row;
140
+ let startgame = class startgame extends antelope.Struct {
141
+ };
142
+ tslib.__decorate([
143
+ antelope.Struct.field(antelope.Name)
144
+ ], startgame.prototype, "contract", void 0);
145
+ tslib.__decorate([
146
+ antelope.Struct.field(game_config)
147
+ ], startgame.prototype, "config", void 0);
148
+ tslib.__decorate([
149
+ antelope.Struct.field(game_meta)
150
+ ], startgame.prototype, "meta", void 0);
151
+ tslib.__decorate([
152
+ antelope.Struct.field(game_state)
153
+ ], startgame.prototype, "state", void 0);
154
+ startgame = tslib.__decorate([
155
+ antelope.Struct.type('startgame')
156
+ ], startgame);
157
+ Types.startgame = startgame;
65
158
  let state_row = class state_row extends antelope.Struct {
66
159
  };
67
160
  tslib.__decorate([
@@ -71,15 +164,18 @@ var Types$1;
71
164
  antelope.Struct.type('state_row')
72
165
  ], state_row);
73
166
  Types.state_row = state_row;
74
- let test = class test extends antelope.Struct {
167
+ let updategame = class updategame extends antelope.Struct {
75
168
  };
76
169
  tslib.__decorate([
77
- antelope.Struct.field('string')
78
- ], test.prototype, "data", void 0);
79
- test = tslib.__decorate([
80
- antelope.Struct.type('test')
81
- ], test);
82
- Types.test = test;
170
+ antelope.Struct.field(antelope.Name)
171
+ ], updategame.prototype, "contract", void 0);
172
+ tslib.__decorate([
173
+ antelope.Struct.field(game_meta)
174
+ ], updategame.prototype, "meta", void 0);
175
+ updategame = tslib.__decorate([
176
+ antelope.Struct.type('updategame')
177
+ ], updategame);
178
+ Types.updategame = updategame;
83
179
  let wipe = class wipe extends antelope.Struct {
84
180
  };
85
181
  wipe = tslib.__decorate([
@@ -89,6 +185,7 @@ var Types$1;
89
185
  })(Types$1 || (Types$1 = {}));
90
186
  const TableMap$1 = {
91
187
  company: Types$1.company_row,
188
+ games: Types$1.game_row,
92
189
  state: Types$1.state_row,
93
190
  };
94
191
  class Contract$1 extends ContractKit.Contract {
@@ -116,12 +213,18 @@ var platform = /*#__PURE__*/Object.freeze({
116
213
  Contract: Contract$1
117
214
  });
118
215
 
119
- const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yABwHYWR2YW5jZQAABmFycml2ZQACBW93bmVyBG5hbWUCaWQGdWludDY0CGJ1eWdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CWNhcmdvX3JvdwAFAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQGbG9hZGVkBnVpbnQ2NApjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8LY29vcmRpbmF0ZXMAAgF4BWludDY0AXkFaW50NjQGZW5hYmxlAAEHZW5hYmxlZARib29sCWVzdHRyYXZlbAACAmlkBnVpbnQ2NAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwpnb29kX3ByaWNlAAICaWQGdWludDE2BXByaWNlBnVpbnQ2NARoYXNoAAEFdmFsdWUGc3RyaW5nBGluaXQAAgRzZWVkC2NoZWNrc3VtMjU2CWVwb2Noc2VlZAtjaGVja3N1bTI1NgRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwAECGNhcGFjaXR5BnVpbnQxNgRtYXNzBnVpbnQzMghxdWFudGl0eQZ1aW50MTYGdGhydXN0BnVpbnQzMgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzCnBsYXllcl9yb3cAAwVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDY0CXNlbGxnb29kcwADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cACgJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwhsb2NhdGlvbgtjb29yZGluYXRlcwRza2luBXVpbnQ4BHRpZXIFdWludDgFc3RhdGUKc2hpcF9zdGF0ZQVzdGF0cwpzaGlwX3N0YXRzB2xvYWRlcnMMbG9hZGVyX3N0YXRzCnRyYXZlbHBsYW4MdHJhdmVsX3BsYW4/CnNoaXBfc3RhdGUAAQZlbmVyZ3kGdWludDMyCnNoaXBfc3RhdHMABghjYXBhY2l0eQZ1aW50MzIFZHJhaW4GdWludDMyBG1hc3MGdWludDY0BW9yYml0BnVpbnQxNghyZWNoYXJnZQZ1aW50MzIGdGhydXN0BnVpbnQ2NAlzdGF0ZV9yb3cABQdlbmFibGVkBGJvb2wFZXBvY2gGdWludDY0CWVwb2Noc2VlZAtjaGVja3N1bTI1NgdnZW5lc2lzFGJsb2NrX3RpbWVzdGFtcF90eXBlBHNlZWQLY2hlY2tzdW0yNTYLc3VtbWFyeV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQ50cmF2ZWxfc3VtbWFyeQR0ZXN0AAEEZGF0YQZzdHJpbmcGdHJhdmVsAAQFb3duZXIEbmFtZQJpZAZ1aW50NjQLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIcmVjaGFyZ2UEYm9vbAt0cmF2ZWxfcGxhbgADC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCWRlcGFydHVyZQp0aW1lX3BvaW50CGR1cmF0aW9uBnVpbnQzMg50cmF2ZWxfc3VtbWFyeQAMBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMGb3JpZ2luC2Nvb3JkaW5hdGVzC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCGRpc3RhbmNlBnVpbnQ2NAl0b3RhbG1hc3MGdWludDY0DGFjY2VsZXJhdGlvbgZ1aW50NjQKZmxpZ2h0dGltZQZ1aW50NjQLZW5lcmd5dXNhZ2UGdWludDY0DHJlY2hhcmdldGltZQZ1aW50NjQIbG9hZHRpbWUGdWludDY0BHRpbWUGdWludDY0BHdpcGUAAA8AAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAiGqbmzNWCWVzdHRyYXZlbAAAAAAAANCwaQRoYXNo6gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAAAAAJDddARpbml0/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdApzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgZXBvY2hzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAAAAADAdfQRqb2luyQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkCgotLS0AFHK3ZgWvkQttYXJrZXRwcmljZZsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlCnN1bW1hcnk6ICdHZXQgcHJpY2Ugb2YgZ29vZCBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGEgc3BlY2lmaWVkIGdvb2QgYXQgYSBnaXZlbiBsb2NhdGlvbi4KCi0tLYAVcrdmBa+RDG1hcmtldHByaWNlc5UCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlcwpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAAAACQscoEdGVzdLIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRlc3QKc3VtbWFyeTogJ0RFQlVHOiB0ZXN0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABEtc3NBnRyYXZlbP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhIHNoaXAgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0GAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAwF8jpcYDaTY0AAALc3VtbWFyeV9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAABAAAiGqbmzNWDnRyYXZlbF9zdW1tYXJ5AAAAAADQsGkLY2hlY2tzdW01MTIAFHK3ZgWvkQpnb29kX3ByaWNlgBVyt2YFr5EMZ29vZF9wcmljZVtd');
216
+ const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAB0HYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BmFycml2ZQACBW93bmVyBG5hbWUCaWQGdWludDY0CGJ1eWdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CWNhcmdvX3JvdwAFAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50MTYGbG9hZGVkBnVpbnQxNgpjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAEGY29tbWl0C2NoZWNrc3VtMjU2C2Nvb3JkaW5hdGVzAAIBeAVpbnQ2NAF5BWludDY0BmVuYWJsZQABB2VuYWJsZWQEYm9vbApnb29kX3ByaWNlAAICaWQGdWludDE2BXByaWNlBnVpbnQ2NARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcEaW5pdAABBHNlZWQLY2hlY2tzdW0yNTYEam9pbgABB2FjY291bnQEbmFtZQxsb2FkZXJfc3RhdHMAAwRtYXNzBnVpbnQzMghxdWFudGl0eQZ1aW50MTYGdGhydXN0BnVpbnQzMgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzCnBsYXllcl9yb3cAAwVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDY0BHNhbHQAAQRzYWx0BnVpbnQ2NAlzZWxsZ29vZHMAAwdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQMc2VxdWVuY2Vfcm93AAIDa2V5BG5hbWUFdmFsdWUGdWludDY0CHNoaXBfcm93AAoCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcIbG9jYXRpb24LY29vcmRpbmF0ZXMEc2tpbgV1aW50OAR0aWVyBXVpbnQ4BXN0YXRlCnNoaXBfc3RhdGUFc3RhdHMKc2hpcF9zdGF0cwdsb2FkZXJzDGxvYWRlcl9zdGF0cwp0cmF2ZWxwbGFuDHRyYXZlbF9wbGFuPwpzaGlwX3N0YXRlAAEGZW5lcmd5BnVpbnQzMgpzaGlwX3N0YXRzAAYIY2FwYWNpdHkGdWludDMyBWRyYWluBnVpbnQzMgRtYXNzBnVpbnQ2NAVvcmJpdAZ1aW50MTYIcmVjaGFyZ2UGdWludDMyBnRocnVzdAZ1aW50NjQJc3RhdGVfcm93AAYHZW5hYmxlZARib29sBWVwb2NoBnVpbnQ2NARzYWx0BnVpbnQ2NARzZWVkC2NoZWNrc3VtMjU2BmNvbW1pdAtjaGVja3N1bTI1NgdnZW5lc2lzFGJsb2NrX3RpbWVzdGFtcF90eXBlBnRyYXZlbAAEBW93bmVyBG5hbWUCaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCHJlY2hhcmdlBGJvb2wLdHJhdmVsX3BsYW4AAwtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwlkZXBhcnR1cmUKdGltZV9wb2ludAhkdXJhdGlvbgZ1aW50MzIOdHJhdmVsX3N1bW1hcnkADAVzdGF0cwpzaGlwX3N0YXRzB2xvYWRlcnMMbG9hZGVyX3N0YXRzBm9yaWdpbgtjb29yZGluYXRlcwtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwhkaXN0YW5jZQZ1aW50NjQJdG90YWxtYXNzBnVpbnQ2NAxhY2NlbGVyYXRpb24GdWludDY0CmZsaWdodHRpbWUGdWludDY0C2VuZXJneXVzYWdlBnVpbnQ2NAxyZWNoYXJnZXRpbWUGdWludDY0CGxvYWR0aW1lBnVpbnQ2NAR0aW1lBnVpbnQ2NAp0cmF2ZWx0aW1lAAICaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzBHdpcGUAABEAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdPEBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4KCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAAAAA0LBpBGhhc2j9AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuCgotLS0AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAAAAkN10BGluaXT6AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBpbml0CnN1bW1hcnk6ICdJbml0aWFsaXplIGdhbWUgc2VlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhbGl6ZSBhIHRoZSBnYW1lcyBzZWVkIGFuZCBzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAAAAADAdfQRqb2luyQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkCgotLS0AFHK3ZgWvkQttYXJrZXRwcmljZZsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlCnN1bW1hcnk6ICdHZXQgcHJpY2Ugb2YgZ29vZCBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGEgc3BlY2lmaWVkIGdvb2QgYXQgYSBnaXZlbiBsb2NhdGlvbi4KCi0tLYAVcrdmBa+RDG1hcmtldHByaWNlc5UCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlcwpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAAAAAkKPBBHNhbHTdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzYWx0CnN1bW1hcnk6ICdBcHBlbmQgU2FsdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQWRkIGFkZGl0aW9uYWwgc2FsdCB0byB0aGUgbmV4dCBlcG9jaCBzZWVkLgoKLS0tAADAiVIWo8IJc2VsbGdvb2Rz1QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2VsbGdvb2RzCnN1bW1hcnk6ICdTZWxsIGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZWxsIGdvb2RzIGZyb20gYSBzaGlwJ3MgY2FyZ28uCgotLS0AAAAARLXNzQZ0cmF2ZWz9AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYSBzaGlwIGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uCgotLS0AgJIuR7XNzQp0cmF2ZWx0aW1ljAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhdmVsdGltZQpzdW1tYXJ5OiAnRXN0aW1hdGUgVHJhdmVsIFRpbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVzdGltYXRlIHRoZSBkdXJhdGlvbiBvZiBhIHNoaXAgdHJhdmVsaW5nIHdpdGhvdXQgY29tbWl0dGluZyB0byB0aGUgYWN0aW9uLgoKLS0tAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQUAAAAAAMquQQNpNjQAAAljYXJnb19yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAACk2lrcIDaTY0AAAMc2VxdWVuY2Vfcm93AAAAAABQXcMDaTY0AAAIc2hpcF9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAABQAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAFHK3ZgWvkQpnb29kX3ByaWNlgBVyt2YFr5EMZ29vZF9wcmljZVtdAICSLke1zc0OdHJhdmVsX3N1bW1hcnk=');
120
217
  const abi = antelope.ABI.from(abiBlob);
121
218
  var Types;
122
219
  (function (Types) {
123
220
  let advance = class advance extends antelope.Struct {
124
221
  };
222
+ tslib.__decorate([
223
+ antelope.Struct.field('string')
224
+ ], advance.prototype, "reveal", void 0);
225
+ tslib.__decorate([
226
+ antelope.Struct.field(antelope.Checksum256)
227
+ ], advance.prototype, "commit", void 0);
125
228
  advance = tslib.__decorate([
126
229
  antelope.Struct.type('advance')
127
230
  ], advance);
@@ -165,10 +268,10 @@ var Types;
165
268
  antelope.Struct.field(antelope.UInt64)
166
269
  ], cargo_row.prototype, "good_id", void 0);
167
270
  tslib.__decorate([
168
- antelope.Struct.field(antelope.UInt64)
271
+ antelope.Struct.field(antelope.UInt16)
169
272
  ], cargo_row.prototype, "quantity", void 0);
170
273
  tslib.__decorate([
171
- antelope.Struct.field(antelope.UInt64)
274
+ antelope.Struct.field(antelope.UInt16)
172
275
  ], cargo_row.prototype, "loaded", void 0);
173
276
  cargo_row = tslib.__decorate([
174
277
  antelope.Struct.type('cargo_row')
@@ -189,6 +292,15 @@ var Types;
189
292
  antelope.Struct.type('cleartable')
190
293
  ], cleartable);
191
294
  Types.cleartable = cleartable;
295
+ let commit = class commit extends antelope.Struct {
296
+ };
297
+ tslib.__decorate([
298
+ antelope.Struct.field(antelope.Checksum256)
299
+ ], commit.prototype, "commit", void 0);
300
+ commit = tslib.__decorate([
301
+ antelope.Struct.type('commit')
302
+ ], commit);
303
+ Types.commit = commit;
192
304
  let coordinates = class coordinates extends antelope.Struct {
193
305
  };
194
306
  tslib.__decorate([
@@ -210,18 +322,6 @@ var Types;
210
322
  antelope.Struct.type('enable')
211
323
  ], enable);
212
324
  Types.enable = enable;
213
- let esttravel = class esttravel extends antelope.Struct {
214
- };
215
- tslib.__decorate([
216
- antelope.Struct.field(antelope.UInt64)
217
- ], esttravel.prototype, "id", void 0);
218
- tslib.__decorate([
219
- antelope.Struct.field(coordinates)
220
- ], esttravel.prototype, "destination", void 0);
221
- esttravel = tslib.__decorate([
222
- antelope.Struct.type('esttravel')
223
- ], esttravel);
224
- Types.esttravel = esttravel;
225
325
  let good_price = class good_price extends antelope.Struct {
226
326
  };
227
327
  tslib.__decorate([
@@ -243,14 +343,20 @@ var Types;
243
343
  antelope.Struct.type('hash')
244
344
  ], hash);
245
345
  Types.hash = hash;
346
+ let hash512 = class hash512 extends antelope.Struct {
347
+ };
348
+ tslib.__decorate([
349
+ antelope.Struct.field('string')
350
+ ], hash512.prototype, "value", void 0);
351
+ hash512 = tslib.__decorate([
352
+ antelope.Struct.type('hash512')
353
+ ], hash512);
354
+ Types.hash512 = hash512;
246
355
  let init = class init extends antelope.Struct {
247
356
  };
248
357
  tslib.__decorate([
249
358
  antelope.Struct.field(antelope.Checksum256)
250
359
  ], init.prototype, "seed", void 0);
251
- tslib.__decorate([
252
- antelope.Struct.field(antelope.Checksum256)
253
- ], init.prototype, "epochseed", void 0);
254
360
  init = tslib.__decorate([
255
361
  antelope.Struct.type('init')
256
362
  ], init);
@@ -266,9 +372,6 @@ var Types;
266
372
  Types.join = join;
267
373
  let loader_stats = class loader_stats extends antelope.Struct {
268
374
  };
269
- tslib.__decorate([
270
- antelope.Struct.field(antelope.UInt16)
271
- ], loader_stats.prototype, "capacity", void 0);
272
375
  tslib.__decorate([
273
376
  antelope.Struct.field(antelope.UInt32)
274
377
  ], loader_stats.prototype, "mass", void 0);
@@ -318,6 +421,15 @@ var Types;
318
421
  antelope.Struct.type('player_row')
319
422
  ], player_row);
320
423
  Types.player_row = player_row;
424
+ let salt = class salt extends antelope.Struct {
425
+ };
426
+ tslib.__decorate([
427
+ antelope.Struct.field(antelope.UInt64)
428
+ ], salt.prototype, "salt", void 0);
429
+ salt = tslib.__decorate([
430
+ antelope.Struct.type('salt')
431
+ ], salt);
432
+ Types.salt = salt;
321
433
  let sellgoods = class sellgoods extends antelope.Struct {
322
434
  };
323
435
  tslib.__decorate([
@@ -437,19 +549,40 @@ var Types;
437
549
  tslib.__decorate([
438
550
  antelope.Struct.field(antelope.UInt64)
439
551
  ], state_row.prototype, "epoch", void 0);
552
+ tslib.__decorate([
553
+ antelope.Struct.field(antelope.UInt64)
554
+ ], state_row.prototype, "salt", void 0);
555
+ tslib.__decorate([
556
+ antelope.Struct.field(antelope.Checksum256)
557
+ ], state_row.prototype, "seed", void 0);
440
558
  tslib.__decorate([
441
559
  antelope.Struct.field(antelope.Checksum256)
442
- ], state_row.prototype, "epochseed", void 0);
560
+ ], state_row.prototype, "commit", void 0);
443
561
  tslib.__decorate([
444
562
  antelope.Struct.field(antelope.BlockTimestamp)
445
563
  ], state_row.prototype, "genesis", void 0);
446
- tslib.__decorate([
447
- antelope.Struct.field(antelope.Checksum256)
448
- ], state_row.prototype, "seed", void 0);
449
564
  state_row = tslib.__decorate([
450
565
  antelope.Struct.type('state_row')
451
566
  ], state_row);
452
567
  Types.state_row = state_row;
568
+ let travel = class travel extends antelope.Struct {
569
+ };
570
+ tslib.__decorate([
571
+ antelope.Struct.field(antelope.Name)
572
+ ], travel.prototype, "owner", void 0);
573
+ tslib.__decorate([
574
+ antelope.Struct.field(antelope.UInt64)
575
+ ], travel.prototype, "id", void 0);
576
+ tslib.__decorate([
577
+ antelope.Struct.field(coordinates)
578
+ ], travel.prototype, "destination", void 0);
579
+ tslib.__decorate([
580
+ antelope.Struct.field('bool')
581
+ ], travel.prototype, "recharge", void 0);
582
+ travel = tslib.__decorate([
583
+ antelope.Struct.type('travel')
584
+ ], travel);
585
+ Types.travel = travel;
453
586
  let travel_summary = class travel_summary extends antelope.Struct {
454
587
  };
455
588
  tslib.__decorate([
@@ -492,45 +625,18 @@ var Types;
492
625
  antelope.Struct.type('travel_summary')
493
626
  ], travel_summary);
494
627
  Types.travel_summary = travel_summary;
495
- let summary_row = class summary_row extends antelope.Struct {
496
- };
497
- tslib.__decorate([
498
- antelope.Struct.field(antelope.Name)
499
- ], summary_row.prototype, "key", void 0);
500
- tslib.__decorate([
501
- antelope.Struct.field(travel_summary)
502
- ], summary_row.prototype, "value", void 0);
503
- summary_row = tslib.__decorate([
504
- antelope.Struct.type('summary_row')
505
- ], summary_row);
506
- Types.summary_row = summary_row;
507
- let test = class test extends antelope.Struct {
628
+ let traveltime = class traveltime extends antelope.Struct {
508
629
  };
509
- tslib.__decorate([
510
- antelope.Struct.field('string')
511
- ], test.prototype, "data", void 0);
512
- test = tslib.__decorate([
513
- antelope.Struct.type('test')
514
- ], test);
515
- Types.test = test;
516
- let travel = class travel extends antelope.Struct {
517
- };
518
- tslib.__decorate([
519
- antelope.Struct.field(antelope.Name)
520
- ], travel.prototype, "owner", void 0);
521
630
  tslib.__decorate([
522
631
  antelope.Struct.field(antelope.UInt64)
523
- ], travel.prototype, "id", void 0);
632
+ ], traveltime.prototype, "id", void 0);
524
633
  tslib.__decorate([
525
634
  antelope.Struct.field(coordinates)
526
- ], travel.prototype, "destination", void 0);
527
- tslib.__decorate([
528
- antelope.Struct.field('bool')
529
- ], travel.prototype, "recharge", void 0);
530
- travel = tslib.__decorate([
531
- antelope.Struct.type('travel')
532
- ], travel);
533
- Types.travel = travel;
635
+ ], traveltime.prototype, "destination", void 0);
636
+ traveltime = tslib.__decorate([
637
+ antelope.Struct.type('traveltime')
638
+ ], traveltime);
639
+ Types.traveltime = traveltime;
534
640
  let wipe = class wipe extends antelope.Struct {
535
641
  };
536
642
  wipe = tslib.__decorate([
@@ -544,7 +650,6 @@ const TableMap = {
544
650
  sequence: Types.sequence_row,
545
651
  ship: Types.ship_row,
546
652
  state: Types.state_row,
547
- summary: Types.summary_row,
548
653
  };
549
654
  class Contract extends ContractKit.Contract {
550
655
  constructor(args) {
@@ -574,12 +679,22 @@ var server = /*#__PURE__*/Object.freeze({
574
679
  Contract: Contract
575
680
  });
576
681
 
682
+ function getCurrentEpoch(game, state) {
683
+ return tslib.__awaiter(this, void 0, void 0, function* () {
684
+ const current = new Date().getTime();
685
+ const difference = (current - state.genesis.toDate().getTime()) / 1000;
686
+ const epoch = Math.floor(difference / Number(game.config.epochtime)) + 1;
687
+ return epoch;
688
+ });
689
+ }
690
+
577
691
  function hash(seed, string) {
578
692
  const bytes = antelope.Bytes.from(`${seed}${string}`, 'utf8');
579
- return antelope.Checksum512.hash(bytes);
693
+ return antelope.Checksum256.hash(bytes);
580
694
  }
581
- function hashBytes(seed, string) {
582
- return hash(seed, string).array;
695
+ function hash512(seed, string) {
696
+ const bytes = antelope.Bytes.from(`${seed}${string}`, 'utf8');
697
+ return antelope.Checksum512.hash(bytes);
583
698
  }
584
699
 
585
700
  function distanceTraveled(ship) {
@@ -608,7 +723,7 @@ function rotation(origin, destination) {
608
723
  }
609
724
  function hasPlanet(seed, coordinates) {
610
725
  const str = ['system', coordinates.x, coordinates.y].join('-');
611
- return String(hash(seed, str)).slice(0, 2) === '00';
726
+ return String(hash512(seed, str)).slice(0, 2) === '00';
612
727
  }
613
728
  function findNearbyPlanets(seed, origin, maxDistance = 20) {
614
729
  const nearbySystems = [];
@@ -743,8 +858,8 @@ function getGood(good_id) {
743
858
  }
744
859
 
745
860
  function roll(game_seed, roll_seed) {
746
- const byteArray = hashBytes(game_seed, roll_seed);
747
- return (byteArray[0] << 8) | byteArray[1];
861
+ const hash = hash512(game_seed, roll_seed);
862
+ return (hash.array[0] << 8) | hash.array[1];
748
863
  }
749
864
 
750
865
  function marketprice(location, good_id, gameSeed, epochSeed) {
@@ -813,23 +928,43 @@ const INSUFFICIENT_GOOD_QUANTITY = 'Insufficient good quantity';
813
928
  const REQUIRES_MORE_THAN_ONE = 'Requires more than one';
814
929
 
815
930
  class Shipload {
816
- constructor(chain, { client, serverContract }) {
931
+ constructor(chain, { client, platformContract, serverContract }) {
817
932
  this.client = client || new antelope.APIClient({ url: chain.url });
933
+ this.platform = platformContract
934
+ ? platformContract
935
+ : new Contract$1({ client: this.client });
818
936
  this.server = serverContract
819
937
  ? serverContract
820
938
  : new Contract({ client: this.client });
821
939
  }
822
940
  static load(chain, shiploadOptions) {
823
941
  return tslib.__awaiter(this, void 0, void 0, function* () {
942
+ let platform$1 = new Contract$1({
943
+ client: new antelope.APIClient({ url: chain.url }),
944
+ });
945
+ if (shiploadOptions.platformContractName) {
946
+ const client = shiploadOptions.client || new antelope.APIClient({ url: chain.url });
947
+ const contractKit = new ContractKit__default["default"]({ client });
948
+ platform$1 = yield contractKit.load(shiploadOptions.platformContractName);
949
+ }
824
950
  let server$1 = new Contract({
825
951
  client: new antelope.APIClient({ url: chain.url }),
826
952
  });
827
- if (shiploadOptions.contractName) {
953
+ if (shiploadOptions.serverContractName) {
828
954
  const client = shiploadOptions.client || new antelope.APIClient({ url: chain.url });
829
955
  const contractKit = new ContractKit__default["default"]({ client });
830
- server$1 = yield contractKit.load(shiploadOptions.contractName);
956
+ server$1 = yield contractKit.load(shiploadOptions.serverContractName);
957
+ }
958
+ return new Shipload(chain, Object.assign(Object.assign({}, shiploadOptions), { platformContract: platform$1, serverContract: server$1 }));
959
+ });
960
+ }
961
+ getGame() {
962
+ return tslib.__awaiter(this, void 0, void 0, function* () {
963
+ const game = yield this.platform.table('games').get();
964
+ if (!game) {
965
+ throw new Error(ERROR_SYSTEM_NOT_INITIALIZED);
831
966
  }
832
- return new Shipload(chain, Object.assign(Object.assign({}, shiploadOptions), { serverContract: server$1 }));
967
+ return game;
833
968
  });
834
969
  }
835
970
  getState() {
@@ -843,14 +978,16 @@ class Shipload {
843
978
  }
844
979
  marketprice(location, good_id) {
845
980
  return tslib.__awaiter(this, void 0, void 0, function* () {
846
- const { seed, epochseed } = yield this.getState();
847
- return marketprice(location, good_id, seed, epochseed);
981
+ const game = yield this.getGame();
982
+ const state = yield this.getState();
983
+ return marketprice(location, good_id, game.config.seed, state.seed);
848
984
  });
849
985
  }
850
986
  marketprices(location) {
851
987
  return tslib.__awaiter(this, void 0, void 0, function* () {
852
- const { seed, epochseed } = yield this.getState();
853
- return marketprices(location, seed, epochseed);
988
+ const game = yield this.getGame();
989
+ const state = yield this.getState();
990
+ return marketprices(location, game.config.seed, state.seed);
854
991
  });
855
992
  }
856
993
  }
@@ -871,11 +1008,12 @@ exports.distanceBetweenCoordinates = distanceBetweenCoordinates;
871
1008
  exports.distanceBetweenPoints = distanceBetweenPoints;
872
1009
  exports.distanceTraveled = distanceTraveled;
873
1010
  exports.findNearbyPlanets = findNearbyPlanets;
1011
+ exports.getCurrentEpoch = getCurrentEpoch;
874
1012
  exports.getGood = getGood;
875
1013
  exports.goods = goods;
876
1014
  exports.hasPlanet = hasPlanet;
877
1015
  exports.hash = hash;
878
- exports.hashBytes = hashBytes;
1016
+ exports.hash512 = hash512;
879
1017
  exports.lerp = lerp;
880
1018
  exports.marketprice = marketprice;
881
1019
  exports.marketprices = marketprices;