@rosen-bridge/minimum-fee 0.1.13-672ee610 → 1.0.0-1ad09374

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.
@@ -1,8 +1,9 @@
1
1
  import { ErgoBox } from 'ergo-lib-wasm-nodejs';
2
- import { ErgoNetworkType } from './types';
2
+ import { ChainMinimumFee, ErgoNetworkType, Fee } from './types';
3
3
  import ergoExplorerClientFactory from '@rosen-clients/ergo-explorer';
4
4
  import ergoNodeClientFactory from '@rosen-clients/ergo-node';
5
5
  import { AbstractLogger } from '@rosen-bridge/logger-interface';
6
+ import { MinimumFeeBoxBuilder } from './MinimumFeeBoxBuilder';
6
7
  export declare class MinimumFeeBox {
7
8
  protected readonly BOX_FETCHING_PAGE_SIZE = 50;
8
9
  protected logger: AbstractLogger;
@@ -34,5 +35,21 @@ export declare class MinimumFeeBox {
34
35
  * returns fetched config box
35
36
  */
36
37
  getBox: () => ErgoBox;
38
+ /**
39
+ * gets corresponding config for two chains and height
40
+ * @param fromChain
41
+ * @param height blockchain height for fromChain
42
+ * @param toChain
43
+ */
44
+ getFee: (fromChain: string, height: number, toChain: string) => ChainMinimumFee;
45
+ /**
46
+ * extracts Fee config from box registers
47
+ */
48
+ protected extractFeeFromBox: () => Array<Fee>;
49
+ /**
50
+ * generates a MinimumFeeBoxBuilder using current box
51
+ * note that 'height' parameter of builder won't be set
52
+ */
53
+ toBuilder: () => MinimumFeeBoxBuilder;
37
54
  }
38
55
  //# sourceMappingURL=MinimumFeeBox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MinimumFeeBox.d.ts","sourceRoot":"","sources":["../../lib/MinimumFeeBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,yBAAyB,MAAM,8BAA8B,CAAC;AACrE,OAAO,qBAEN,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,cAAc,EAAe,MAAM,gCAAgC,CAAC;AAI7E,qBAAa,aAAa;IACxB,SAAS,CAAC,QAAQ,CAAC,sBAAsB,MAAM;IAC/C,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACvE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;gBAG7D,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,cAAc;IAWzB;;OAEG;IACH,QAAQ,QAAa,QAAQ,IAAI,CAAC,CAGhC;IAEF;;;OAGG;IACH,SAAS,CAAC,iBAAiB,kBAAmB,MAAM,OAAO,CAAC,KAAG,OAAO,CAyBpE;IAEF;;OAEG;IACH,SAAS,CAAC,qBAAqB,QAAa,QAAQ,OAAO,CAAC,CA+C1D;IAEF;;OAEG;IACH,SAAS,CAAC,iBAAiB,QAAa,QAAQ,OAAO,CAAC,CAyDtD;IAEF;;OAEG;IACH,MAAM,QAAO,OAAO,CAAa;CAClC"}
1
+ {"version":3,"file":"MinimumFeeBox.d.ts","sourceRoot":"","sources":["../../lib/MinimumFeeBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAEhE,OAAO,yBAAyB,MAAM,8BAA8B,CAAC;AACrE,OAAO,qBAEN,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,cAAc,EAAe,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAK9D,qBAAa,aAAa;IACxB,SAAS,CAAC,QAAQ,CAAC,sBAAsB,MAAM;IAC/C,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACvE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;gBAG7D,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,cAAc;IAWzB;;OAEG;IACH,QAAQ,QAAa,QAAQ,IAAI,CAAC,CAGhC;IAEF;;;OAGG;IACH,SAAS,CAAC,iBAAiB,kBAAmB,MAAM,OAAO,CAAC,KAAG,OAAO,CAyBpE;IAEF;;OAEG;IACH,SAAS,CAAC,qBAAqB,QAAa,QAAQ,OAAO,CAAC,CA+C1D;IAEF;;OAEG;IACH,SAAS,CAAC,iBAAiB,QAAa,QAAQ,OAAO,CAAC,CAyDtD;IAEF;;OAEG;IACH,MAAM,QAAO,OAAO,CAAa;IAEjC;;;;;OAKG;IACH,MAAM,cACO,MAAM,UACT,MAAM,WACL,MAAM,KACd,eAAe,CA4BhB;IAEF;;OAEG;IACH,SAAS,CAAC,iBAAiB,QAAO,MAAM,GAAG,CAAC,CAuD1C;IAEF;;;OAGG;IACH,SAAS,QAAO,oBAAoB,CAmBlC;CACH"}
@@ -1,11 +1,13 @@
1
1
  import { ErgoBox } from 'ergo-lib-wasm-nodejs';
2
- import { ErgoNetworkType } from './types';
2
+ import { ChainMinimumFee, ErgoNetworkType } from './types';
3
3
  import { FailedError, NotFoundError } from './errors';
4
4
  import ergoExplorerClientFactory from '@rosen-clients/ergo-explorer';
5
5
  import ergoNodeClientFactory from '@rosen-clients/ergo-node';
6
6
  import JsonBigInt from '@rosen-bridge/json-bigint';
7
7
  import handleApiError from './handleApiError';
8
8
  import { DummyLogger } from '@rosen-bridge/logger-interface';
9
+ import { MinimumFeeBoxBuilder } from './MinimumFeeBoxBuilder';
10
+ import { MinimumFeeConfig } from './MinimumFeeConfig';
9
11
  const ERGO_NATIVE_TOKEN = 'erg';
10
12
  export class MinimumFeeBox {
11
13
  BOX_FETCHING_PAGE_SIZE = 50;
@@ -128,5 +130,102 @@ export class MinimumFeeBox {
128
130
  * returns fetched config box
129
131
  */
130
132
  getBox = () => this.box;
133
+ /**
134
+ * gets corresponding config for two chains and height
135
+ * @param fromChain
136
+ * @param height blockchain height for fromChain
137
+ * @param toChain
138
+ */
139
+ getFee = (fromChain, height, toChain) => {
140
+ if (!this.box)
141
+ throw Error(`Box is not fetched yet`);
142
+ const fees = this.extractFeeFromBox().reverse();
143
+ for (const fee of fees) {
144
+ if (!Object.hasOwn(fee.heights, fromChain))
145
+ throw new NotFoundError(`No fee found for chain [${fromChain}] in box [${this.box
146
+ .box_id()
147
+ .to_str()}]`);
148
+ if (fee.heights[fromChain] < height) {
149
+ const chainFee = fee.configs[toChain];
150
+ if (chainFee)
151
+ return new ChainMinimumFee(chainFee);
152
+ else
153
+ throw new Error(`Chain [${toChain}] is not supported at given height of fromChain [${height} of ${fromChain}] in box [${this.box
154
+ .box_id()
155
+ .to_str()}]`);
156
+ }
157
+ }
158
+ throw new NotFoundError(`Config does not support height [${height}] for chain [${fromChain}] in box [${this.box
159
+ .box_id()
160
+ .to_str()}]`);
161
+ };
162
+ /**
163
+ * extracts Fee config from box registers
164
+ */
165
+ extractFeeFromBox = () => {
166
+ const R4 = this.box.register_value(4);
167
+ const R5 = this.box.register_value(5);
168
+ const R6 = this.box.register_value(6);
169
+ const R7 = this.box.register_value(7);
170
+ const R8 = this.box.register_value(8);
171
+ const R9 = this.box.register_value(9);
172
+ if (!R4 || !R5 || !R6 || !R7 || !R8 || !R9)
173
+ throw Error(`Incomplete register data for minimum-fee config box [${this.box
174
+ .box_id()
175
+ .to_str()}]`);
176
+ const fees = [];
177
+ const chains = R4.to_coll_coll_byte().map((element) => Buffer.from(element).toString());
178
+ const heights = R5.to_js();
179
+ const bridgeFees = R6.to_js();
180
+ const networkFees = R7.to_js();
181
+ const rsnRatios = R8.to_js();
182
+ const feeRatios = R9.to_js();
183
+ for (let feeIdx = 0; feeIdx < heights.length; feeIdx++) {
184
+ const fee = {
185
+ heights: {},
186
+ configs: {},
187
+ };
188
+ for (let chainIdx = 0; chainIdx < chains.length; chainIdx++) {
189
+ const chain = chains[chainIdx];
190
+ if (heights[feeIdx][chainIdx] === -1)
191
+ continue;
192
+ fee.heights[chain] = heights[feeIdx][chainIdx];
193
+ if (bridgeFees[feeIdx][chainIdx] === '-1')
194
+ continue;
195
+ fee.configs[chain] = {
196
+ bridgeFee: BigInt(bridgeFees[feeIdx][chainIdx]),
197
+ networkFee: BigInt(networkFees[feeIdx][chainIdx]),
198
+ rsnRatio: BigInt(rsnRatios[feeIdx][chainIdx][0]),
199
+ rsnRatioDivisor: BigInt(rsnRatios[feeIdx][chainIdx][1]),
200
+ feeRatio: BigInt(feeRatios[feeIdx][chainIdx]),
201
+ };
202
+ }
203
+ fees.push(fee);
204
+ }
205
+ this.logger.debug(`Extracted fee config from box [${this.box
206
+ .box_id()
207
+ .to_str()}]: ${JsonBigInt.stringify(fees)}`);
208
+ return fees;
209
+ };
210
+ /**
211
+ * generates a MinimumFeeBoxBuilder using current box
212
+ * note that 'height' parameter of builder won't be set
213
+ */
214
+ toBuilder = () => {
215
+ const builder = new MinimumFeeBoxBuilder(this.minimumFeeNFT, this.address)
216
+ .setValue(BigInt(this.box.value().as_i64().to_str()))
217
+ .setToken(this.tokenId);
218
+ this.extractFeeFromBox().forEach((fee) => {
219
+ const chainFee = new MinimumFeeConfig();
220
+ Object.keys(fee.heights).forEach((chain) => {
221
+ if (Object.hasOwn(fee.configs, chain))
222
+ chainFee.setChainConfig(chain, fee.heights[chain], fee.configs[chain]);
223
+ else
224
+ chainFee.setChainConfig(chain, fee.heights[chain], undefined);
225
+ });
226
+ builder.addConfig(chainFee);
227
+ });
228
+ return builder;
229
+ };
131
230
  }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluaW11bUZlZUJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9NaW5pbXVtRmVlQm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RELE9BQU8seUJBQXlCLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxxQkFFTixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFN0UsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7QUFFaEMsTUFBTSxPQUFPLGFBQWE7SUFDTCxzQkFBc0IsR0FBRyxFQUFFLENBQUM7SUFDckMsTUFBTSxDQUFpQjtJQUN2QixHQUFHLENBQVU7SUFDYixPQUFPLENBQVM7SUFDaEIsYUFBYSxDQUFTO0lBQ3RCLE9BQU8sQ0FBUztJQUNoQixjQUFjLENBQStDO0lBQzdELFVBQVUsQ0FBMkM7SUFFL0QsWUFDRSxPQUFlLEVBQ2YsYUFBcUIsRUFDckIsT0FBZSxFQUNmLFdBQTRCLEVBQzVCLFVBQWtCLEVBQ2xCLE1BQXVCO1FBRXZCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksV0FBVyxLQUFLLGVBQWUsQ0FBQyxRQUFRO1lBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUM7O1lB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QUssRUFBRSxJQUFJLENBQUMsc0JBQXNCO2lCQUNuQyxDQUNGLENBQUM7YUFDSDtTQUNGO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLFNBQVMsR0FBRyxpREFBaUQsQ0FBQztZQUNwRSxjQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFDL0Isb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDOUIsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHO3dCQUFFLE9BQU87b0JBQzFDLE1BQU0sSUFBSSxXQUFXLENBQ25CLEdBQUcsU0FBUyxLQUFLLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUN4RSxDQUFDO2dCQUNKLENBQUM7YUFDRixDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxHQUFHLEdBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Q0FDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcmdvQm94IH0gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgRXJnb05ldHdvcmtUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGYWlsZWRFcnJvciwgTm90Rm91bmRFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuaW1wb3J0IGVyZ29Ob2RlQ2xpZW50RmFjdG9yeSwge1xuICBJbmRleGVkRXJnb0JveCxcbn0gZnJvbSAnQHJvc2VuLWNsaWVudHMvZXJnby1ub2RlJztcbmltcG9ydCBKc29uQmlnSW50IGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuaW1wb3J0IGhhbmRsZUFwaUVycm9yIGZyb20gJy4vaGFuZGxlQXBpRXJyb3InO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9sb2dnZXItaW50ZXJmYWNlJztcblxuY29uc3QgRVJHT19OQVRJVkVfVE9LRU4gPSAnZXJnJztcblxuZXhwb3J0IGNsYXNzIE1pbmltdW1GZWVCb3gge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgQk9YX0ZFVENISU5HX1BBR0VfU0laRSA9IDUwO1xuICBwcm90ZWN0ZWQgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcbiAgcHJvdGVjdGVkIGJveDogRXJnb0JveDtcbiAgcHJvdGVjdGVkIHRva2VuSWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIG1pbmltdW1GZWVORlQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIGFkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIGV4cGxvcmVyQ2xpZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5PjtcbiAgcHJvdGVjdGVkIG5vZGVDbGllbnQ6IFJldHVyblR5cGU8dHlwZW9mIGVyZ29Ob2RlQ2xpZW50RmFjdG9yeT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdG9rZW5JZDogc3RyaW5nLFxuICAgIG1pbmltdW1GZWVORlQ6IHN0cmluZyxcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgbmV0d29ya1R5cGU6IEVyZ29OZXR3b3JrVHlwZSxcbiAgICBuZXR3b3JrVXJsOiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXJcbiAgKSB7XG4gICAgdGhpcy50b2tlbklkID0gdG9rZW5JZDtcbiAgICB0aGlzLm1pbmltdW1GZWVORlQgPSBtaW5pbXVtRmVlTkZUO1xuICAgIHRoaXMuYWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgaWYgKG5ldHdvcmtUeXBlID09PSBFcmdvTmV0d29ya1R5cGUuZXhwbG9yZXIpXG4gICAgICB0aGlzLmV4cGxvcmVyQ2xpZW50ID0gZXJnb0V4cGxvcmVyQ2xpZW50RmFjdG9yeShuZXR3b3JrVXJsKTtcbiAgICBlbHNlIHRoaXMubm9kZUNsaWVudCA9IGVyZ29Ob2RlQ2xpZW50RmFjdG9yeShuZXR3b3JrVXJsKTtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/IGxvZ2dlciA6IG5ldyBEdW1teUxvZ2dlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIGZldGNoZXMgdGhlIGJveCBmcm9tIHRoZSBibG9ja2NoYWluXG4gICAqL1xuICBmZXRjaEJveCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBpZiAodGhpcy5leHBsb3JlckNsaWVudCkgdGhpcy5ib3ggPSBhd2FpdCB0aGlzLmZldGNoQm94VXNpbmdFeHBsb3JlcigpO1xuICAgIGVsc2UgdGhpcy5ib3ggPSBhd2FpdCB0aGlzLmZldGNoQm94VXNpbmdOb2RlKCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJldHVybnMgZmV0Y2hlZCBib3ggb3IgdGhyb3dzIGFwcHJvcHJpdGUgZXJyb3IgaWYgZm91bmQgbW9yZSBvciBub25lXG4gICAqIEBwYXJhbSBlbGlnaWJsZUJveGVzXG4gICAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0RWxpZ2libGVCb3ggPSAoZWxpZ2libGVCb3hlczogQXJyYXk8RXJnb0JveD4pOiBFcmdvQm94ID0+IHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBGb3VuZCBbJHtcbiAgICAgICAgZWxpZ2libGVCb3hlcy5sZW5ndGhcbiAgICAgIH1dIG1pbmltdW0tZmVlIGJveGVzOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KFxuICAgICAgICBlbGlnaWJsZUJveGVzLm1hcCgoYm94KSA9PiBib3gudG9fanNvbigpKVxuICAgICAgKX1gXG4gICAgKTtcblxuICAgIGlmIChlbGlnaWJsZUJveGVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgICBgRm91bmQgbm8gbWluaW11bS1mZWUgYm94IGZvciB0b2tlbiBbJHt0aGlzLnRva2VuSWR9XSBhbmQgYWRkcmVzcyBbJHt0aGlzLmFkZHJlc3N9XWBcbiAgICAgICk7XG4gICAgZWxzZSBpZiAoZWxpZ2libGVCb3hlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgbmV3IEZhaWxlZEVycm9yKFxuICAgICAgICBgRm91bmQgWyR7ZWxpZ2libGVCb3hlcy5sZW5ndGh9XSBtaW5pbXVtLWZlZSBib3hlcyBmb3IgdG9rZW4gWyR7dGhpcy50b2tlbklkfV0gYW5kIGFkZHJlc3MgWyR7dGhpcy5hZGRyZXNzfV1gXG4gICAgICApO1xuICAgIGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBGb3VuZCBtaW5pbXVtLWZlZSBib3ggWyR7ZWxpZ2libGVCb3hlc1swXVxuICAgICAgICAgIC5ib3hfaWQoKVxuICAgICAgICAgIC50b19zdHIoKX1dIGZvciB0b2tlbiBbJHt0aGlzLnRva2VuSWR9XSBhbmQgYWRkcmVzcyBbJHt0aGlzLmFkZHJlc3N9XWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZWxpZ2libGVCb3hlc1swXTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIGZldGNoZXMgYm94IGZyb20gdGhlIGJsb2NrY2hhaW4gdXNpbmcgZXhwbG9yZXIgY2xpZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgZmV0Y2hCb3hVc2luZ0V4cGxvcmVyID0gYXN5bmMgKCk6IFByb21pc2U8RXJnb0JveD4gPT4ge1xuICAgIGNvbnN0IGVsaWdpYmxlQm94ZXM6IEFycmF5PEVyZ29Cb3g+ID0gW107XG4gICAgdHJ5IHtcbiAgICAgIGxldCBjdXJyZW50UGFnZSA9IDA7XG4gICAgICBsZXQgYm94ZXNQYWdlID1cbiAgICAgICAgYXdhaXQgdGhpcy5leHBsb3JlckNsaWVudC52MS5nZXRBcGlWMUJveGVzVW5zcGVudEJ5dG9rZW5pZFAxKFxuICAgICAgICAgIHRoaXMubWluaW11bUZlZU5GVCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvZmZzZXQ6IGN1cnJlbnRQYWdlICogdGhpcy5CT1hfRkVUQ0hJTkdfUEFHRV9TSVpFLFxuICAgICAgICAgICAgbGltaXQ6IHRoaXMuQk9YX0ZFVENISU5HX1BBR0VfU0laRSxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB3aGlsZSAoYm94ZXNQYWdlLml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYHJlcXVlc3RlZCAnZXhwbG9yZXJDbGllbnQuZ2V0QXBpVjFCb3hlc1Vuc3BlbnRCeXRva2VuaWRQMScgZm9yIHRva2VuIFske1xuICAgICAgICAgICAgdGhpcy5taW5pbXVtRmVlTkZUXG4gICAgICAgICAgfV0uIHJlczogJHtKc29uQmlnSW50LnN0cmluZ2lmeShib3hlc1BhZ2UpfWBcbiAgICAgICAgKTtcblxuICAgICAgICBlbGlnaWJsZUJveGVzLnB1c2goXG4gICAgICAgICAgLi4uYm94ZXNQYWdlLml0ZW1zXG4gICAgICAgICAgICAuZmlsdGVyKChib3gpID0+XG4gICAgICAgICAgICAgIGJveC5hZGRyZXNzID09PSB0aGlzLmFkZHJlc3MgJiYgdGhpcy50b2tlbklkID09PSBFUkdPX05BVElWRV9UT0tFTlxuICAgICAgICAgICAgICAgID8gYm94LmFzc2V0cz8ubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgICAgOiBib3guYXNzZXRzPy5sZW5ndGggPT09IDIgJiZcbiAgICAgICAgICAgICAgICAgIGJveC5hc3NldHM/LnNvbWUoKGFzc2V0KSA9PiBhc3NldC50b2tlbklkID09PSB0aGlzLnRva2VuSWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAubWFwKChib3g6IGFueSkgPT4gRXJnb0JveC5mcm9tX2pzb24oSnNvbkJpZ0ludC5zdHJpbmdpZnkoYm94KSkpXG4gICAgICAgICk7XG4gICAgICAgIGN1cnJlbnRQYWdlKys7XG4gICAgICAgIGJveGVzUGFnZSA9XG4gICAgICAgICAgYXdhaXQgdGhpcy5leHBsb3JlckNsaWVudC52MS5nZXRBcGlWMUJveGVzVW5zcGVudEJ5dG9rZW5pZFAxKFxuICAgICAgICAgICAgdGhpcy5taW5pbXVtRmVlTkZULFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvZmZzZXQ6IGN1cnJlbnRQYWdlICogdGhpcy5CT1hfRkVUQ0hJTkdfUEFHRV9TSVpFLFxuICAgICAgICAgICAgICBsaW1pdDogdGhpcy5CT1hfRkVUQ0hJTkdfUEFHRV9TSVpFLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBoYW5kbGVBcGlFcnJvcihcbiAgICAgICAgZXJyb3IsXG4gICAgICAgICdGYWlsZWQgdG8gZ2V0IGJveGVzIGJ5IHRva2VuIGlkIGZyb20gRXJnbyBFeHBsb3JlcjonXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNlbGVjdEVsaWdpYmxlQm94KGVsaWdpYmxlQm94ZXMpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmZXRjaGVzIHRoZSBib3ggZnJvbSB0aGUgYmxvY2tjaGFpbiB1c2luZyBub2RlIGNsaWVudFxuICAgKi9cbiAgcHJvdGVjdGVkIGZldGNoQm94VXNpbmdOb2RlID0gYXN5bmMgKCk6IFByb21pc2U8RXJnb0JveD4gPT4ge1xuICAgIGNvbnN0IGVsaWdpYmxlQm94ZXM6IEFycmF5PEVyZ29Cb3g+ID0gW107XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJveEhhc0NvbmZpZ1Rva2VuID0gKGJveDogSW5kZXhlZEVyZ29Cb3gpID0+XG4gICAgICAgIGJveC5hc3NldHM/LnNvbWUoKGFzc2V0KSA9PiBhc3NldC50b2tlbklkID09PSB0aGlzLm1pbmltdW1GZWVORlQpO1xuICAgICAgY29uc3QgYm94SGFzQXBwcm9wcmlhdGVUb2tlbiA9IChib3g6IEluZGV4ZWRFcmdvQm94KSA9PlxuICAgICAgICB0aGlzLnRva2VuSWQgPT09IEVSR09fTkFUSVZFX1RPS0VOXG4gICAgICAgICAgPyBib3guYXNzZXRzPy5sZW5ndGggPT09IDFcbiAgICAgICAgICA6IGJveC5hc3NldHM/Lmxlbmd0aCA9PT0gMiAmJlxuICAgICAgICAgICAgYm94LmFzc2V0cz8uc29tZSgoYXNzZXQpID0+IGFzc2V0LnRva2VuSWQgPT09IHRoaXMudG9rZW5JZCk7XG5cbiAgICAgIGxldCBjdXJyZW50UGFnZSA9IDA7XG4gICAgICBsZXQgYm94ZXNQYWdlID0gYXdhaXQgdGhpcy5ub2RlQ2xpZW50LmdldEJveGVzQnlBZGRyZXNzVW5zcGVudChcbiAgICAgICAgdGhpcy5hZGRyZXNzLFxuICAgICAgICB7XG4gICAgICAgICAgb2Zmc2V0OiBjdXJyZW50UGFnZSAqIHRoaXMuQk9YX0ZFVENISU5HX1BBR0VfU0laRSxcbiAgICAgICAgICBsaW1pdDogdGhpcy5CT1hfRkVUQ0hJTkdfUEFHRV9TSVpFLFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgd2hpbGUgKGJveGVzUGFnZS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYHJlcXVlc3RlZCAnbm9kZUNsaWVudC5nZXRCb3hlc0J5QWRkcmVzc1Vuc3BlbnQnIGZvciB0b2tlbiBbJHtcbiAgICAgICAgICAgIHRoaXMubWluaW11bUZlZU5GVFxuICAgICAgICAgIH1dLiByZXM6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoYm94ZXNQYWdlKX1gXG4gICAgICAgICk7XG5cbiAgICAgICAgZWxpZ2libGVCb3hlcy5wdXNoKFxuICAgICAgICAgIC4uLmJveGVzUGFnZVxuICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgKGJveCkgPT4gYm94SGFzQ29uZmlnVG9rZW4oYm94KSAmJiBib3hIYXNBcHByb3ByaWF0ZVRva2VuKGJveClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKGJveDogSW5kZXhlZEVyZ29Cb3gpID0+XG4gICAgICAgICAgICAgIEVyZ29Cb3guZnJvbV9qc29uKEpzb25CaWdJbnQuc3RyaW5naWZ5KGJveCkpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIGN1cnJlbnRQYWdlKys7XG4gICAgICAgIGJveGVzUGFnZSA9IGF3YWl0IHRoaXMubm9kZUNsaWVudC5nZXRCb3hlc0J5QWRkcmVzc1Vuc3BlbnQoXG4gICAgICAgICAgdGhpcy5hZGRyZXNzLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9mZnNldDogY3VycmVudFBhZ2UgKiB0aGlzLkJPWF9GRVRDSElOR19QQUdFX1NJWkUsXG4gICAgICAgICAgICBsaW1pdDogdGhpcy5CT1hfRkVUQ0hJTkdfUEFHRV9TSVpFLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgYmFzZUVycm9yID0gJ0ZhaWxlZCB0byBnZXQgYm94ZXMgYnkgdG9rZW4gaWQgZnJvbSBFcmdvIE5vZGU6JztcbiAgICAgIGhhbmRsZUFwaUVycm9yKGVycm9yLCBiYXNlRXJyb3IsIHtcbiAgICAgICAgaGFuZGxlUmVzcG9uZGVkU3RhdGU6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGlmIChlcnJvci5yZXNwb25zZS5zdGF0dXMgPT09IDQwMCkgcmV0dXJuO1xuICAgICAgICAgIHRocm93IG5ldyBGYWlsZWRFcnJvcihcbiAgICAgICAgICAgIGAke2Jhc2VFcnJvcn0gWyR7ZXJyb3IucmVzcG9uc2Uuc3RhdHVzfV0gJHtlcnJvci5yZXNwb25zZS5kYXRhLnJlYXNvbn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNlbGVjdEVsaWdpYmxlQm94KGVsaWdpYmxlQm94ZXMpO1xuICB9O1xuXG4gIC8qKlxuICAgKiByZXR1cm5zIGZldGNoZWQgY29uZmlnIGJveFxuICAgKi9cbiAgZ2V0Qm94ID0gKCk6IEVyZ29Cb3ggPT4gdGhpcy5ib3g7XG59XG4iXX0=
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluaW11bUZlZUJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9NaW5pbXVtRmVlQm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBTyxNQUFNLFNBQVMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RCxPQUFPLHlCQUF5QixNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8scUJBRU4sTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRELE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxhQUFhO0lBQ0wsc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sQ0FBaUI7SUFDdkIsR0FBRyxDQUFVO0lBQ2IsT0FBTyxDQUFTO0lBQ2hCLGFBQWEsQ0FBUztJQUN0QixPQUFPLENBQVM7SUFDaEIsY0FBYyxDQUErQztJQUM3RCxVQUFVLENBQTJDO0lBRS9ELFlBQ0UsT0FBZSxFQUNmLGFBQXFCLEVBQ3JCLE9BQWUsRUFDZixXQUE0QixFQUM1QixVQUFrQixFQUNsQixNQUF1QjtRQUV2QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9B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b0JveCB9IGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCB7IENoYWluTWluaW11bUZlZSwgRXJnb05ldHdvcmtUeXBlLCBGZWUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEZhaWxlZEVycm9yLCBOb3RGb3VuZEVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnkgZnJvbSAnQHJvc2VuLWNsaWVudHMvZXJnby1leHBsb3Jlcic7XG5pbXBvcnQgZXJnb05vZGVDbGllbnRGYWN0b3J5LCB7XG4gIEluZGV4ZWRFcmdvQm94LFxufSBmcm9tICdAcm9zZW4tY2xpZW50cy9lcmdvLW5vZGUnO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgaGFuZGxlQXBpRXJyb3IgZnJvbSAnLi9oYW5kbGVBcGlFcnJvcic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2xvZ2dlci1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWluaW11bUZlZUJveEJ1aWxkZXIgfSBmcm9tICcuL01pbmltdW1GZWVCb3hCdWlsZGVyJztcbmltcG9ydCB7IE1pbmltdW1GZWVDb25maWcgfSBmcm9tICcuL01pbmltdW1GZWVDb25maWcnO1xuXG5jb25zdCBFUkdPX05BVElWRV9UT0tFTiA9ICdlcmcnO1xuXG5leHBvcnQgY2xhc3MgTWluaW11bUZlZUJveCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBCT1hfRkVUQ0hJTkdfUEFHRV9TSVpFID0gNTA7XG4gIHByb3RlY3RlZCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcm90ZWN0ZWQgYm94OiBFcmdvQm94O1xuICBwcm90ZWN0ZWQgdG9rZW5JZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgbWluaW11bUZlZU5GVDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgZXhwbG9yZXJDbGllbnQ6IFJldHVyblR5cGU8dHlwZW9mIGVyZ29FeHBsb3JlckNsaWVudEZhY3Rvcnk+O1xuICBwcm90ZWN0ZWQgbm9kZUNsaWVudDogUmV0dXJuVHlwZTx0eXBlb2YgZXJnb05vZGVDbGllbnRGYWN0b3J5PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0b2tlbklkOiBzdHJpbmcsXG4gICAgbWluaW11bUZlZU5GVDogc3RyaW5nLFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBuZXR3b3JrVHlwZTogRXJnb05ldHdvcmtUeXBlLFxuICAgIG5ldHdvcmtVcmw6IHN0cmluZyxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlclxuICApIHtcbiAgICB0aGlzLnRva2VuSWQgPSB0b2tlbklkO1xuICAgIHRoaXMubWluaW11bUZlZU5GVCA9IG1pbmltdW1GZWVORlQ7XG4gICAgdGhpcy5hZGRyZXNzID0gYWRkcmVzcztcbiAgICBpZiAobmV0d29ya1R5cGUgPT09IEVyZ29OZXR3b3JrVHlwZS5leHBsb3JlcilcbiAgICAgIHRoaXMuZXhwbG9yZXJDbGllbnQgPSBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5KG5ldHdvcmtVcmwpO1xuICAgIGVsc2UgdGhpcy5ub2RlQ2xpZW50ID0gZXJnb05vZGVDbGllbnRGYWN0b3J5KG5ldHdvcmtVcmwpO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogZmV0Y2hlcyB0aGUgYm94IGZyb20gdGhlIGJsb2NrY2hhaW5cbiAgICovXG4gIGZldGNoQm94ID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGlmICh0aGlzLmV4cGxvcmVyQ2xpZW50KSB0aGlzLmJveCA9IGF3YWl0IHRoaXMuZmV0Y2hCb3hVc2luZ0V4cGxvcmVyKCk7XG4gICAgZWxzZSB0aGlzLmJveCA9IGF3YWl0IHRoaXMuZmV0Y2hCb3hVc2luZ05vZGUoKTtcbiAgfTtcblxuICAvKipcbiAgICogcmV0dXJucyBmZXRjaGVkIGJveCBvciB0aHJvd3MgYXBwcm9wcml0ZSBlcnJvciBpZiBmb3VuZCBtb3JlIG9yIG5vbmVcbiAgICogQHBhcmFtIGVsaWdpYmxlQm94ZXNcbiAgICovXG4gIHByb3RlY3RlZCBzZWxlY3RFbGlnaWJsZUJveCA9IChlbGlnaWJsZUJveGVzOiBBcnJheTxFcmdvQm94Pik6IEVyZ29Cb3ggPT4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYEZvdW5kIFske1xuICAgICAgICBlbGlnaWJsZUJveGVzLmxlbmd0aFxuICAgICAgfV0gbWluaW11bS1mZWUgYm94ZXM6ICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoXG4gICAgICAgIGVsaWdpYmxlQm94ZXMubWFwKChib3gpID0+IGJveC50b19qc29uKCkpXG4gICAgICApfWBcbiAgICApO1xuXG4gICAgaWYgKGVsaWdpYmxlQm94ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXG4gICAgICAgIGBGb3VuZCBubyBtaW5pbXVtLWZlZSBib3ggZm9yIHRva2VuIFske3RoaXMudG9rZW5JZH1dIGFuZCBhZGRyZXNzIFske3RoaXMuYWRkcmVzc31dYFxuICAgICAgKTtcbiAgICBlbHNlIGlmIChlbGlnaWJsZUJveGVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBuZXcgRmFpbGVkRXJyb3IoXG4gICAgICAgIGBGb3VuZCBbJHtlbGlnaWJsZUJveGVzLmxlbmd0aH1dIG1pbmltdW0tZmVlIGJveGVzIGZvciB0b2tlbiBbJHt0aGlzLnRva2VuSWR9XSBhbmQgYWRkcmVzcyBbJHt0aGlzLmFkZHJlc3N9XWBcbiAgICAgICk7XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEZvdW5kIG1pbmltdW0tZmVlIGJveCBbJHtlbGlnaWJsZUJveGVzWzBdXG4gICAgICAgICAgLmJveF9pZCgpXG4gICAgICAgICAgLnRvX3N0cigpfV0gZm9yIHRva2VuIFske3RoaXMudG9rZW5JZH1dIGFuZCBhZGRyZXNzIFske3RoaXMuYWRkcmVzc31dYFxuICAgICAgKTtcbiAgICAgIHJldHVybiBlbGlnaWJsZUJveGVzWzBdO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogZmV0Y2hlcyBib3ggZnJvbSB0aGUgYmxvY2tjaGFpbiB1c2luZyBleHBsb3JlciBjbGllbnRcbiAgICovXG4gIHByb3RlY3RlZCBmZXRjaEJveFVzaW5nRXhwbG9yZXIgPSBhc3luYyAoKTogUHJvbWlzZTxFcmdvQm94PiA9PiB7XG4gICAgY29uc3QgZWxpZ2libGVCb3hlczogQXJyYXk8RXJnb0JveD4gPSBbXTtcbiAgICB0cnkge1xuICAgICAgbGV0IGN1cnJlbnRQYWdlID0gMDtcbiAgICAgIGxldCBib3hlc1BhZ2UgPVxuICAgICAgICBhd2FpdCB0aGlzLmV4cGxvcmVyQ2xpZW50LnYxLmdldEFwaVYxQm94ZXNVbnNwZW50Qnl0b2tlbmlkUDEoXG4gICAgICAgICAgdGhpcy5taW5pbXVtRmVlTkZULFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9mZnNldDogY3VycmVudFBhZ2UgKiB0aGlzLkJPWF9GRVRDSElOR19QQUdFX1NJWkUsXG4gICAgICAgICAgICBsaW1pdDogdGhpcy5CT1hfRkVUQ0hJTkdfUEFHRV9TSVpFLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIHdoaWxlIChib3hlc1BhZ2UuaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgcmVxdWVzdGVkICdleHBsb3JlckNsaWVudC5nZXRBcGlWMUJveGVzVW5zcGVudEJ5dG9rZW5pZFAxJyBmb3IgdG9rZW4gWyR7XG4gICAgICAgICAgICB0aGlzLm1pbmltdW1GZWVORlRcbiAgICAgICAgICB9XS4gcmVzOiAke0pzb25CaWdJbnQuc3RyaW5naWZ5KGJveGVzUGFnZSl9YFxuICAgICAgICApO1xuXG4gICAgICAgIGVsaWdpYmxlQm94ZXMucHVzaChcbiAgICAgICAgICAuLi5ib3hlc1BhZ2UuaXRlbXNcbiAgICAgICAgICAgIC5maWx0ZXIoKGJveCkgPT5cbiAgICAgICAgICAgICAgYm94LmFkZHJlc3MgPT09IHRoaXMuYWRkcmVzcyAmJiB0aGlzLnRva2VuSWQgPT09IEVSR09fTkFUSVZFX1RPS0VOXG4gICAgICAgICAgICAgICAgPyBib3guYXNzZXRzPy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICA6IGJveC5hc3NldHM/Lmxlbmd0aCA9PT0gMiAmJlxuICAgICAgICAgICAgICAgICAgYm94LmFzc2V0cz8uc29tZSgoYXNzZXQpID0+IGFzc2V0LnRva2VuSWQgPT09IHRoaXMudG9rZW5JZClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKGJveDogYW55KSA9PiBFcmdvQm94LmZyb21fanNvbihKc29uQmlnSW50LnN0cmluZ2lmeShib3gpKSlcbiAgICAgICAgKTtcbiAgICAgICAgY3VycmVudFBhZ2UrKztcbiAgICAgICAgYm94ZXNQYWdlID1cbiAgICAgICAgICBhd2FpdCB0aGlzLmV4cGxvcmVyQ2xpZW50LnYxLmdldEFwaVYxQm94ZXNVbnNwZW50Qnl0b2tlbmlkUDEoXG4gICAgICAgICAgICB0aGlzLm1pbmltdW1GZWVORlQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9mZnNldDogY3VycmVudFBhZ2UgKiB0aGlzLkJPWF9GRVRDSElOR19QQUdFX1NJWkUsXG4gICAgICAgICAgICAgIGxpbWl0OiB0aGlzLkJPWF9GRVRDSElOR19QQUdFX1NJWkUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGhhbmRsZUFwaUVycm9yKFxuICAgICAgICBlcnJvcixcbiAgICAgICAgJ0ZhaWxlZCB0byBnZXQgYm94ZXMgYnkgdG9rZW4gaWQgZnJvbSBFcmdvIEV4cGxvcmVyOidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0RWxpZ2libGVCb3goZWxpZ2libGVCb3hlcyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGZldGNoZXMgdGhlIGJveCBmcm9tIHRoZSBibG9ja2NoYWluIHVzaW5nIG5vZGUgY2xpZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgZmV0Y2hCb3hVc2luZ05vZGUgPSBhc3luYyAoKTogUHJvbWlzZTxFcmdvQm94PiA9PiB7XG4gICAgY29uc3QgZWxpZ2libGVCb3hlczogQXJyYXk8RXJnb0JveD4gPSBbXTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm94SGFzQ29uZmlnVG9rZW4gPSAoYm94OiBJbmRleGVkRXJnb0JveCkgPT5cbiAgICAgICAgYm94LmFzc2V0cz8uc29tZSgoYXNzZXQpID0+IGFzc2V0LnRva2VuSWQgPT09IHRoaXMubWluaW11bUZlZU5GVCk7XG4gICAgICBjb25zdCBib3hIYXNBcHByb3ByaWF0ZVRva2VuID0gKGJveDogSW5kZXhlZEVyZ29Cb3gpID0+XG4gICAgICAgIHRoaXMudG9rZW5JZCA9PT0gRVJHT19OQVRJVkVfVE9LRU5cbiAgICAgICAgICA/IGJveC5hc3NldHM/Lmxlbmd0aCA9PT0gMVxuICAgICAgICAgIDogYm94LmFzc2V0cz8ubGVuZ3RoID09PSAyICYmXG4gICAgICAgICAgICBib3guYXNzZXRzPy5zb21lKChhc3NldCkgPT4gYXNzZXQudG9rZW5JZCA9PT0gdGhpcy50b2tlbklkKTtcblxuICAgICAgbGV0IGN1cnJlbnRQYWdlID0gMDtcbiAgICAgIGxldCBib3hlc1BhZ2UgPSBhd2FpdCB0aGlzLm5vZGVDbGllbnQuZ2V0Qm94ZXNCeUFkZHJlc3NVbnNwZW50KFxuICAgICAgICB0aGlzLmFkZHJlc3MsXG4gICAgICAgIHtcbiAgICAgICAgICBvZmZzZXQ6IGN1cnJlbnRQYWdlICogdGhpcy5CT1hfRkVUQ0hJTkdfUEFHRV9TSVpFLFxuICAgICAgICAgIGxpbWl0OiB0aGlzLkJPWF9GRVRDSElOR19QQUdFX1NJWkUsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB3aGlsZSAoYm94ZXNQYWdlLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgcmVxdWVzdGVkICdub2RlQ2xpZW50LmdldEJveGVzQnlBZGRyZXNzVW5zcGVudCcgZm9yIHRva2VuIFske1xuICAgICAgICAgICAgdGhpcy5taW5pbXVtRmVlTkZUXG4gICAgICAgICAgfV0uIHJlczogJHtKc29uQmlnSW50LnN0cmluZ2lmeShib3hlc1BhZ2UpfWBcbiAgICAgICAgKTtcblxuICAgICAgICBlbGlnaWJsZUJveGVzLnB1c2goXG4gICAgICAgICAgLi4uYm94ZXNQYWdlXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAoYm94KSA9PiBib3hIYXNDb25maWdUb2tlbihib3gpICYmIGJveEhhc0FwcHJvcHJpYXRlVG9rZW4oYm94KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLm1hcCgoYm94OiBJbmRleGVkRXJnb0JveCkgPT5cbiAgICAgICAgICAgICAgRXJnb0JveC5mcm9tX2pzb24oSnNvbkJpZ0ludC5zdHJpbmdpZnkoYm94KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgY3VycmVudFBhZ2UrKztcbiAgICAgICAgYm94ZXNQYWdlID0gYXdhaXQgdGhpcy5ub2RlQ2xpZW50LmdldEJveGVzQnlBZGRyZXNzVW5zcGVudChcbiAgICAgICAgICB0aGlzLmFkZHJlc3MsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb2Zmc2V0OiBjdXJyZW50UGFnZSAqIHRoaXMuQk9YX0ZFVENISU5HX1BBR0VfU0laRSxcbiAgICAgICAgICAgIGxpbWl0OiB0aGlzLkJPWF9GRVRDSElOR19QQUdFX1NJWkUsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBiYXNlRXJyb3IgPSAnRmFpbGVkIHRvIGdldCBib3hlcyBieSB0b2tlbiBpZCBmcm9tIEVyZ28gTm9kZTonO1xuICAgICAgaGFuZGxlQXBpRXJyb3IoZXJyb3IsIGJhc2VFcnJvciwge1xuICAgICAgICBoYW5kbGVSZXNwb25kZWRTdGF0ZTogKGVycm9yKSA9PiB7XG4gICAgICAgICAgaWYgKGVycm9yLnJlc3BvbnNlLnN0YXR1cyA9PT0gNDAwKSByZXR1cm47XG4gICAgICAgICAgdGhyb3cgbmV3IEZhaWxlZEVycm9yKFxuICAgICAgICAgICAgYCR7YmFzZUVycm9yfSBbJHtlcnJvci5yZXNwb25zZS5zdGF0dXN9XSAke2Vycm9yLnJlc3BvbnNlLmRhdGEucmVhc29ufWBcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0RWxpZ2libGVCb3goZWxpZ2libGVCb3hlcyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJldHVybnMgZmV0Y2hlZCBjb25maWcgYm94XG4gICAqL1xuICBnZXRCb3ggPSAoKTogRXJnb0JveCA9PiB0aGlzLmJveDtcblxuICAvKipcbiAgICogZ2V0cyBjb3JyZXNwb25kaW5nIGNvbmZpZyBmb3IgdHdvIGNoYWlucyBhbmQgaGVpZ2h0XG4gICAqIEBwYXJhbSBmcm9tQ2hhaW5cbiAgICogQHBhcmFtIGhlaWdodCBibG9ja2NoYWluIGhlaWdodCBmb3IgZnJvbUNoYWluXG4gICAqIEBwYXJhbSB0b0NoYWluXG4gICAqL1xuICBnZXRGZWUgPSAoXG4gICAgZnJvbUNoYWluOiBzdHJpbmcsXG4gICAgaGVpZ2h0OiBudW1iZXIsXG4gICAgdG9DaGFpbjogc3RyaW5nXG4gICk6IENoYWluTWluaW11bUZlZSA9PiB7XG4gICAgaWYgKCF0aGlzLmJveCkgdGhyb3cgRXJyb3IoYEJveCBpcyBub3QgZmV0Y2hlZCB5ZXRgKTtcblxuICAgIGNvbnN0IGZlZXMgPSB0aGlzLmV4dHJhY3RGZWVGcm9tQm94KCkucmV2ZXJzZSgpO1xuICAgIGZvciAoY29uc3QgZmVlIG9mIGZlZXMpIHtcbiAgICAgIGlmICghT2JqZWN0Lmhhc093bihmZWUuaGVpZ2h0cywgZnJvbUNoYWluKSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXG4gICAgICAgICAgYE5vIGZlZSBmb3VuZCBmb3IgY2hhaW4gWyR7ZnJvbUNoYWlufV0gaW4gYm94IFske3RoaXMuYm94XG4gICAgICAgICAgICAuYm94X2lkKClcbiAgICAgICAgICAgIC50b19zdHIoKX1dYFxuICAgICAgICApO1xuICAgICAgaWYgKGZlZS5oZWlnaHRzW2Zyb21DaGFpbl0gPCBoZWlnaHQpIHtcbiAgICAgICAgY29uc3QgY2hhaW5GZWUgPSBmZWUuY29uZmlnc1t0b0NoYWluXTtcbiAgICAgICAgaWYgKGNoYWluRmVlKSByZXR1cm4gbmV3IENoYWluTWluaW11bUZlZShjaGFpbkZlZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgQ2hhaW4gWyR7dG9DaGFpbn1dIGlzIG5vdCBzdXBwb3J0ZWQgYXQgZ2l2ZW4gaGVpZ2h0IG9mIGZyb21DaGFpbiBbJHtoZWlnaHR9IG9mICR7ZnJvbUNoYWlufV0gaW4gYm94IFske3RoaXMuYm94XG4gICAgICAgICAgICAgIC5ib3hfaWQoKVxuICAgICAgICAgICAgICAudG9fc3RyKCl9XWBcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgYENvbmZpZyBkb2VzIG5vdCBzdXBwb3J0IGhlaWdodCBbJHtoZWlnaHR9XSBmb3IgY2hhaW4gWyR7ZnJvbUNoYWlufV0gaW4gYm94IFske3RoaXMuYm94XG4gICAgICAgIC5ib3hfaWQoKVxuICAgICAgICAudG9fc3RyKCl9XWBcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBGZWUgY29uZmlnIGZyb20gYm94IHJlZ2lzdGVyc1xuICAgKi9cbiAgcHJvdGVjdGVkIGV4dHJhY3RGZWVGcm9tQm94ID0gKCk6IEFycmF5PEZlZT4gPT4ge1xuICAgIGNvbnN0IFI0ID0gdGhpcy5ib3gucmVnaXN0ZXJfdmFsdWUoNCk7XG4gICAgY29uc3QgUjUgPSB0aGlzLmJveC5yZWdpc3Rlcl92YWx1ZSg1KTtcbiAgICBjb25zdCBSNiA9IHRoaXMuYm94LnJlZ2lzdGVyX3ZhbHVlKDYpO1xuICAgIGNvbnN0IFI3ID0gdGhpcy5ib3gucmVnaXN0ZXJfdmFsdWUoNyk7XG4gICAgY29uc3QgUjggPSB0aGlzLmJveC5yZWdpc3Rlcl92YWx1ZSg4KTtcbiAgICBjb25zdCBSOSA9IHRoaXMuYm94LnJlZ2lzdGVyX3ZhbHVlKDkpO1xuXG4gICAgaWYgKCFSNCB8fCAhUjUgfHwgIVI2IHx8ICFSNyB8fCAhUjggfHwgIVI5KVxuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBJbmNvbXBsZXRlIHJlZ2lzdGVyIGRhdGEgZm9yIG1pbmltdW0tZmVlIGNvbmZpZyBib3ggWyR7dGhpcy5ib3hcbiAgICAgICAgICAuYm94X2lkKClcbiAgICAgICAgICAudG9fc3RyKCl9XWBcbiAgICAgICk7XG5cbiAgICBjb25zdCBmZWVzOiBBcnJheTxGZWU+ID0gW107XG4gICAgY29uc3QgY2hhaW5zID0gUjQudG9fY29sbF9jb2xsX2J5dGUoKS5tYXAoKGVsZW1lbnQpID0+XG4gICAgICBCdWZmZXIuZnJvbShlbGVtZW50KS50b1N0cmluZygpXG4gICAgKTtcbiAgICBjb25zdCBoZWlnaHRzID0gUjUudG9fanMoKSBhcyBBcnJheTxBcnJheTxudW1iZXI+PjtcbiAgICBjb25zdCBicmlkZ2VGZWVzID0gUjYudG9fanMoKSBhcyBBcnJheTxBcnJheTxzdHJpbmc+PjtcbiAgICBjb25zdCBuZXR3b3JrRmVlcyA9IFI3LnRvX2pzKCkgYXMgQXJyYXk8QXJyYXk8c3RyaW5nPj47XG4gICAgY29uc3QgcnNuUmF0aW9zID0gUjgudG9fanMoKSBhcyBBcnJheTxBcnJheTxBcnJheTxzdHJpbmc+Pj47XG4gICAgY29uc3QgZmVlUmF0aW9zID0gUjkudG9fanMoKSBhcyBBcnJheTxBcnJheTxzdHJpbmc+PjtcblxuICAgIGZvciAobGV0IGZlZUlkeCA9IDA7IGZlZUlkeCA8IGhlaWdodHMubGVuZ3RoOyBmZWVJZHgrKykge1xuICAgICAgY29uc3QgZmVlOiBGZWUgPSB7XG4gICAgICAgIGhlaWdodHM6IHt9LFxuICAgICAgICBjb25maWdzOiB7fSxcbiAgICAgIH07XG4gICAgICBmb3IgKGxldCBjaGFpbklkeCA9IDA7IGNoYWluSWR4IDwgY2hhaW5zLmxlbmd0aDsgY2hhaW5JZHgrKykge1xuICAgICAgICBjb25zdCBjaGFpbiA9IGNoYWluc1tjaGFpbklkeF07XG5cbiAgICAgICAgaWYgKGhlaWdodHNbZmVlSWR4XVtjaGFpbklkeF0gPT09IC0xKSBjb250aW51ZTtcbiAgICAgICAgZmVlLmhlaWdodHNbY2hhaW5dID0gaGVpZ2h0c1tmZWVJZHhdW2NoYWluSWR4XTtcblxuICAgICAgICBpZiAoYnJpZGdlRmVlc1tmZWVJZHhdW2NoYWluSWR4XSA9PT0gJy0xJykgY29udGludWU7XG4gICAgICAgIGZlZS5jb25maWdzW2NoYWluXSA9IHtcbiAgICAgICAgICBicmlkZ2VGZWU6IEJpZ0ludChicmlkZ2VGZWVzW2ZlZUlkeF1bY2hhaW5JZHhdKSxcbiAgICAgICAgICBuZXR3b3JrRmVlOiBCaWdJbnQobmV0d29ya0ZlZXNbZmVlSWR4XVtjaGFpbklkeF0pLFxuICAgICAgICAgIHJzblJhdGlvOiBCaWdJbnQocnNuUmF0aW9zW2ZlZUlkeF1bY2hhaW5JZHhdWzBdKSxcbiAgICAgICAgICByc25SYXRpb0Rpdmlzb3I6IEJpZ0ludChyc25SYXRpb3NbZmVlSWR4XVtjaGFpbklkeF1bMV0pLFxuICAgICAgICAgIGZlZVJhdGlvOiBCaWdJbnQoZmVlUmF0aW9zW2ZlZUlkeF1bY2hhaW5JZHhdKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGZlZXMucHVzaChmZWUpO1xuICAgIH1cblxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYEV4dHJhY3RlZCBmZWUgY29uZmlnIGZyb20gYm94IFske3RoaXMuYm94XG4gICAgICAgIC5ib3hfaWQoKVxuICAgICAgICAudG9fc3RyKCl9XTogJHtKc29uQmlnSW50LnN0cmluZ2lmeShmZWVzKX1gXG4gICAgKTtcblxuICAgIHJldHVybiBmZWVzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBnZW5lcmF0ZXMgYSBNaW5pbXVtRmVlQm94QnVpbGRlciB1c2luZyBjdXJyZW50IGJveFxuICAgKiAgbm90ZSB0aGF0ICdoZWlnaHQnIHBhcmFtZXRlciBvZiBidWlsZGVyIHdvbid0IGJlIHNldFxuICAgKi9cbiAgdG9CdWlsZGVyID0gKCk6IE1pbmltdW1GZWVCb3hCdWlsZGVyID0+IHtcbiAgICBjb25zdCBidWlsZGVyID0gbmV3IE1pbmltdW1GZWVCb3hCdWlsZGVyKHRoaXMubWluaW11bUZlZU5GVCwgdGhpcy5hZGRyZXNzKVxuICAgICAgLnNldFZhbHVlKEJpZ0ludCh0aGlzLmJveC52YWx1ZSgpLmFzX2k2NCgpLnRvX3N0cigpKSlcbiAgICAgIC5zZXRUb2tlbih0aGlzLnRva2VuSWQpO1xuXG4gICAgdGhpcy5leHRyYWN0RmVlRnJvbUJveCgpLmZvckVhY2goKGZlZSkgPT4ge1xuICAgICAgY29uc3QgY2hhaW5GZWUgPSBuZXcgTWluaW11bUZlZUNvbmZpZygpO1xuICAgICAgT2JqZWN0LmtleXMoZmVlLmhlaWdodHMpLmZvckVhY2goKGNoYWluKSA9PiB7XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGZlZS5jb25maWdzLCBjaGFpbikpXG4gICAgICAgICAgY2hhaW5GZWUuc2V0Q2hhaW5Db25maWcoXG4gICAgICAgICAgICBjaGFpbixcbiAgICAgICAgICAgIGZlZS5oZWlnaHRzW2NoYWluXSxcbiAgICAgICAgICAgIGZlZS5jb25maWdzW2NoYWluXVxuICAgICAgICAgICk7XG4gICAgICAgIGVsc2UgY2hhaW5GZWUuc2V0Q2hhaW5Db25maWcoY2hhaW4sIGZlZS5oZWlnaHRzW2NoYWluXSwgdW5kZWZpbmVkKTtcbiAgICAgIH0pO1xuICAgICAgYnVpbGRlci5hZGRDb25maWcoY2hhaW5GZWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBidWlsZGVyO1xuICB9O1xufVxuIl19
@@ -115,19 +115,19 @@ export class MinimumFeeBoxBuilder {
115
115
  else
116
116
  heightsConfigs.push(-1);
117
117
  if (Object.hasOwn(fee.configs, chain)) {
118
- brdigeFeesConfigs.push(fee.configs[chain].bridgeFee);
119
- networkFeesConfigs.push(fee.configs[chain].networkFee);
118
+ brdigeFeesConfigs.push(fee.configs[chain].bridgeFee.toString());
119
+ networkFeesConfigs.push(fee.configs[chain].networkFee.toString());
120
120
  rsnRatiosConfigs.push([
121
- fee.configs[chain].rsnRatio,
122
- fee.configs[chain].rsnRatioDivisor,
121
+ fee.configs[chain].rsnRatio.toString(),
122
+ fee.configs[chain].rsnRatioDivisor.toString(),
123
123
  ]);
124
- feeRatiosConfigs.push(fee.configs[chain].feeRatio);
124
+ feeRatiosConfigs.push(fee.configs[chain].feeRatio.toString());
125
125
  }
126
126
  else {
127
- brdigeFeesConfigs.push(-1n);
128
- networkFeesConfigs.push(-1n);
129
- rsnRatiosConfigs.push([-1n, -1n]);
130
- feeRatiosConfigs.push(-1n);
127
+ brdigeFeesConfigs.push('-1');
128
+ networkFeesConfigs.push('-1');
129
+ rsnRatiosConfigs.push(['-1', '-1']);
130
+ feeRatiosConfigs.push('-1');
131
131
  }
132
132
  });
133
133
  heights.push(heightsConfigs);
@@ -146,4 +146,4 @@ export class MinimumFeeBoxBuilder {
146
146
  return boxBuilder.build();
147
147
  };
148
148
  }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluaW11bUZlZUJveEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvTWluaW11bUZlZUJveEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLHVCQUF1QixFQUN2QixHQUFHLEVBQ0gsV0FBVyxFQUNYLE9BQU8sRUFDUCxRQUFRLEdBRVQsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxvQkFBb0I7SUFDckIsSUFBSSxDQUFhO0lBQ2pCLFFBQVEsQ0FBVztJQUNuQixTQUFTLENBQVM7SUFDbEIsT0FBTyxDQUFTO0lBQ2hCLGFBQWEsQ0FBUztJQUN0QixPQUFPLENBQVM7SUFFMUIsWUFBWSxhQUFxQixFQUFFLE9BQWU7UUFDaEQsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLENBQUMsU0FBMkIsRUFBd0IsRUFBRTtRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFlBQVksR0FBRyxDQUFDLEtBQWEsRUFBd0IsRUFBRTtRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxRQUFRLEdBQUcs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LENBQUM7UUFDOUQsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFOUQsT0FBTyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZGRyZXNzLFxuICBCb3hWYWx1ZSxcbiAgQ29udHJhY3QsXG4gIEVyZ29Cb3hDYW5kaWRhdGVCdWlsZGVyLFxuICBJNjQsXG4gIFRva2VuQW1vdW50LFxuICBUb2tlbklkLFxuICBDb25zdGFudCxcbiAgRXJnb0JveENhbmRpZGF0ZSxcbn0gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgTWluaW11bUZlZUNvbmZpZyB9IGZyb20gJy4vTWluaW11bUZlZUNvbmZpZyc7XG5pbXBvcnQgeyBGZWUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEludmFsaWRDb25maWcgfSBmcm9tICcuL2Vycm9ycyc7XG5cbmNvbnN0IEVSR09fTkFUSVZFX1RPS0VOID0gJ2VyZyc7XG5cbmV4cG9ydCBjbGFzcyBNaW5pbXVtRmVlQm94QnVpbGRlciB7XG4gIHByb3RlY3RlZCBmZWVzOiBBcnJheTxGZWU+O1xuICBwcm90ZWN0ZWQgYm94VmFsdWU6IEJveFZhbHVlO1xuICBwcm90ZWN0ZWQgYm94aGVpZ2h0OiBudW1iZXI7XG4gIHByb3RlY3RlZCB0b2tlbklkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBtaW5pbXVtRmVlTkZUOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhZGRyZXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobWluaW11bUZlZU5GVDogc3RyaW5nLCBhZGRyZXNzOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZlZXMgPSBbXTtcbiAgICB0aGlzLm1pbmltdW1GZWVORlQgPSBtaW5pbXVtRmVlTkZUO1xuICAgIHRoaXMuYWRkcmVzcyA9IGFkZHJlc3M7XG4gIH1cblxuICAvKipcbiAgICogYWRkcyBhIGZlZUNvbmZpZ1xuICAgKiBAcGFyYW0gZmVlQ29uZmlnXG4gICAqL1xuICBhZGRDb25maWcgPSAoZmVlQ29uZmlnOiBNaW5pbXVtRmVlQ29uZmlnKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIHRoaXMuZmVlcy5wdXNoKGZlZUNvbmZpZy5nZXRDb25maWcoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZXMgYSBjb25maWcgYnkgaW5kZXhcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICByZW1vdmVDb25maWcgPSAoaW5kZXg6IG51bWJlcik6IE1pbmltdW1GZWVCb3hCdWlsZGVyID0+IHtcbiAgICB0aGlzLmZlZXMuc3BsaWNlKGluZGV4KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogc2V0cyBFcmdvQm94IEVyZyB2YWx1ZVxuICAgKiBAcGFyYW0gbmFub0VyZ1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc2V0VmFsdWUgPSAobmFub0VyZzogYmlnaW50KTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIHRoaXMuYm94VmFsdWUgPSBCb3hWYWx1ZS5mcm9tX2k2NChJNjQuZnJvbV9zdHIobmFub0VyZy50b1N0cmluZygpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHNldHMgRXJnb0JveCBjcmVhdGlvbmhlaWdodFxuICAgKiBAcGFyYW0gY3VycmVudEhlaWdodFxuICAgKi9cbiAgc2V0SGVpZ2h0ID0gKGN1cnJlbnRIZWlnaHQ6IG51bWJlcik6IE1pbmltdW1GZWVCb3hCdWlsZGVyID0+IHtcbiAgICB0aGlzLmJveGhlaWdodCA9IGN1cnJlbnRIZWlnaHQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHNldHMgY29uZmlnIHRva2VuIGlkXG4gICAqIEBwYXJhbSB0b2tlbklkXG4gICAqL1xuICBzZXRUb2tlbiA9ICh0b2tlbklkOiBzdHJpbmcpOiBNaW5pbXVtRmVlQm94QnVpbGRlciA9PiB7XG4gICAgdGhpcy50b2tlbklkID0gdG9rZW5JZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogdmFsaWRhdGVzIHNvbWUgb2Ygc3BlY2lmaWVkIGNvbmZpZ3NcbiAgICovXG4gIHByb3RlY3RlZCB2YWxpZGF0ZSA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAoIXRoaXMuYm94VmFsdWUpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZyhgQm94IHZhbHVlIGFyZ3VtZW50IGlzIG5vdCBkZWZpbmVkYCk7XG4gICAgaWYgKCF0aGlzLmJveGhlaWdodClcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKGBCb3ggY3JlYXRpb24gaGVpZ2h0IGFyZ3VtZW50IGlzIG5vdCBkZWZpbmVkYCk7XG4gICAgaWYgKCF0aGlzLnRva2VuSWQpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZyhgQ29uZmlnIHRva2VuIGlkIGlzIG5vdCBkZWZpbmVkYCk7XG4gICAgaWYgKHRoaXMuZmVlcy5sZW5ndGggPT09IDApXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZyhcbiAgICAgICAgYE5vIGNvbmZpZyBhZGRlZC4gUGxlYXNlIGFkZCBhdCBsZWFzdCBvbmUgY29uZmlnYFxuICAgICAgKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mZWVzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgY29uc3QgY2hhaW5zID0gT2JqZWN0LmtleXModGhpcy5mZWVzWzBdLmhlaWdodHMpO1xuICAgICAgY2hhaW5zLmZvckVhY2goKGNoYWluKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5mZWVzW2kgKyAxXS5oZWlnaHRzW2NoYWluXSlcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZyhcbiAgICAgICAgICAgIGBFeHBlY3RlZCBjaGFpbiBbJHtjaGFpbn1dIGF0IGluZGV4IFske2kgKyAxfV1gXG4gICAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMuZmVlc1tpICsgMV0uaGVpZ2h0c1tjaGFpbl0gPCB0aGlzLmZlZXNbaV0uaGVpZ2h0c1tjaGFpbl0pXG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoXG4gICAgICAgICAgICBgQWxsIGhlaWdodHMgZm9yIGEgY2hhaW4gc2hvdWxkIGJlIGFzY2VuZGluZy4gSGVpZ2h0cyBvZiBjaGFpbiBbJHtjaGFpbn1dIGF0IGluZGV4ZXMgWyR7aX0sJHtcbiAgICAgICAgICAgICAgaSArIDFcbiAgICAgICAgICAgIH1dIGFyZSBpbnZhbGlkIFske3RoaXMuZmVlc1tpICsgMV0uaGVpZ2h0c1tjaGFpbl19IDwgJHtcbiAgICAgICAgICAgICAgdGhpcy5mZWVzW2ldLmhlaWdodHNbY2hhaW5dXG4gICAgICAgICAgICB9XWBcbiAgICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiB2YWxpZGF0ZXMgc3BlY2lmaWVkIGNvbmZpZ3MgYW5kIGJ1aWxkcyBFcmdvQm94Q2FuZGlkYXRlIG9mIGNvbmZpZyBib3ggdXNpbmcgdGhlbVxuICAgKi9cbiAgYnVpbGQgPSAoKTogRXJnb0JveENhbmRpZGF0ZSA9PiB7XG4gICAgdGhpcy52YWxpZGF0ZSgpO1xuXG4gICAgLy8gYWRkIGJveCB2YWx1ZSwgYWRkcmVzcyBhbmQgY3JlYXRpb24gaGVpZ2h0XG4gICAgY29uc3QgYm94QnVpbGRlciA9IG5ldyBFcmdvQm94Q2FuZGlkYXRlQnVpbGRlcihcbiAgICAgIHRoaXMuYm94VmFsdWUsXG4gICAgICBDb250cmFjdC5uZXcoQWRkcmVzcy5mcm9tX2Jhc2U1OCh0aGlzLmFkZHJlc3MpLnRvX2VyZ29fdHJlZSgpKSxcbiAgICAgIHRoaXMuYm94aGVpZ2h0XG4gICAgKTtcblxuICAgIC8vIGFkZCBib3ggdG9rZW5zXG4gICAgYm94QnVpbGRlci5hZGRfdG9rZW4oXG4gICAgICBUb2tlbklkLmZyb21fc3RyKHRoaXMubWluaW11bUZlZU5GVCksXG4gICAgICBUb2tlbkFtb3VudC5mcm9tX2k2NChJNjQuZnJvbV9zdHIoJzEnKSlcbiAgICApO1xuICAgIGlmICh0aGlzLnRva2VuSWQgIT09IEVSR09fTkFUSVZFX1RPS0VOKVxuICAgICAgYm94QnVpbGRlci5hZGRfdG9rZW4oXG4gICAgICAgIFRva2VuSWQuZnJvbV9zdHIodGhpcy50b2tlbklkKSxcbiAgICAgICAgVG9rZW5BbW91bnQuZnJvbV9pNjQoSTY0LmZyb21fc3RyKCcxJykpXG4gICAgICApO1xuXG4gICAgLy8gZ2VuZXJhdGUgcmVnaXN0ZXIgdmFsdWVzXG4gICAgLy8gIGV4dHJhY3QgY2hhaW5zXG4gICAgY29uc3QgY2hhaW5zOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgdGhpcy5mZWVzLmZvckVhY2goKGZlZSkgPT4ge1xuICAgICAgT2JqZWN0LmtleXMoZmVlLmhlaWdodHMpLmZvckVhY2goKGZlZUNoYWluKSA9PiB7XG4gICAgICAgIGlmICghY2hhaW5zLmluY2x1ZGVzKGZlZUNoYWluKSkgY2hhaW5zLnB1c2goZmVlQ2hhaW4pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgY2hhaW5zLnNvcnQoKTtcbiAgICAvLyAgZXh0cmFjdCBjb25maWdzXG4gICAgY29uc3QgaGVpZ2h0czogQXJyYXk8QXJyYXk8bnVtYmVyPj4gPSBbXTtcbiAgICBjb25zdCBicmRpZ2VGZWVzOiBBcnJheTxBcnJheTxiaWdpbnQ+PiA9IFtdO1xuICAgIGNvbnN0IG5ldHdvcmtGZWVzOiBBcnJheTxBcnJheTxiaWdpbnQ+PiA9IFtdO1xuICAgIGNvbnN0IHJzblJhdGlvczogQXJyYXk8QXJyYXk8QXJyYXk8YmlnaW50Pj4+ID0gW107XG4gICAgY29uc3QgZmVlUmF0aW9zOiBBcnJheTxBcnJheTxiaWdpbnQ+PiA9IFtdO1xuICAgIHRoaXMuZmVlcy5mb3JFYWNoKChmZWUpID0+IHtcbiAgICAgIGNvbnN0IGhlaWdodHNDb25maWdzOiBBcnJheTxudW1iZXI+ID0gW107XG4gICAgICBjb25zdCBicmRpZ2VGZWVzQ29uZmlnczogQXJyYXk8YmlnaW50PiA9IFtdO1xuICAgICAgY29uc3QgbmV0d29ya0ZlZXNDb25maWdzOiBBcnJheTxiaWdpbnQ+ID0gW107XG4gICAgICBjb25zdCByc25SYXRpb3NDb25maWdzOiBBcnJheTxBcnJheTxiaWdpbnQ+PiA9IFtdO1xuICAgICAgY29uc3QgZmVlUmF0aW9zQ29uZmlnczogQXJyYXk8YmlnaW50PiA9IFtdO1xuXG4gICAgICBjaGFpbnMuZm9yRWFjaCgoY2hhaW4pID0+IHtcbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oZmVlLmhlaWdodHMsIGNoYWluKSlcbiAgICAgICAgICBoZWlnaHRzQ29uZmlncy5wdXNoKGZlZS5oZWlnaHRzW2NoYWluXSk7XG4gICAgICAgIGVsc2UgaGVpZ2h0c0NvbmZpZ3MucHVzaCgtMSk7XG5cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oZmVlLmNvbmZpZ3MsIGNoYWluKSkge1xuICAgICAgICAgIGJyZGlnZUZlZXNDb25maWdzLnB1c2goZmVlLmNvbmZpZ3NbY2hhaW5dLmJyaWRnZUZlZSk7XG4gICAgICAgICAgbmV0d29ya0ZlZXNDb25maWdzLnB1c2goZmVlLmNvbmZpZ3NbY2hhaW5dLm5ldHdvcmtGZWUpO1xuICAgICAgICAgIHJzblJhdGlvc0NvbmZpZ3MucHVzaChbXG4gICAgICAgICAgICBmZWUuY29uZmlnc1tjaGFpbl0ucnNuUmF0aW8sXG4gICAgICAgICAgICBmZWUuY29uZmlnc1tjaGFpbl0ucnNuUmF0aW9EaXZpc29yLFxuICAgICAgICAgIF0pO1xuICAgICAgICAgIGZlZVJhdGlvc0NvbmZpZ3MucHVzaChmZWUuY29uZmlnc1tjaGFpbl0uZmVlUmF0aW8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZGlnZUZlZXNDb25maWdzLnB1c2goLTFuKTtcbiAgICAgICAgICBuZXR3b3JrRmVlc0NvbmZpZ3MucHVzaCgtMW4pO1xuICAgICAgICAgIHJzblJhdGlvc0NvbmZpZ3MucHVzaChbLTFuLCAtMW5dKTtcbiAgICAgICAgICBmZWVSYXRpb3NDb25maWdzLnB1c2goLTFuKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGhlaWdodHMucHVzaChoZWlnaHRzQ29uZmlncyk7XG4gICAgICBicmRpZ2VGZWVzLnB1c2goYnJkaWdlRmVlc0NvbmZpZ3MpO1xuICAgICAgbmV0d29ya0ZlZXMucHVzaChuZXR3b3JrRmVlc0NvbmZpZ3MpO1xuICAgICAgcnNuUmF0aW9zLnB1c2gocnNuUmF0aW9zQ29uZmlncyk7XG4gICAgICBmZWVSYXRpb3MucHVzaChmZWVSYXRpb3NDb25maWdzKTtcbiAgICB9KTtcblxuICAgIC8vIGFkZCBib3ggcmVnaXN0ZXJzXG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoXG4gICAgICA0LFxuICAgICAgQ29uc3RhbnQuZnJvbV9jb2xsX2NvbGxfYnl0ZShjaGFpbnMubWFwKChjaGFpbikgPT4gQnVmZmVyLmZyb20oY2hhaW4pKSlcbiAgICApO1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDUsIENvbnN0YW50LmZyb21fanMoaGVpZ2h0cykpO1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDYsIENvbnN0YW50LmZyb21fanMoYnJkaWdlRmVlcykpO1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDcsIENvbnN0YW50LmZyb21fanMobmV0d29ya0ZlZXMpKTtcbiAgICBib3hCdWlsZGVyLnNldF9yZWdpc3Rlcl92YWx1ZSg4LCBDb25zdGFudC5mcm9tX2pzKHJzblJhdGlvcykpO1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDksIENvbnN0YW50LmZyb21fanMoZmVlUmF0aW9zKSk7XG5cbiAgICByZXR1cm4gYm94QnVpbGRlci5idWlsZCgpO1xuICB9O1xufVxuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluaW11bUZlZUJveEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvTWluaW11bUZlZUJveEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLHVCQUF1QixFQUN2QixHQUFHLEVBQ0gsV0FBVyxFQUNYLE9BQU8sRUFDUCxRQUFRLEdBRVQsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxvQkFBb0I7SUFDckIsSUFBSSxDQUFhO0lBQ2pCLFFBQVEsQ0FBVztJQUNuQixTQUFTLENBQVM7SUFDbEIsT0FBTyxDQUFTO0lBQ2hCLGFBQWEsQ0FBUztJQUN0QixPQUFPLENBQVM7SUFFMUIsWUFBWSxhQUFxQixFQUFFLE9BQWU7UUFDaEQsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLENBQUMsU0FBMkIsRUFBd0IsRUFBRTtRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFlBQVksR0FBRyxDQUFDLEtBQWEsRUFBd0IsRUFBRTtRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxRQUFRLEdBQUcs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LENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM5RCxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUU5RCxPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkZHJlc3MsXG4gIEJveFZhbHVlLFxuICBDb250cmFjdCxcbiAgRXJnb0JveENhbmRpZGF0ZUJ1aWxkZXIsXG4gIEk2NCxcbiAgVG9rZW5BbW91bnQsXG4gIFRva2VuSWQsXG4gIENvbnN0YW50LFxuICBFcmdvQm94Q2FuZGlkYXRlLFxufSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBNaW5pbXVtRmVlQ29uZmlnIH0gZnJvbSAnLi9NaW5pbXVtRmVlQ29uZmlnJztcbmltcG9ydCB7IEZlZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSW52YWxpZENvbmZpZyB9IGZyb20gJy4vZXJyb3JzJztcblxuY29uc3QgRVJHT19OQVRJVkVfVE9LRU4gPSAnZXJnJztcblxuZXhwb3J0IGNsYXNzIE1pbmltdW1GZWVCb3hCdWlsZGVyIHtcbiAgcHJvdGVjdGVkIGZlZXM6IEFycmF5PEZlZT47XG4gIHByb3RlY3RlZCBib3hWYWx1ZTogQm94VmFsdWU7XG4gIHByb3RlY3RlZCBib3hoZWlnaHQ6IG51bWJlcjtcbiAgcHJvdGVjdGVkIHRva2VuSWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIG1pbmltdW1GZWVORlQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIGFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihtaW5pbXVtRmVlTkZUOiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZykge1xuICAgIHRoaXMuZmVlcyA9IFtdO1xuICAgIHRoaXMubWluaW11bUZlZU5GVCA9IG1pbmltdW1GZWVORlQ7XG4gICAgdGhpcy5hZGRyZXNzID0gYWRkcmVzcztcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGRzIGEgZmVlQ29uZmlnXG4gICAqIEBwYXJhbSBmZWVDb25maWdcbiAgICovXG4gIGFkZENvbmZpZyA9IChmZWVDb25maWc6IE1pbmltdW1GZWVDb25maWcpOiBNaW5pbXVtRmVlQm94QnVpbGRlciA9PiB7XG4gICAgdGhpcy5mZWVzLnB1c2goZmVlQ29uZmlnLmdldENvbmZpZygpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlcyBhIGNvbmZpZyBieSBpbmRleFxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICovXG4gIHJlbW92ZUNvbmZpZyA9IChpbmRleDogbnVtYmVyKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIHRoaXMuZmVlcy5zcGxpY2UoaW5kZXgpO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBzZXRzIEVyZ29Cb3ggRXJnIHZhbHVlXG4gICAqIEBwYXJhbSBuYW5vRXJnXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzZXRWYWx1ZSA9IChuYW5vRXJnOiBiaWdpbnQpOiBNaW5pbXVtRmVlQm94QnVpbGRlciA9PiB7XG4gICAgdGhpcy5ib3hWYWx1ZSA9IEJveFZhbHVlLmZyb21faTY0KEk2NC5mcm9tX3N0cihuYW5vRXJnLnRvU3RyaW5nKCkpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogc2V0cyBFcmdvQm94IGNyZWF0aW9uaGVpZ2h0XG4gICAqIEBwYXJhbSBjdXJyZW50SGVpZ2h0XG4gICAqL1xuICBzZXRIZWlnaHQgPSAoY3VycmVudEhlaWdodDogbnVtYmVyKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIHRoaXMuYm94aGVpZ2h0ID0gY3VycmVudEhlaWdodDtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogc2V0cyBjb25maWcgdG9rZW4gaWRcbiAgICogQHBhcmFtIHRva2VuSWRcbiAgICovXG4gIHNldFRva2VuID0gKHRva2VuSWQ6IHN0cmluZyk6IE1pbmltdW1GZWVCb3hCdWlsZGVyID0+IHtcbiAgICB0aGlzLnRva2VuSWQgPSB0b2tlbklkO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiB2YWxpZGF0ZXMgc29tZSBvZiBzcGVjaWZpZWQgY29uZmlnc1xuICAgKi9cbiAgcHJvdGVjdGVkIHZhbGlkYXRlID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5ib3hWYWx1ZSlcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKGBCb3ggdmFsdWUgYXJndW1lbnQgaXMgbm90IGRlZmluZWRgKTtcbiAgICBpZiAoIXRoaXMuYm94aGVpZ2h0KVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoYEJveCBjcmVhdGlvbiBoZWlnaHQgYXJndW1lbnQgaXMgbm90IGRlZmluZWRgKTtcbiAgICBpZiAoIXRoaXMudG9rZW5JZClcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKGBDb25maWcgdG9rZW4gaWQgaXMgbm90IGRlZmluZWRgKTtcbiAgICBpZiAodGhpcy5mZWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKFxuICAgICAgICBgTm8gY29uZmlnIGFkZGVkLiBQbGVhc2UgYWRkIGF0IGxlYXN0IG9uZSBjb25maWdgXG4gICAgICApO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZlZXMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBjb25zdCBjaGFpbnMgPSBPYmplY3Qua2V5cyh0aGlzLmZlZXNbMF0uaGVpZ2h0cyk7XG4gICAgICBjaGFpbnMuZm9yRWFjaCgoY2hhaW4pID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmZlZXNbaSArIDFdLmhlaWdodHNbY2hhaW5dKVxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKFxuICAgICAgICAgICAgYEV4cGVjdGVkIGNoYWluIFske2NoYWlufV0gYXQgaW5kZXggWyR7aSArIDF9XWBcbiAgICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5mZWVzW2kgKyAxXS5oZWlnaHRzW2NoYWluXSA8IHRoaXMuZmVlc1tpXS5oZWlnaHRzW2NoYWluXSlcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZyhcbiAgICAgICAgICAgIGBBbGwgaGVpZ2h0cyBmb3IgYSBjaGFpbiBzaG91bGQgYmUgYXNjZW5kaW5nLiBIZWlnaHRzIG9mIGNoYWluIFske2NoYWlufV0gYXQgaW5kZXhlcyBbJHtpfSwke1xuICAgICAgICAgICAgICBpICsgMVxuICAgICAgICAgICAgfV0gYXJlIGludmFsaWQgWyR7dGhpcy5mZWVzW2kgKyAxXS5oZWlnaHRzW2NoYWluXX0gPCAke1xuICAgICAgICAgICAgICB0aGlzLmZlZXNbaV0uaGVpZ2h0c1tjaGFpbl1cbiAgICAgICAgICAgIH1dYFxuICAgICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIHZhbGlkYXRlcyBzcGVjaWZpZWQgY29uZmlncyBhbmQgYnVpbGRzIEVyZ29Cb3hDYW5kaWRhdGUgb2YgY29uZmlnIGJveCB1c2luZyB0aGVtXG4gICAqL1xuICBidWlsZCA9ICgpOiBFcmdvQm94Q2FuZGlkYXRlID0+IHtcbiAgICB0aGlzLnZhbGlkYXRlKCk7XG5cbiAgICAvLyBhZGQgYm94IHZhbHVlLCBhZGRyZXNzIGFuZCBjcmVhdGlvbiBoZWlnaHRcbiAgICBjb25zdCBib3hCdWlsZGVyID0gbmV3IEVyZ29Cb3hDYW5kaWRhdGVCdWlsZGVyKFxuICAgICAgdGhpcy5ib3hWYWx1ZSxcbiAgICAgIENvbnRyYWN0Lm5ldyhBZGRyZXNzLmZyb21fYmFzZTU4KHRoaXMuYWRkcmVzcykudG9fZXJnb190cmVlKCkpLFxuICAgICAgdGhpcy5ib3hoZWlnaHRcbiAgICApO1xuXG4gICAgLy8gYWRkIGJveCB0b2tlbnNcbiAgICBib3hCdWlsZGVyLmFkZF90b2tlbihcbiAgICAgIFRva2VuSWQuZnJvbV9zdHIodGhpcy5taW5pbXVtRmVlTkZUKSxcbiAgICAgIFRva2VuQW1vdW50LmZyb21faTY0KEk2NC5mcm9tX3N0cignMScpKVxuICAgICk7XG4gICAgaWYgKHRoaXMudG9rZW5JZCAhPT0gRVJHT19OQVRJVkVfVE9LRU4pXG4gICAgICBib3hCdWlsZGVyLmFkZF90b2tlbihcbiAgICAgICAgVG9rZW5JZC5mcm9tX3N0cih0aGlzLnRva2VuSWQpLFxuICAgICAgICBUb2tlbkFtb3VudC5mcm9tX2k2NChJNjQuZnJvbV9zdHIoJzEnKSlcbiAgICAgICk7XG5cbiAgICAvLyBnZW5lcmF0ZSByZWdpc3RlciB2YWx1ZXNcbiAgICAvLyAgZXh0cmFjdCBjaGFpbnNcbiAgICBjb25zdCBjaGFpbnM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICB0aGlzLmZlZXMuZm9yRWFjaCgoZmVlKSA9PiB7XG4gICAgICBPYmplY3Qua2V5cyhmZWUuaGVpZ2h0cykuZm9yRWFjaCgoZmVlQ2hhaW4pID0+IHtcbiAgICAgICAgaWYgKCFjaGFpbnMuaW5jbHVkZXMoZmVlQ2hhaW4pKSBjaGFpbnMucHVzaChmZWVDaGFpbik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjaGFpbnMuc29ydCgpO1xuICAgIC8vICBleHRyYWN0IGNvbmZpZ3NcbiAgICBjb25zdCBoZWlnaHRzOiBBcnJheTxBcnJheTxudW1iZXI+PiA9IFtdO1xuICAgIGNvbnN0IGJyZGlnZUZlZXM6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG4gICAgY29uc3QgbmV0d29ya0ZlZXM6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG4gICAgY29uc3QgcnNuUmF0aW9zOiBBcnJheTxBcnJheTxBcnJheTxzdHJpbmc+Pj4gPSBbXTtcbiAgICBjb25zdCBmZWVSYXRpb3M6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG4gICAgdGhpcy5mZWVzLmZvckVhY2goKGZlZSkgPT4ge1xuICAgICAgY29uc3QgaGVpZ2h0c0NvbmZpZ3M6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgICAgIGNvbnN0IGJyZGlnZUZlZXNDb25maWdzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgICBjb25zdCBuZXR3b3JrRmVlc0NvbmZpZ3M6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgIGNvbnN0IHJzblJhdGlvc0NvbmZpZ3M6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG4gICAgICBjb25zdCBmZWVSYXRpb3NDb25maWdzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgICAgIGNoYWlucy5mb3JFYWNoKChjaGFpbikgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihmZWUuaGVpZ2h0cywgY2hhaW4pKVxuICAgICAgICAgIGhlaWdodHNDb25maWdzLnB1c2goZmVlLmhlaWdodHNbY2hhaW5dKTtcbiAgICAgICAgZWxzZSBoZWlnaHRzQ29uZmlncy5wdXNoKC0xKTtcblxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihmZWUuY29uZmlncywgY2hhaW4pKSB7XG4gICAgICAgICAgYnJkaWdlRmVlc0NvbmZpZ3MucHVzaChmZWUuY29uZmlnc1tjaGFpbl0uYnJpZGdlRmVlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIG5ldHdvcmtGZWVzQ29uZmlncy5wdXNoKGZlZS5jb25maWdzW2NoYWluXS5uZXR3b3JrRmVlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIHJzblJhdGlvc0NvbmZpZ3MucHVzaChbXG4gICAgICAgICAgICBmZWUuY29uZmlnc1tjaGFpbl0ucnNuUmF0aW8udG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGZlZS5jb25maWdzW2NoYWluXS5yc25SYXRpb0Rpdmlzb3IudG9TdHJpbmcoKSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgICBmZWVSYXRpb3NDb25maWdzLnB1c2goZmVlLmNvbmZpZ3NbY2hhaW5dLmZlZVJhdGlvLnRvU3RyaW5nKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZGlnZUZlZXNDb25maWdzLnB1c2goJy0xJyk7XG4gICAgICAgICAgbmV0d29ya0ZlZXNDb25maWdzLnB1c2goJy0xJyk7XG4gICAgICAgICAgcnNuUmF0aW9zQ29uZmlncy5wdXNoKFsnLTEnLCAnLTEnXSk7XG4gICAgICAgICAgZmVlUmF0aW9zQ29uZmlncy5wdXNoKCctMScpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaGVpZ2h0cy5wdXNoKGhlaWdodHNDb25maWdzKTtcbiAgICAgIGJyZGlnZUZlZXMucHVzaChicmRpZ2VGZWVzQ29uZmlncyk7XG4gICAgICBuZXR3b3JrRmVlcy5wdXNoKG5ldHdvcmtGZWVzQ29uZmlncyk7XG4gICAgICByc25SYXRpb3MucHVzaChyc25SYXRpb3NDb25maWdzKTtcbiAgICAgIGZlZVJhdGlvcy5wdXNoKGZlZVJhdGlvc0NvbmZpZ3MpO1xuICAgIH0pO1xuXG4gICAgLy8gYWRkIGJveCByZWdpc3RlcnNcbiAgICBib3hCdWlsZGVyLnNldF9yZWdpc3Rlcl92YWx1ZShcbiAgICAgIDQsXG4gICAgICBDb25zdGFudC5mcm9tX2NvbGxfY29sbF9ieXRlKGNoYWlucy5tYXAoKGNoYWluKSA9PiBCdWZmZXIuZnJvbShjaGFpbikpKVxuICAgICk7XG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoNSwgQ29uc3RhbnQuZnJvbV9qcyhoZWlnaHRzKSk7XG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoNiwgQ29uc3RhbnQuZnJvbV9qcyhicmRpZ2VGZWVzKSk7XG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoNywgQ29uc3RhbnQuZnJvbV9qcyhuZXR3b3JrRmVlcykpO1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDgsIENvbnN0YW50LmZyb21fanMocnNuUmF0aW9zKSk7XG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoOSwgQ29uc3RhbnQuZnJvbV9qcyhmZWVSYXRpb3MpKTtcblxuICAgIHJldHVybiBib3hCdWlsZGVyLmJ1aWxkKCk7XG4gIH07XG59XG4iXX0=
@@ -1,7 +1,6 @@
1
1
  import { ChainFee, Fee } from './types';
2
2
  export declare class MinimumFeeConfig {
3
3
  protected fee: Fee;
4
- readonly feeRatioDivisor: bigint;
5
4
  constructor();
6
5
  /**
7
6
  * sets fee for a chain
@@ -1 +1 @@
1
- {"version":3,"file":"MinimumFeeConfig.d.ts","sourceRoot":"","sources":["../../lib/MinimumFeeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAExC,qBAAa,gBAAgB;IAC3B,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAU;;IAS1C;;;;;OAKG;IACH,cAAc,UACL,MAAM,UACL,MAAM,YACJ,QAAQ,GAAG,SAAS,KAC7B,gBAAgB,CAIjB;IAEF;;;OAGG;IACH,iBAAiB,UAAW,MAAM,KAAG,gBAAgB,CAInD;IAEF;;OAEG;IACH,SAAS,QAAO,GAAG,CAEjB;CACH"}
1
+ {"version":3,"file":"MinimumFeeConfig.d.ts","sourceRoot":"","sources":["../../lib/MinimumFeeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAExC,qBAAa,gBAAgB;IAC3B,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;;IASnB;;;;;OAKG;IACH,cAAc,UACL,MAAM,UACL,MAAM,YACJ,QAAQ,GAAG,SAAS,KAC7B,gBAAgB,CAIjB;IAEF;;;OAGG;IACH,iBAAiB,UAAW,MAAM,KAAG,gBAAgB,CAInD;IAEF;;OAEG;IACH,SAAS,QAAO,GAAG,CAEjB;CACH"}
@@ -1,6 +1,5 @@
1
1
  export class MinimumFeeConfig {
2
2
  fee;
3
- feeRatioDivisor = 10000n;
4
3
  constructor() {
5
4
  this.fee = {
6
5
  heights: {},
@@ -35,4 +34,4 @@ export class MinimumFeeConfig {
35
34
  return this.fee;
36
35
  };
37
36
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluaW11bUZlZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9NaW5pbXVtRmVlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDakIsR0FBRyxDQUFNO0lBQ1YsZUFBZSxHQUFXLE1BQU0sQ0FBQztJQUUxQztRQUNFLElBQUksQ0FBQyxHQUFHLEdBQUc7WUFDVCxPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsR0FBRyxDQUNmLEtBQWEsRUFDYixNQUFjLEVBQ2QsUUFBOEIsRUFDWixFQUFFO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNqQyxJQUFJLFFBQVE7WUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxpQkFBaUIsR0FBRyxDQUFDLEtBQWEsRUFBb0IsRUFBRTtRQUN0RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILFNBQVMsR0FBRyxHQUFRLEVBQUU7UUFDcEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhaW5GZWUsIEZlZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgTWluaW11bUZlZUNvbmZpZyB7XG4gIHByb3RlY3RlZCBmZWU6IEZlZTtcbiAgcmVhZG9ubHkgZmVlUmF0aW9EaXZpc29yOiBiaWdpbnQgPSAxMDAwMG47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5mZWUgPSB7XG4gICAgICBoZWlnaHRzOiB7fSxcbiAgICAgIGNvbmZpZ3M6IHt9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogc2V0cyBmZWUgZm9yIGEgY2hhaW5cbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBoZWlnaHRcbiAgICogQHBhcmFtIGNoYWluRmVlXG4gICAqL1xuICBzZXRDaGFpbkNvbmZpZyA9IChcbiAgICBjaGFpbjogc3RyaW5nLFxuICAgIGhlaWdodDogbnVtYmVyLFxuICAgIGNoYWluRmVlOiBDaGFpbkZlZSB8IHVuZGVmaW5lZFxuICApOiBNaW5pbXVtRmVlQ29uZmlnID0+IHtcbiAgICB0aGlzLmZlZS5oZWlnaHRzW2NoYWluXSA9IGhlaWdodDtcbiAgICBpZiAoY2hhaW5GZWUpIHRoaXMuZmVlLmNvbmZpZ3NbY2hhaW5dID0gY2hhaW5GZWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZXMgZmVlIGZvciBhIGNoYWluXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKi9cbiAgcmVtb3ZlQ2hhaW5Db25maWcgPSAoY2hhaW46IHN0cmluZyk6IE1pbmltdW1GZWVDb25maWcgPT4ge1xuICAgIGRlbGV0ZSB0aGlzLmZlZS5oZWlnaHRzW2NoYWluXTtcbiAgICBkZWxldGUgdGhpcy5mZWUuY29uZmlnc1tjaGFpbl07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJldHVybnMgZ2VuZXJhdGVkIGZlZVxuICAgKi9cbiAgZ2V0Q29uZmlnID0gKCk6IEZlZSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmVlO1xuICB9O1xufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluaW11bUZlZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9NaW5pbXVtRmVlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDakIsR0FBRyxDQUFNO0lBRW5CO1FBQ0UsSUFBSSxDQUFDLEdBQUcsR0FBRztZQUNULE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsY0FBYyxHQUFHLENBQ2YsS0FBYSxFQUNiLE1BQWMsRUFDZCxRQUE4QixFQUNaLEVBQUU7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLElBQUksUUFBUTtZQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGlCQUFpQixHQUFHLENBQUMsS0FBYSxFQUFvQixFQUFFO1FBQ3RELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsU0FBUyxHQUFHLEdBQVEsRUFBRTtRQUNwQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFpbkZlZSwgRmVlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBNaW5pbXVtRmVlQ29uZmlnIHtcbiAgcHJvdGVjdGVkIGZlZTogRmVlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZmVlID0ge1xuICAgICAgaGVpZ2h0czoge30sXG4gICAgICBjb25maWdzOiB7fSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIHNldHMgZmVlIGZvciBhIGNoYWluXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcGFyYW0gaGVpZ2h0XG4gICAqIEBwYXJhbSBjaGFpbkZlZVxuICAgKi9cbiAgc2V0Q2hhaW5Db25maWcgPSAoXG4gICAgY2hhaW46IHN0cmluZyxcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBjaGFpbkZlZTogQ2hhaW5GZWUgfCB1bmRlZmluZWRcbiAgKTogTWluaW11bUZlZUNvbmZpZyA9PiB7XG4gICAgdGhpcy5mZWUuaGVpZ2h0c1tjaGFpbl0gPSBoZWlnaHQ7XG4gICAgaWYgKGNoYWluRmVlKSB0aGlzLmZlZS5jb25maWdzW2NoYWluXSA9IGNoYWluRmVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiByZW1vdmVzIGZlZSBmb3IgYSBjaGFpblxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICovXG4gIHJlbW92ZUNoYWluQ29uZmlnID0gKGNoYWluOiBzdHJpbmcpOiBNaW5pbXVtRmVlQ29uZmlnID0+IHtcbiAgICBkZWxldGUgdGhpcy5mZWUuaGVpZ2h0c1tjaGFpbl07XG4gICAgZGVsZXRlIHRoaXMuZmVlLmNvbmZpZ3NbY2hhaW5dO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiByZXR1cm5zIGdlbmVyYXRlZCBmZWVcbiAgICovXG4gIGdldENvbmZpZyA9ICgpOiBGZWUgPT4ge1xuICAgIHJldHVybiB0aGlzLmZlZTtcbiAgfTtcbn1cbiJdfQ==
@@ -13,6 +13,15 @@ export interface ChainFee {
13
13
  rsnRatioDivisor: bigint;
14
14
  feeRatio: bigint;
15
15
  }
16
+ export declare class ChainMinimumFee implements ChainFee {
17
+ bridgeFee: bigint;
18
+ networkFee: bigint;
19
+ rsnRatio: bigint;
20
+ rsnRatioDivisor: bigint;
21
+ feeRatio: bigint;
22
+ readonly feeRatioDivisor: bigint;
23
+ constructor(chainFee: ChainFee);
24
+ }
16
25
  export declare enum ErgoNetworkType {
17
26
  explorer = "explorer",
18
27
  node = "node"
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACnC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC;CACtC;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oBAAY,eAAe;IACzB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACnC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC;CACtC;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAU;gBAE9B,QAAQ,EAAE,QAAQ;CAO/B;AAED,oBAAY,eAAe;IACzB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd"}
package/dist/lib/types.js CHANGED
@@ -1,6 +1,21 @@
1
+ export class ChainMinimumFee {
2
+ bridgeFee;
3
+ networkFee;
4
+ rsnRatio;
5
+ rsnRatioDivisor;
6
+ feeRatio;
7
+ feeRatioDivisor = 10000n;
8
+ constructor(chainFee) {
9
+ this.bridgeFee = chainFee.bridgeFee;
10
+ this.networkFee = chainFee.networkFee;
11
+ this.rsnRatio = chainFee.rsnRatio;
12
+ this.rsnRatioDivisor = chainFee.rsnRatioDivisor;
13
+ this.feeRatio = chainFee.feeRatio;
14
+ }
15
+ }
1
16
  export var ErgoNetworkType;
2
17
  (function (ErgoNetworkType) {
3
18
  ErgoNetworkType["explorer"] = "explorer";
4
19
  ErgoNetworkType["node"] = "node";
5
20
  })(ErgoNetworkType || (ErgoNetworkType = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6Qix3Q0FBcUIsQ0FBQTtJQUNyQixnQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGZWUge1xuICBoZWlnaHRzOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9O1xuICBjb25maWdzOiB7IFtrZXk6IHN0cmluZ106IENoYWluRmVlIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhaW5GZWUge1xuICBicmlkZ2VGZWU6IGJpZ2ludDtcbiAgbmV0d29ya0ZlZTogYmlnaW50O1xuICByc25SYXRpbzogYmlnaW50O1xuICByc25SYXRpb0Rpdmlzb3I6IGJpZ2ludDtcbiAgZmVlUmF0aW86IGJpZ2ludDtcbn1cblxuZXhwb3J0IGVudW0gRXJnb05ldHdvcmtUeXBlIHtcbiAgZXhwbG9yZXIgPSAnZXhwbG9yZXInLFxuICBub2RlID0gJ25vZGUnLFxufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxPQUFPLGVBQWU7SUFDMUIsU0FBUyxDQUFTO0lBQ2xCLFVBQVUsQ0FBUztJQUNuQixRQUFRLENBQVM7SUFDakIsZUFBZSxDQUFTO0lBQ3hCLFFBQVEsQ0FBUztJQUNSLGVBQWUsR0FBVyxNQUFNLENBQUM7SUFFMUMsWUFBWSxRQUFrQjtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsd0NBQXFCLENBQUE7SUFDckIsZ0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmVlIHtcbiAgaGVpZ2h0czogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfTtcbiAgY29uZmlnczogeyBba2V5OiBzdHJpbmddOiBDaGFpbkZlZSB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYWluRmVlIHtcbiAgYnJpZGdlRmVlOiBiaWdpbnQ7XG4gIG5ldHdvcmtGZWU6IGJpZ2ludDtcbiAgcnNuUmF0aW86IGJpZ2ludDtcbiAgcnNuUmF0aW9EaXZpc29yOiBiaWdpbnQ7XG4gIGZlZVJhdGlvOiBiaWdpbnQ7XG59XG5cbmV4cG9ydCBjbGFzcyBDaGFpbk1pbmltdW1GZWUgaW1wbGVtZW50cyBDaGFpbkZlZSB7XG4gIGJyaWRnZUZlZTogYmlnaW50O1xuICBuZXR3b3JrRmVlOiBiaWdpbnQ7XG4gIHJzblJhdGlvOiBiaWdpbnQ7XG4gIHJzblJhdGlvRGl2aXNvcjogYmlnaW50O1xuICBmZWVSYXRpbzogYmlnaW50O1xuICByZWFkb25seSBmZWVSYXRpb0Rpdmlzb3I6IGJpZ2ludCA9IDEwMDAwbjtcblxuICBjb25zdHJ1Y3RvcihjaGFpbkZlZTogQ2hhaW5GZWUpIHtcbiAgICB0aGlzLmJyaWRnZUZlZSA9IGNoYWluRmVlLmJyaWRnZUZlZTtcbiAgICB0aGlzLm5ldHdvcmtGZWUgPSBjaGFpbkZlZS5uZXR3b3JrRmVlO1xuICAgIHRoaXMucnNuUmF0aW8gPSBjaGFpbkZlZS5yc25SYXRpbztcbiAgICB0aGlzLnJzblJhdGlvRGl2aXNvciA9IGNoYWluRmVlLnJzblJhdGlvRGl2aXNvcjtcbiAgICB0aGlzLmZlZVJhdGlvID0gY2hhaW5GZWUuZmVlUmF0aW87XG4gIH1cbn1cblxuZXhwb3J0IGVudW0gRXJnb05ldHdvcmtUeXBlIHtcbiAgZXhwbG9yZXIgPSAnZXhwbG9yZXInLFxuICBub2RlID0gJ25vZGUnLFxufVxuIl19