@imtbl/sdk 0.1.8-alpha.1 → 0.1.8-alpha.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/dist/index.cjs CHANGED
@@ -65,17 +65,17 @@ class ImmutableConfiguration {
65
65
  */
66
66
  // Some imports not used depending on template conditions
67
67
  // @ts-ignore
68
- const BASE_PATH = "https://indexer-mr.dev.imtbl.com".replace(/\/+$/, "");
68
+ const BASE_PATH$1 = "https://indexer-mr.dev.imtbl.com".replace(/\/+$/, "");
69
69
  /**
70
70
  *
71
71
  * @export
72
72
  * @class BaseAPI
73
73
  */
74
- class BaseAPI {
74
+ let BaseAPI$1 = class BaseAPI {
75
75
  basePath;
76
76
  axios;
77
77
  configuration;
78
- constructor(configuration, basePath = BASE_PATH, axios = globalAxios) {
78
+ constructor(configuration, basePath = BASE_PATH$1, axios = globalAxios) {
79
79
  this.basePath = basePath;
80
80
  this.axios = axios;
81
81
  if (configuration) {
@@ -83,21 +83,21 @@ class BaseAPI {
83
83
  this.basePath = configuration.basePath || this.basePath;
84
84
  }
85
85
  }
86
- }
86
+ };
87
87
  /**
88
88
  *
89
89
  * @export
90
90
  * @class RequiredError
91
91
  * @extends {Error}
92
92
  */
93
- class RequiredError extends Error {
93
+ let RequiredError$1 = class RequiredError extends Error {
94
94
  field;
95
95
  name = "RequiredError";
96
96
  constructor(field, msg) {
97
97
  super(msg);
98
98
  this.field = field;
99
99
  }
100
- }
100
+ };
101
101
 
102
102
  /* tslint:disable */
103
103
  /* eslint-disable */
@@ -116,24 +116,24 @@ class RequiredError extends Error {
116
116
  *
117
117
  * @export
118
118
  */
119
- const DUMMY_BASE_URL = 'https://example.com';
119
+ const DUMMY_BASE_URL$1 = 'https://example.com';
120
120
  /**
121
121
  *
122
122
  * @throws {RequiredError}
123
123
  * @export
124
124
  */
125
- const assertParamExists = function (functionName, paramName, paramValue) {
125
+ const assertParamExists$1 = function (functionName, paramName, paramValue) {
126
126
  if (paramValue === null || paramValue === undefined) {
127
- throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
127
+ throw new RequiredError$1(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
128
128
  }
129
129
  };
130
- function setFlattenedQueryParams(urlSearchParams, parameter, key = "") {
130
+ function setFlattenedQueryParams$1(urlSearchParams, parameter, key = "") {
131
131
  if (typeof parameter === "object") {
132
132
  if (Array.isArray(parameter)) {
133
- parameter.forEach(item => setFlattenedQueryParams(urlSearchParams, item, key));
133
+ parameter.forEach(item => setFlattenedQueryParams$1(urlSearchParams, item, key));
134
134
  }
135
135
  else {
136
- Object.keys(parameter).forEach(currentKey => setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`));
136
+ Object.keys(parameter).forEach(currentKey => setFlattenedQueryParams$1(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`));
137
137
  }
138
138
  }
139
139
  else {
@@ -149,23 +149,23 @@ function setFlattenedQueryParams(urlSearchParams, parameter, key = "") {
149
149
  *
150
150
  * @export
151
151
  */
152
- const setSearchParams = function (url, ...objects) {
152
+ const setSearchParams$1 = function (url, ...objects) {
153
153
  const searchParams = new URLSearchParams(url.search);
154
- setFlattenedQueryParams(searchParams, objects);
154
+ setFlattenedQueryParams$1(searchParams, objects);
155
155
  url.search = searchParams.toString();
156
156
  };
157
157
  /**
158
158
  *
159
159
  * @export
160
160
  */
161
- const toPathString = function (url) {
161
+ const toPathString$1 = function (url) {
162
162
  return url.pathname + url.search + url.hash;
163
163
  };
164
164
  /**
165
165
  *
166
166
  * @export
167
167
  */
168
- const createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {
168
+ const createRequestFunction$1 = function (axiosArgs, globalAxios, BASE_PATH, configuration) {
169
169
  return (axios = globalAxios, basePath = BASE_PATH) => {
170
170
  const axiosRequestArgs = { ...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url };
171
171
  return axios.request(axiosRequestArgs);
@@ -201,14 +201,14 @@ const ActivitiesApiAxiosParamCreator = function (configuration) {
201
201
  */
202
202
  getActivity: async (chainName, activityId, options = {}) => {
203
203
  // verify required parameter 'chainName' is not null or undefined
204
- assertParamExists('getActivity', 'chainName', chainName);
204
+ assertParamExists$1('getActivity', 'chainName', chainName);
205
205
  // verify required parameter 'activityId' is not null or undefined
206
- assertParamExists('getActivity', 'activityId', activityId);
206
+ assertParamExists$1('getActivity', 'activityId', activityId);
207
207
  const localVarPath = `/v1/chains/{chain_name}/activities/{activity_id}`
208
208
  .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)))
209
209
  .replace(`{${"activity_id"}}`, encodeURIComponent(String(activityId)));
210
210
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
211
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
211
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
212
212
  let baseOptions;
213
213
  if (configuration) {
214
214
  baseOptions = configuration.baseOptions;
@@ -216,11 +216,11 @@ const ActivitiesApiAxiosParamCreator = function (configuration) {
216
216
  const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
217
217
  const localVarHeaderParameter = {};
218
218
  const localVarQueryParameter = {};
219
- setSearchParams(localVarUrlObj, localVarQueryParameter);
219
+ setSearchParams$1(localVarUrlObj, localVarQueryParameter);
220
220
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
221
221
  localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
222
222
  return {
223
- url: toPathString(localVarUrlObj),
223
+ url: toPathString$1(localVarUrlObj),
224
224
  options: localVarRequestOptions,
225
225
  };
226
226
  },
@@ -242,11 +242,11 @@ const ActivitiesApiAxiosParamCreator = function (configuration) {
242
242
  */
243
243
  listActivities: async (chainName, contractAddress, tokenId, accountAddress, activityType, fromIndexedAt, toIndexedAt, transactionHash, pageCursor, pageSize, options = {}) => {
244
244
  // verify required parameter 'chainName' is not null or undefined
245
- assertParamExists('listActivities', 'chainName', chainName);
245
+ assertParamExists$1('listActivities', 'chainName', chainName);
246
246
  const localVarPath = `/v1/chains/{chain_name}/activities`
247
247
  .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)));
248
248
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
249
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
249
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
250
250
  let baseOptions;
251
251
  if (configuration) {
252
252
  baseOptions = configuration.baseOptions;
@@ -285,11 +285,11 @@ const ActivitiesApiAxiosParamCreator = function (configuration) {
285
285
  if (pageSize !== undefined) {
286
286
  localVarQueryParameter['page_size'] = pageSize;
287
287
  }
288
- setSearchParams(localVarUrlObj, localVarQueryParameter);
288
+ setSearchParams$1(localVarUrlObj, localVarQueryParameter);
289
289
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
290
290
  localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
291
291
  return {
292
- url: toPathString(localVarUrlObj),
292
+ url: toPathString$1(localVarUrlObj),
293
293
  options: localVarRequestOptions,
294
294
  };
295
295
  },
@@ -312,7 +312,7 @@ const ActivitiesApiFp = function (configuration) {
312
312
  */
313
313
  async getActivity(chainName, activityId, options) {
314
314
  const localVarAxiosArgs = await localVarAxiosParamCreator.getActivity(chainName, activityId, options);
315
- return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
315
+ return createRequestFunction$1(localVarAxiosArgs, globalAxios, BASE_PATH$1, configuration);
316
316
  },
317
317
  /**
318
318
  * List all activities
@@ -332,7 +332,7 @@ const ActivitiesApiFp = function (configuration) {
332
332
  */
333
333
  async listActivities(chainName, contractAddress, tokenId, accountAddress, activityType, fromIndexedAt, toIndexedAt, transactionHash, pageCursor, pageSize, options) {
334
334
  const localVarAxiosArgs = await localVarAxiosParamCreator.listActivities(chainName, contractAddress, tokenId, accountAddress, activityType, fromIndexedAt, toIndexedAt, transactionHash, pageCursor, pageSize, options);
335
- return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
335
+ return createRequestFunction$1(localVarAxiosArgs, globalAxios, BASE_PATH$1, configuration);
336
336
  },
337
337
  };
338
338
  };
@@ -342,7 +342,7 @@ const ActivitiesApiFp = function (configuration) {
342
342
  * @class ActivitiesApi
343
343
  * @extends {BaseAPI}
344
344
  */
345
- class ActivitiesApi extends BaseAPI {
345
+ class ActivitiesApi extends BaseAPI$1 {
346
346
  /**
347
347
  * Get a single activity by ID
348
348
  * @summary Get a single activity by ID
@@ -397,7 +397,7 @@ const ChainsApiAxiosParamCreator = function (configuration) {
397
397
  listChains: async (pageCursor, pageSize, options = {}) => {
398
398
  const localVarPath = `/v1/chains`;
399
399
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
400
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
400
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
401
401
  let baseOptions;
402
402
  if (configuration) {
403
403
  baseOptions = configuration.baseOptions;
@@ -411,11 +411,11 @@ const ChainsApiAxiosParamCreator = function (configuration) {
411
411
  if (pageSize !== undefined) {
412
412
  localVarQueryParameter['page_size'] = pageSize;
413
413
  }
414
- setSearchParams(localVarUrlObj, localVarQueryParameter);
414
+ setSearchParams$1(localVarUrlObj, localVarQueryParameter);
415
415
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
416
416
  localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
417
417
  return {
418
- url: toPathString(localVarUrlObj),
418
+ url: toPathString$1(localVarUrlObj),
419
419
  options: localVarRequestOptions,
420
420
  };
421
421
  },
@@ -438,7 +438,7 @@ const ChainsApiFp = function (configuration) {
438
438
  */
439
439
  async listChains(pageCursor, pageSize, options) {
440
440
  const localVarAxiosArgs = await localVarAxiosParamCreator.listChains(pageCursor, pageSize, options);
441
- return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
441
+ return createRequestFunction$1(localVarAxiosArgs, globalAxios, BASE_PATH$1, configuration);
442
442
  },
443
443
  };
444
444
  };
@@ -448,7 +448,7 @@ const ChainsApiFp = function (configuration) {
448
448
  * @class ChainsApi
449
449
  * @extends {BaseAPI}
450
450
  */
451
- class ChainsApi extends BaseAPI {
451
+ class ChainsApi extends BaseAPI$1 {
452
452
  /**
453
453
  * List supported chains
454
454
  * @summary List supported chains
@@ -491,14 +491,14 @@ const CollectionsApiAxiosParamCreator = function (configuration) {
491
491
  */
492
492
  getCollection: async (contractAddress, chainName, options = {}) => {
493
493
  // verify required parameter 'contractAddress' is not null or undefined
494
- assertParamExists('getCollection', 'contractAddress', contractAddress);
494
+ assertParamExists$1('getCollection', 'contractAddress', contractAddress);
495
495
  // verify required parameter 'chainName' is not null or undefined
496
- assertParamExists('getCollection', 'chainName', chainName);
496
+ assertParamExists$1('getCollection', 'chainName', chainName);
497
497
  const localVarPath = `/v1/chains/{chain_name}/collections/{contract_address}`
498
498
  .replace(`{${"contract_address"}}`, encodeURIComponent(String(contractAddress)))
499
499
  .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)));
500
500
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
501
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
501
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
502
502
  let baseOptions;
503
503
  if (configuration) {
504
504
  baseOptions = configuration.baseOptions;
@@ -506,11 +506,11 @@ const CollectionsApiAxiosParamCreator = function (configuration) {
506
506
  const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
507
507
  const localVarHeaderParameter = {};
508
508
  const localVarQueryParameter = {};
509
- setSearchParams(localVarUrlObj, localVarQueryParameter);
509
+ setSearchParams$1(localVarUrlObj, localVarQueryParameter);
510
510
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
511
511
  localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
512
512
  return {
513
- url: toPathString(localVarUrlObj),
513
+ url: toPathString$1(localVarUrlObj),
514
514
  options: localVarRequestOptions,
515
515
  };
516
516
  },
@@ -525,11 +525,11 @@ const CollectionsApiAxiosParamCreator = function (configuration) {
525
525
  */
526
526
  listCollections: async (chainName, pageCursor, pageSize, options = {}) => {
527
527
  // verify required parameter 'chainName' is not null or undefined
528
- assertParamExists('listCollections', 'chainName', chainName);
528
+ assertParamExists$1('listCollections', 'chainName', chainName);
529
529
  const localVarPath = `/v1/chains/{chain_name}/collections`
530
530
  .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)));
531
531
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
532
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
532
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
533
533
  let baseOptions;
534
534
  if (configuration) {
535
535
  baseOptions = configuration.baseOptions;
@@ -543,11 +543,11 @@ const CollectionsApiAxiosParamCreator = function (configuration) {
543
543
  if (pageSize !== undefined) {
544
544
  localVarQueryParameter['page_size'] = pageSize;
545
545
  }
546
- setSearchParams(localVarUrlObj, localVarQueryParameter);
546
+ setSearchParams$1(localVarUrlObj, localVarQueryParameter);
547
547
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
548
548
  localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
549
549
  return {
550
- url: toPathString(localVarUrlObj),
550
+ url: toPathString$1(localVarUrlObj),
551
551
  options: localVarRequestOptions,
552
552
  };
553
553
  },
@@ -570,7 +570,7 @@ const CollectionsApiFp = function (configuration) {
570
570
  */
571
571
  async getCollection(contractAddress, chainName, options) {
572
572
  const localVarAxiosArgs = await localVarAxiosParamCreator.getCollection(contractAddress, chainName, options);
573
- return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
573
+ return createRequestFunction$1(localVarAxiosArgs, globalAxios, BASE_PATH$1, configuration);
574
574
  },
575
575
  /**
576
576
  * List all collections
@@ -583,7 +583,7 @@ const CollectionsApiFp = function (configuration) {
583
583
  */
584
584
  async listCollections(chainName, pageCursor, pageSize, options) {
585
585
  const localVarAxiosArgs = await localVarAxiosParamCreator.listCollections(chainName, pageCursor, pageSize, options);
586
- return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
586
+ return createRequestFunction$1(localVarAxiosArgs, globalAxios, BASE_PATH$1, configuration);
587
587
  },
588
588
  };
589
589
  };
@@ -593,7 +593,7 @@ const CollectionsApiFp = function (configuration) {
593
593
  * @class CollectionsApi
594
594
  * @extends {BaseAPI}
595
595
  */
596
- class CollectionsApi extends BaseAPI {
596
+ class CollectionsApi extends BaseAPI$1 {
597
597
  /**
598
598
  * Get collection by contract address
599
599
  * @summary Get collection by contract address
@@ -650,17 +650,17 @@ const NftOwnersApiAxiosParamCreator = function (configuration) {
650
650
  */
651
651
  listNFTOwners: async (contractAddress, tokenId, chainName, pageCursor, pageSize, options = {}) => {
652
652
  // verify required parameter 'contractAddress' is not null or undefined
653
- assertParamExists('listNFTOwners', 'contractAddress', contractAddress);
653
+ assertParamExists$1('listNFTOwners', 'contractAddress', contractAddress);
654
654
  // verify required parameter 'tokenId' is not null or undefined
655
- assertParamExists('listNFTOwners', 'tokenId', tokenId);
655
+ assertParamExists$1('listNFTOwners', 'tokenId', tokenId);
656
656
  // verify required parameter 'chainName' is not null or undefined
657
- assertParamExists('listNFTOwners', 'chainName', chainName);
657
+ assertParamExists$1('listNFTOwners', 'chainName', chainName);
658
658
  const localVarPath = `/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners`
659
659
  .replace(`{${"contract_address"}}`, encodeURIComponent(String(contractAddress)))
660
660
  .replace(`{${"token_id"}}`, encodeURIComponent(String(tokenId)))
661
661
  .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)));
662
662
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
663
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
663
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
664
664
  let baseOptions;
665
665
  if (configuration) {
666
666
  baseOptions = configuration.baseOptions;
@@ -674,11 +674,11 @@ const NftOwnersApiAxiosParamCreator = function (configuration) {
674
674
  if (pageSize !== undefined) {
675
675
  localVarQueryParameter['page_size'] = pageSize;
676
676
  }
677
- setSearchParams(localVarUrlObj, localVarQueryParameter);
677
+ setSearchParams$1(localVarUrlObj, localVarQueryParameter);
678
678
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
679
679
  localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
680
680
  return {
681
- url: toPathString(localVarUrlObj),
681
+ url: toPathString$1(localVarUrlObj),
682
682
  options: localVarRequestOptions,
683
683
  };
684
684
  },
@@ -704,7 +704,7 @@ const NftOwnersApiFp = function (configuration) {
704
704
  */
705
705
  async listNFTOwners(contractAddress, tokenId, chainName, pageCursor, pageSize, options) {
706
706
  const localVarAxiosArgs = await localVarAxiosParamCreator.listNFTOwners(contractAddress, tokenId, chainName, pageCursor, pageSize, options);
707
- return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
707
+ return createRequestFunction$1(localVarAxiosArgs, globalAxios, BASE_PATH$1, configuration);
708
708
  },
709
709
  };
710
710
  };
@@ -714,7 +714,7 @@ const NftOwnersApiFp = function (configuration) {
714
714
  * @class NftOwnersApi
715
715
  * @extends {BaseAPI}
716
716
  */
717
- class NftOwnersApi extends BaseAPI {
717
+ class NftOwnersApi extends BaseAPI$1 {
718
718
  /**
719
719
  * List NFT owners by token ID
720
720
  * @summary List NFT owners by token ID
@@ -758,17 +758,17 @@ const NftsApiAxiosParamCreator = function (configuration) {
758
758
  */
759
759
  getNFT: async (contractAddress, tokenId, chainName, options = {}) => {
760
760
  // verify required parameter 'contractAddress' is not null or undefined
761
- assertParamExists('getNFT', 'contractAddress', contractAddress);
761
+ assertParamExists$1('getNFT', 'contractAddress', contractAddress);
762
762
  // verify required parameter 'tokenId' is not null or undefined
763
- assertParamExists('getNFT', 'tokenId', tokenId);
763
+ assertParamExists$1('getNFT', 'tokenId', tokenId);
764
764
  // verify required parameter 'chainName' is not null or undefined
765
- assertParamExists('getNFT', 'chainName', chainName);
765
+ assertParamExists$1('getNFT', 'chainName', chainName);
766
766
  const localVarPath = `/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}`
767
767
  .replace(`{${"contract_address"}}`, encodeURIComponent(String(contractAddress)))
768
768
  .replace(`{${"token_id"}}`, encodeURIComponent(String(tokenId)))
769
769
  .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)));
770
770
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
771
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
771
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
772
772
  let baseOptions;
773
773
  if (configuration) {
774
774
  baseOptions = configuration.baseOptions;
@@ -776,11 +776,11 @@ const NftsApiAxiosParamCreator = function (configuration) {
776
776
  const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
777
777
  const localVarHeaderParameter = {};
778
778
  const localVarQueryParameter = {};
779
- setSearchParams(localVarUrlObj, localVarQueryParameter);
779
+ setSearchParams$1(localVarUrlObj, localVarQueryParameter);
780
780
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
781
781
  localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
782
782
  return {
783
- url: toPathString(localVarUrlObj),
783
+ url: toPathString$1(localVarUrlObj),
784
784
  options: localVarRequestOptions,
785
785
  };
786
786
  },
@@ -796,14 +796,14 @@ const NftsApiAxiosParamCreator = function (configuration) {
796
796
  */
797
797
  listNFTs: async (contractAddress, chainName, pageCursor, pageSize, options = {}) => {
798
798
  // verify required parameter 'contractAddress' is not null or undefined
799
- assertParamExists('listNFTs', 'contractAddress', contractAddress);
799
+ assertParamExists$1('listNFTs', 'contractAddress', contractAddress);
800
800
  // verify required parameter 'chainName' is not null or undefined
801
- assertParamExists('listNFTs', 'chainName', chainName);
801
+ assertParamExists$1('listNFTs', 'chainName', chainName);
802
802
  const localVarPath = `/v1/chains/{chain_name}/collections/{contract_address}/nfts`
803
803
  .replace(`{${"contract_address"}}`, encodeURIComponent(String(contractAddress)))
804
804
  .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)));
805
805
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
806
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
806
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
807
807
  let baseOptions;
808
808
  if (configuration) {
809
809
  baseOptions = configuration.baseOptions;
@@ -817,11 +817,11 @@ const NftsApiAxiosParamCreator = function (configuration) {
817
817
  if (pageSize !== undefined) {
818
818
  localVarQueryParameter['page_size'] = pageSize;
819
819
  }
820
- setSearchParams(localVarUrlObj, localVarQueryParameter);
820
+ setSearchParams$1(localVarUrlObj, localVarQueryParameter);
821
821
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
822
822
  localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
823
823
  return {
824
- url: toPathString(localVarUrlObj),
824
+ url: toPathString$1(localVarUrlObj),
825
825
  options: localVarRequestOptions,
826
826
  };
827
827
  },
@@ -838,14 +838,14 @@ const NftsApiAxiosParamCreator = function (configuration) {
838
838
  */
839
839
  listNFTsByAccountAddress: async (accountAddress, chainName, contractAddress, pageCursor, pageSize, options = {}) => {
840
840
  // verify required parameter 'accountAddress' is not null or undefined
841
- assertParamExists('listNFTsByAccountAddress', 'accountAddress', accountAddress);
841
+ assertParamExists$1('listNFTsByAccountAddress', 'accountAddress', accountAddress);
842
842
  // verify required parameter 'chainName' is not null or undefined
843
- assertParamExists('listNFTsByAccountAddress', 'chainName', chainName);
843
+ assertParamExists$1('listNFTsByAccountAddress', 'chainName', chainName);
844
844
  const localVarPath = `/v1/chains/{chain_name}/accounts/{account_address}/nfts`
845
845
  .replace(`{${"account_address"}}`, encodeURIComponent(String(accountAddress)))
846
846
  .replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)));
847
847
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
848
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
848
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
849
849
  let baseOptions;
850
850
  if (configuration) {
851
851
  baseOptions = configuration.baseOptions;
@@ -862,11 +862,11 @@ const NftsApiAxiosParamCreator = function (configuration) {
862
862
  if (pageSize !== undefined) {
863
863
  localVarQueryParameter['page_size'] = pageSize;
864
864
  }
865
- setSearchParams(localVarUrlObj, localVarQueryParameter);
865
+ setSearchParams$1(localVarUrlObj, localVarQueryParameter);
866
866
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
867
867
  localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
868
868
  return {
869
- url: toPathString(localVarUrlObj),
869
+ url: toPathString$1(localVarUrlObj),
870
870
  options: localVarRequestOptions,
871
871
  };
872
872
  },
@@ -890,7 +890,7 @@ const NftsApiFp = function (configuration) {
890
890
  */
891
891
  async getNFT(contractAddress, tokenId, chainName, options) {
892
892
  const localVarAxiosArgs = await localVarAxiosParamCreator.getNFT(contractAddress, tokenId, chainName, options);
893
- return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
893
+ return createRequestFunction$1(localVarAxiosArgs, globalAxios, BASE_PATH$1, configuration);
894
894
  },
895
895
  /**
896
896
  * List NFTs by contract address
@@ -904,7 +904,7 @@ const NftsApiFp = function (configuration) {
904
904
  */
905
905
  async listNFTs(contractAddress, chainName, pageCursor, pageSize, options) {
906
906
  const localVarAxiosArgs = await localVarAxiosParamCreator.listNFTs(contractAddress, chainName, pageCursor, pageSize, options);
907
- return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
907
+ return createRequestFunction$1(localVarAxiosArgs, globalAxios, BASE_PATH$1, configuration);
908
908
  },
909
909
  /**
910
910
  * List NFTs by account address
@@ -919,7 +919,7 @@ const NftsApiFp = function (configuration) {
919
919
  */
920
920
  async listNFTsByAccountAddress(accountAddress, chainName, contractAddress, pageCursor, pageSize, options) {
921
921
  const localVarAxiosArgs = await localVarAxiosParamCreator.listNFTsByAccountAddress(accountAddress, chainName, contractAddress, pageCursor, pageSize, options);
922
- return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
922
+ return createRequestFunction$1(localVarAxiosArgs, globalAxios, BASE_PATH$1, configuration);
923
923
  },
924
924
  };
925
925
  };
@@ -929,7 +929,7 @@ const NftsApiFp = function (configuration) {
929
929
  * @class NftsApi
930
930
  * @extends {BaseAPI}
931
931
  */
932
- class NftsApi extends BaseAPI {
932
+ class NftsApi extends BaseAPI$1 {
933
933
  /**
934
934
  * Get NFT by token ID
935
935
  * @summary Get NFT by token ID
@@ -978,7 +978,7 @@ class NftsApi extends BaseAPI {
978
978
  * https://openapi-generator.tech
979
979
  * Do not edit the class manually.
980
980
  */
981
- class Configuration {
981
+ let Configuration$1 = class Configuration {
982
982
  /**
983
983
  * parameter for apiKey security
984
984
  * @param name security name
@@ -1051,7 +1051,7 @@ class Configuration {
1051
1051
  const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
1052
1052
  return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
1053
1053
  }
1054
- }
1054
+ };
1055
1055
 
1056
1056
  /**
1057
1057
  * Custom Error class that is returned from the API when a request fails
@@ -1087,7 +1087,7 @@ const createAPIConfiguration = ({ basePath, headers: baseHeaders, }) => {
1087
1087
  basePath,
1088
1088
  baseOptions: { headers },
1089
1089
  };
1090
- return new Configuration(configParams);
1090
+ return new Configuration$1(configParams);
1091
1091
  };
1092
1092
  const production$1 = () => createAPIConfiguration({
1093
1093
  basePath: 'https://indexer-mr.dev.imtbl.com/v1', // TODO update before mainnet release
@@ -1883,186 +1883,606 @@ function convertToSignableToken(token) {
1883
1883
  }
1884
1884
  }
1885
1885
 
1886
- var PassportErrorType;
1887
- (function (PassportErrorType) {
1888
- PassportErrorType["AUTHENTICATION_ERROR"] = "AUTHENTICATION_ERROR";
1889
- PassportErrorType["INVALID_CONFIGURATION"] = "INVALID_CONFIGURATION";
1890
- PassportErrorType["WALLET_CONNECTION_ERROR"] = "WALLET_CONNECTION_ERROR";
1891
- PassportErrorType["NOT_LOGGED_IN_ERROR"] = "NOT_LOGGED_IN_ERROR";
1892
- PassportErrorType["SILENT_LOGIN_ERROR"] = "SILENT_LOGIN_ERROR";
1893
- PassportErrorType["REFRESH_TOKEN_ERROR"] = "REFRESH_TOKEN_ERROR";
1894
- PassportErrorType["USER_REGISTRATION_ERROR"] = "USER_REGISTRATION_ERROR";
1895
- PassportErrorType["LOGOUT_ERROR"] = "LOGOUT_ERROR";
1896
- PassportErrorType["TRANSFER_ERROR"] = "TRANSFER_ERROR";
1897
- PassportErrorType["CREATE_ORDER_ERROR"] = "CREATE_ORDER_ERROR";
1898
- PassportErrorType["CANCEL_ORDER_ERROR"] = "CANCEL_ORDER_ERROR";
1899
- PassportErrorType["EXCHANGE_TRANSFER_ERROR"] = "EXCHANGE_TRANSFER_ERROR";
1900
- PassportErrorType["CREATE_TRADE_ERROR"] = "CREATE_TRADE_ERROR";
1901
- PassportErrorType["OPERATION_NOT_SUPPORTED_ERROR"] = "OPERATION_NOT_SUPPORTED_ERROR";
1902
- })(PassportErrorType || (PassportErrorType = {}));
1903
- class PassportError extends Error {
1904
- type;
1905
- constructor(message, type) {
1906
- super(message);
1907
- this.type = type;
1886
+ /* tslint:disable */
1887
+ /* eslint-disable */
1888
+ /**
1889
+ * Swagger Guardian
1890
+ * Guardian API
1891
+ *
1892
+ * The version of the OpenAPI document: 1.0.0
1893
+ * Contact: support@immutable.com
1894
+ *
1895
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1896
+ * https://openapi-generator.tech
1897
+ * Do not edit the class manually.
1898
+ */
1899
+ const BASE_PATH = "http://guardian.sandbox.imtbl.com".replace(/\/+$/, "");
1900
+ /**
1901
+ *
1902
+ * @export
1903
+ * @class BaseAPI
1904
+ */
1905
+ class BaseAPI {
1906
+ basePath;
1907
+ axios;
1908
+ configuration;
1909
+ constructor(configuration, basePath = BASE_PATH, axios = globalAxios) {
1910
+ this.basePath = basePath;
1911
+ this.axios = axios;
1912
+ if (configuration) {
1913
+ this.configuration = configuration;
1914
+ this.basePath = configuration.basePath || this.basePath;
1915
+ }
1908
1916
  }
1909
1917
  }
1910
- const withPassportError = async (fn, customErrorType) => {
1911
- try {
1912
- return await fn();
1918
+ /**
1919
+ *
1920
+ * @export
1921
+ * @class RequiredError
1922
+ * @extends {Error}
1923
+ */
1924
+ class RequiredError extends Error {
1925
+ field;
1926
+ constructor(field, msg) {
1927
+ super(msg);
1928
+ this.field = field;
1929
+ this.name = "RequiredError";
1913
1930
  }
1914
- catch (error) {
1915
- const errorMessage = `${customErrorType}: ${error.message}` || 'UnknownError';
1916
- throw new PassportError(errorMessage, customErrorType);
1931
+ }
1932
+
1933
+ /* tslint:disable */
1934
+ /* eslint-disable */
1935
+ /**
1936
+ * Swagger Guardian
1937
+ * Guardian API
1938
+ *
1939
+ * The version of the OpenAPI document: 1.0.0
1940
+ * Contact: support@immutable.com
1941
+ *
1942
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1943
+ * https://openapi-generator.tech
1944
+ * Do not edit the class manually.
1945
+ */
1946
+ /**
1947
+ *
1948
+ * @export
1949
+ */
1950
+ const DUMMY_BASE_URL = 'https://example.com';
1951
+ /**
1952
+ *
1953
+ * @throws {RequiredError}
1954
+ * @export
1955
+ */
1956
+ const assertParamExists = function (functionName, paramName, paramValue) {
1957
+ if (paramValue === null || paramValue === undefined) {
1958
+ throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
1917
1959
  }
1918
1960
  };
1919
-
1920
- const POLL_INTERVAL = 1 * 1000; // every 1 second
1921
- const MAX_RETRIES = 3;
1922
- const wait = (ms) => new Promise((resolve) => {
1923
- setTimeout(() => resolve(), ms);
1924
- });
1925
- const retryWithDelay = async (fn, options) => {
1926
- const { retries = MAX_RETRIES, interval = POLL_INTERVAL, finalErr = Error('Retry failed'), } = options || {};
1927
- try {
1928
- return await fn();
1961
+ /**
1962
+ *
1963
+ * @export
1964
+ */
1965
+ const setBearerAuthToObject = async function (object, configuration) {
1966
+ if (configuration && configuration.accessToken) {
1967
+ const accessToken = typeof configuration.accessToken === 'function'
1968
+ ? await configuration.accessToken()
1969
+ : await configuration.accessToken;
1970
+ object["Authorization"] = "Bearer " + accessToken;
1929
1971
  }
1930
- catch (err) {
1931
- if (retries <= 0) {
1932
- return Promise.reject(finalErr);
1972
+ };
1973
+ function setFlattenedQueryParams(urlSearchParams, parameter, key = "") {
1974
+ if (parameter == null)
1975
+ return;
1976
+ if (typeof parameter === "object") {
1977
+ if (Array.isArray(parameter)) {
1978
+ parameter.forEach(item => setFlattenedQueryParams(urlSearchParams, item, key));
1979
+ }
1980
+ else {
1981
+ Object.keys(parameter).forEach(currentKey => setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`));
1933
1982
  }
1934
- await wait(interval);
1935
- return retryWithDelay(fn, { retries: retries - 1, finalErr });
1936
1983
  }
1937
- };
1938
-
1939
- const getAuthConfiguration = ({ oidcConfiguration, authenticationDomain, }) => {
1940
- const baseConfiguration = {
1941
- authority: authenticationDomain,
1942
- redirect_uri: oidcConfiguration.redirectUri,
1943
- popup_redirect_uri: oidcConfiguration.redirectUri,
1944
- client_id: oidcConfiguration.clientId,
1945
- metadata: {
1946
- authorization_endpoint: `${authenticationDomain}/authorize`,
1947
- token_endpoint: `${authenticationDomain}/oauth/token`,
1948
- userinfo_endpoint: `${authenticationDomain}/userinfo`,
1949
- end_session_endpoint: `${authenticationDomain}/v2/logout`
1950
- + `?returnTo=${encodeURIComponent(oidcConfiguration.logoutRedirectUri)}`
1951
- + `&client_id=${oidcConfiguration.clientId}`,
1952
- },
1953
- mergeClaims: true,
1954
- loadUserInfo: true,
1955
- scope: oidcConfiguration.scope,
1956
- };
1957
- if (oidcConfiguration.audience) {
1958
- baseConfiguration.extraQueryParams = {
1959
- audience: oidcConfiguration.audience,
1960
- };
1984
+ else {
1985
+ if (urlSearchParams.has(key)) {
1986
+ urlSearchParams.append(key, parameter);
1987
+ }
1988
+ else {
1989
+ urlSearchParams.set(key, parameter);
1990
+ }
1961
1991
  }
1962
- return baseConfiguration;
1992
+ }
1993
+ /**
1994
+ *
1995
+ * @export
1996
+ */
1997
+ const setSearchParams = function (url, ...objects) {
1998
+ const searchParams = new URLSearchParams(url.search);
1999
+ setFlattenedQueryParams(searchParams, objects);
2000
+ url.search = searchParams.toString();
1963
2001
  };
1964
- class AuthManager {
1965
- userManager;
1966
- config;
1967
- constructor(config) {
1968
- this.config = config;
1969
- this.userManager = new oidcClientTs.UserManager(getAuthConfiguration(config));
1970
- }
1971
- static mapOidcUserToDomainModel = (oidcUser) => {
1972
- const passport = oidcUser.profile?.passport;
1973
- return {
1974
- expired: oidcUser.expired,
1975
- idToken: oidcUser.id_token,
1976
- accessToken: oidcUser.access_token,
1977
- refreshToken: oidcUser.refresh_token,
1978
- profile: {
1979
- sub: oidcUser.profile.sub,
1980
- email: oidcUser.profile.email,
1981
- nickname: oidcUser.profile.nickname,
1982
- },
1983
- etherKey: passport?.ether_key || '',
1984
- };
2002
+ /**
2003
+ *
2004
+ * @export
2005
+ */
2006
+ const toPathString = function (url) {
2007
+ return url.pathname + url.search + url.hash;
2008
+ };
2009
+ /**
2010
+ *
2011
+ * @export
2012
+ */
2013
+ const createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {
2014
+ return (axios = globalAxios, basePath = BASE_PATH) => {
2015
+ const axiosRequestArgs = { ...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url };
2016
+ return axios.request(axiosRequestArgs);
1985
2017
  };
1986
- async login() {
1987
- return withPassportError(async () => {
1988
- const popupWindowFeatures = { width: 410, height: 450 };
1989
- const oidcUser = await this.userManager.signinPopup({
1990
- popupWindowFeatures,
1991
- });
1992
- return AuthManager.mapOidcUserToDomainModel(oidcUser);
1993
- }, PassportErrorType.AUTHENTICATION_ERROR);
1994
- }
1995
- async loginCallback() {
1996
- return withPassportError(async () => this.userManager.signinPopupCallback(), PassportErrorType.AUTHENTICATION_ERROR);
1997
- }
1998
- async logout() {
1999
- return withPassportError(async () => this.userManager.signoutRedirect(), PassportErrorType.LOGOUT_ERROR);
2000
- }
2001
- async loginSilent() {
2002
- return withPassportError(async () => {
2003
- const existedUser = await this.getUser();
2004
- if (!existedUser) {
2005
- return null;
2006
- }
2007
- const oidcUser = await this.userManager.signinSilent();
2008
- if (!oidcUser) {
2009
- return null;
2018
+ };
2019
+
2020
+ /* tslint:disable */
2021
+ /* eslint-disable */
2022
+ /**
2023
+ * Swagger Guardian
2024
+ * Guardian API
2025
+ *
2026
+ * The version of the OpenAPI document: 1.0.0
2027
+ * Contact: support@immutable.com
2028
+ *
2029
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2030
+ * https://openapi-generator.tech
2031
+ * Do not edit the class manually.
2032
+ */
2033
+ /**
2034
+ * StarkexTransactionsApi - axios parameter creator
2035
+ * @export
2036
+ */
2037
+ const StarkexTransactionsApiAxiosParamCreator = function (configuration) {
2038
+ return {
2039
+ /**
2040
+ * Check if it is a valid transaction by payload hash
2041
+ * @summary Evaluate if it is an valid transaction
2042
+ * @param {string} payloadHash Hash for the payload
2043
+ * @param {*} [options] Override http request option.
2044
+ * @throws {RequiredError}
2045
+ */
2046
+ evaluateStarkexTransaction: async (payloadHash, options = {}) => {
2047
+ // verify required parameter 'payloadHash' is not null or undefined
2048
+ assertParamExists('evaluateStarkexTransaction', 'payloadHash', payloadHash);
2049
+ const localVarPath = `/guardian/v1/starkex/evaluate/{payloadHash}`
2050
+ .replace(`{${"payloadHash"}}`, encodeURIComponent(String(payloadHash)));
2051
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2052
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2053
+ let baseOptions;
2054
+ if (configuration) {
2055
+ baseOptions = configuration.baseOptions;
2010
2056
  }
2011
- return AuthManager.mapOidcUserToDomainModel(oidcUser);
2012
- }, PassportErrorType.SILENT_LOGIN_ERROR);
2057
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
2058
+ const localVarHeaderParameter = {};
2059
+ const localVarQueryParameter = {};
2060
+ // authentication BearerAuth required
2061
+ // http bearer authentication required
2062
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
2063
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2064
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2065
+ localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
2066
+ return {
2067
+ url: toPathString(localVarUrlObj),
2068
+ options: localVarRequestOptions,
2069
+ };
2070
+ },
2071
+ };
2072
+ };
2073
+ /**
2074
+ * StarkexTransactionsApi - functional programming interface
2075
+ * @export
2076
+ */
2077
+ const StarkexTransactionsApiFp = function (configuration) {
2078
+ const localVarAxiosParamCreator = StarkexTransactionsApiAxiosParamCreator(configuration);
2079
+ return {
2080
+ /**
2081
+ * Check if it is a valid transaction by payload hash
2082
+ * @summary Evaluate if it is an valid transaction
2083
+ * @param {string} payloadHash Hash for the payload
2084
+ * @param {*} [options] Override http request option.
2085
+ * @throws {RequiredError}
2086
+ */
2087
+ async evaluateStarkexTransaction(payloadHash, options) {
2088
+ const localVarAxiosArgs = await localVarAxiosParamCreator.evaluateStarkexTransaction(payloadHash, options);
2089
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
2090
+ },
2091
+ };
2092
+ };
2093
+ /**
2094
+ * StarkexTransactionsApi - object-oriented interface
2095
+ * @export
2096
+ * @class StarkexTransactionsApi
2097
+ * @extends {BaseAPI}
2098
+ */
2099
+ class StarkexTransactionsApi extends BaseAPI {
2100
+ /**
2101
+ * Check if it is a valid transaction by payload hash
2102
+ * @summary Evaluate if it is an valid transaction
2103
+ * @param {StarkexTransactionsApiEvaluateStarkexTransactionRequest} requestParameters Request parameters.
2104
+ * @param {*} [options] Override http request option.
2105
+ * @throws {RequiredError}
2106
+ * @memberof StarkexTransactionsApi
2107
+ */
2108
+ evaluateStarkexTransaction(requestParameters, options) {
2109
+ return StarkexTransactionsApiFp(this.configuration).evaluateStarkexTransaction(requestParameters.payloadHash, options).then((request) => request(this.axios, this.basePath));
2013
2110
  }
2014
- async getUser() {
2015
- return withPassportError(async () => {
2016
- const oidcUser = await this.userManager.getUser();
2017
- if (!oidcUser) {
2018
- return null;
2111
+ }
2112
+
2113
+ /* tslint:disable */
2114
+ /* eslint-disable */
2115
+ /**
2116
+ * Swagger Guardian
2117
+ * Guardian API
2118
+ *
2119
+ * The version of the OpenAPI document: 1.0.0
2120
+ * Contact: support@immutable.com
2121
+ *
2122
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2123
+ * https://openapi-generator.tech
2124
+ * Do not edit the class manually.
2125
+ */
2126
+ /**
2127
+ * TransactionsApi - axios parameter creator
2128
+ * @export
2129
+ */
2130
+ const TransactionsApiAxiosParamCreator = function (configuration) {
2131
+ return {
2132
+ /**
2133
+ * Get a transaction by payload hash
2134
+ * @summary Info for a specific transaction
2135
+ * @param {string} transactionID The id of the starkex transaction to retrieve
2136
+ * @param {string} chainType roll up type
2137
+ * @param {number} [chainID] ID of evm chain
2138
+ * @param {*} [options] Override http request option.
2139
+ * @throws {RequiredError}
2140
+ */
2141
+ getTransactionByID: async (transactionID, chainType, chainID, options = {}) => {
2142
+ // verify required parameter 'transactionID' is not null or undefined
2143
+ assertParamExists('getTransactionByID', 'transactionID', transactionID);
2144
+ // verify required parameter 'chainType' is not null or undefined
2145
+ assertParamExists('getTransactionByID', 'chainType', chainType);
2146
+ const localVarPath = `/guardian/v1/transactions/{transactionID}`
2147
+ .replace(`{${"transactionID"}}`, encodeURIComponent(String(transactionID)));
2148
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
2149
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
2150
+ let baseOptions;
2151
+ if (configuration) {
2152
+ baseOptions = configuration.baseOptions;
2019
2153
  }
2020
- return AuthManager.mapOidcUserToDomainModel(oidcUser);
2021
- }, PassportErrorType.NOT_LOGGED_IN_ERROR);
2022
- }
2023
- async requestRefreshTokenAfterRegistration() {
2024
- return withPassportError(async () => {
2025
- const updatedUser = await retryWithDelay(async () => {
2026
- const user = await this.userManager.signinSilent();
2027
- const passportMetadata = user?.profile?.passport;
2028
- const metadataExists = !!passportMetadata?.ether_key
2029
- && !!passportMetadata?.stark_key
2030
- && !!passportMetadata?.user_admin_key;
2031
- if (metadataExists) {
2032
- return user;
2033
- }
2034
- return Promise.reject(new Error('user wallet addresses not exist'));
2035
- });
2036
- if (!updatedUser) {
2037
- return null;
2154
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
2155
+ const localVarHeaderParameter = {};
2156
+ const localVarQueryParameter = {};
2157
+ // authentication BearerAuth required
2158
+ // http bearer authentication required
2159
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
2160
+ if (chainType !== undefined) {
2161
+ localVarQueryParameter['chainType'] = chainType;
2038
2162
  }
2039
- return AuthManager.mapOidcUserToDomainModel(updatedUser);
2040
- }, PassportErrorType.REFRESH_TOKEN_ERROR);
2163
+ if (chainID !== undefined) {
2164
+ localVarQueryParameter['chainID'] = chainID;
2165
+ }
2166
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
2167
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2168
+ localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
2169
+ return {
2170
+ url: toPathString(localVarUrlObj),
2171
+ options: localVarRequestOptions,
2172
+ };
2173
+ },
2174
+ };
2175
+ };
2176
+ /**
2177
+ * TransactionsApi - functional programming interface
2178
+ * @export
2179
+ */
2180
+ const TransactionsApiFp = function (configuration) {
2181
+ const localVarAxiosParamCreator = TransactionsApiAxiosParamCreator(configuration);
2182
+ return {
2183
+ /**
2184
+ * Get a transaction by payload hash
2185
+ * @summary Info for a specific transaction
2186
+ * @param {string} transactionID The id of the starkex transaction to retrieve
2187
+ * @param {string} chainType roll up type
2188
+ * @param {number} [chainID] ID of evm chain
2189
+ * @param {*} [options] Override http request option.
2190
+ * @throws {RequiredError}
2191
+ */
2192
+ async getTransactionByID(transactionID, chainType, chainID, options) {
2193
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getTransactionByID(transactionID, chainType, chainID, options);
2194
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
2195
+ },
2196
+ };
2197
+ };
2198
+ /**
2199
+ * TransactionsApi - object-oriented interface
2200
+ * @export
2201
+ * @class TransactionsApi
2202
+ * @extends {BaseAPI}
2203
+ */
2204
+ class TransactionsApi extends BaseAPI {
2205
+ /**
2206
+ * Get a transaction by payload hash
2207
+ * @summary Info for a specific transaction
2208
+ * @param {TransactionsApiGetTransactionByIDRequest} requestParameters Request parameters.
2209
+ * @param {*} [options] Override http request option.
2210
+ * @throws {RequiredError}
2211
+ * @memberof TransactionsApi
2212
+ */
2213
+ getTransactionByID(requestParameters, options) {
2214
+ return TransactionsApiFp(this.configuration).getTransactionByID(requestParameters.transactionID, requestParameters.chainType, requestParameters.chainID, options).then((request) => request(this.axios, this.basePath));
2041
2215
  }
2042
2216
  }
2043
2217
 
2044
- class MagicAdapter {
2045
- magicClient;
2046
- config;
2047
- constructor(config) {
2048
- this.config = config;
2049
- this.magicClient = new magicSdk.Magic(config.magicPublishableApiKey, {
2050
- network: config.network,
2051
- extensions: [new oidc.OpenIdExtension()],
2052
- });
2053
- }
2054
- async login(idToken) {
2055
- return withPassportError(async () => {
2056
- await this.magicClient.openid.loginWithOIDC({
2057
- jwt: idToken,
2058
- providerId: this.config.magicProviderId,
2059
- });
2060
- return new ethers.ethers.providers.Web3Provider(this.magicClient
2061
- .rpcProvider);
2062
- }, PassportErrorType.WALLET_CONNECTION_ERROR);
2218
+ /* tslint:disable */
2219
+ /* eslint-disable */
2220
+ /**
2221
+ * Swagger Guardian
2222
+ * Guardian API
2223
+ *
2224
+ * The version of the OpenAPI document: 1.0.0
2225
+ * Contact: support@immutable.com
2226
+ *
2227
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2228
+ * https://openapi-generator.tech
2229
+ * Do not edit the class manually.
2230
+ */
2231
+ class Configuration {
2232
+ /**
2233
+ * parameter for apiKey security
2234
+ * @param name security name
2235
+ * @memberof Configuration
2236
+ */
2237
+ apiKey;
2238
+ /**
2239
+ * parameter for basic security
2240
+ *
2241
+ * @type {string}
2242
+ * @memberof Configuration
2243
+ */
2244
+ username;
2245
+ /**
2246
+ * parameter for basic security
2247
+ *
2248
+ * @type {string}
2249
+ * @memberof Configuration
2250
+ */
2251
+ password;
2252
+ /**
2253
+ * parameter for oauth2 security
2254
+ * @param name security name
2255
+ * @param scopes oauth2 scope
2256
+ * @memberof Configuration
2257
+ */
2258
+ accessToken;
2259
+ /**
2260
+ * override base path
2261
+ *
2262
+ * @type {string}
2263
+ * @memberof Configuration
2264
+ */
2265
+ basePath;
2266
+ /**
2267
+ * base options for axios calls
2268
+ *
2269
+ * @type {any}
2270
+ * @memberof Configuration
2271
+ */
2272
+ baseOptions;
2273
+ /**
2274
+ * The FormData constructor that will be used to create multipart form data
2275
+ * requests. You can inject this here so that execution environments that
2276
+ * do not support the FormData class can still run the generated client.
2277
+ *
2278
+ * @type {new () => FormData}
2279
+ */
2280
+ formDataCtor;
2281
+ constructor(param = {}) {
2282
+ this.apiKey = param.apiKey;
2283
+ this.username = param.username;
2284
+ this.password = param.password;
2285
+ this.accessToken = param.accessToken;
2286
+ this.basePath = param.basePath;
2287
+ this.baseOptions = param.baseOptions;
2288
+ this.formDataCtor = param.formDataCtor;
2063
2289
  }
2064
- }
2065
-
2290
+ /**
2291
+ * Check if the given MIME is a JSON MIME.
2292
+ * JSON MIME examples:
2293
+ * application/json
2294
+ * application/json; charset=UTF8
2295
+ * APPLICATION/JSON
2296
+ * application/vnd.company+json
2297
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
2298
+ * @return True if the given MIME is JSON, false otherwise.
2299
+ */
2300
+ isJsonMime(mime) {
2301
+ const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
2302
+ return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
2303
+ }
2304
+ }
2305
+
2306
+ var PassportErrorType;
2307
+ (function (PassportErrorType) {
2308
+ PassportErrorType["AUTHENTICATION_ERROR"] = "AUTHENTICATION_ERROR";
2309
+ PassportErrorType["INVALID_CONFIGURATION"] = "INVALID_CONFIGURATION";
2310
+ PassportErrorType["WALLET_CONNECTION_ERROR"] = "WALLET_CONNECTION_ERROR";
2311
+ PassportErrorType["NOT_LOGGED_IN_ERROR"] = "NOT_LOGGED_IN_ERROR";
2312
+ PassportErrorType["SILENT_LOGIN_ERROR"] = "SILENT_LOGIN_ERROR";
2313
+ PassportErrorType["REFRESH_TOKEN_ERROR"] = "REFRESH_TOKEN_ERROR";
2314
+ PassportErrorType["USER_REGISTRATION_ERROR"] = "USER_REGISTRATION_ERROR";
2315
+ PassportErrorType["LOGOUT_ERROR"] = "LOGOUT_ERROR";
2316
+ PassportErrorType["TRANSFER_ERROR"] = "TRANSFER_ERROR";
2317
+ PassportErrorType["CREATE_ORDER_ERROR"] = "CREATE_ORDER_ERROR";
2318
+ PassportErrorType["CANCEL_ORDER_ERROR"] = "CANCEL_ORDER_ERROR";
2319
+ PassportErrorType["EXCHANGE_TRANSFER_ERROR"] = "EXCHANGE_TRANSFER_ERROR";
2320
+ PassportErrorType["CREATE_TRADE_ERROR"] = "CREATE_TRADE_ERROR";
2321
+ PassportErrorType["OPERATION_NOT_SUPPORTED_ERROR"] = "OPERATION_NOT_SUPPORTED_ERROR";
2322
+ })(PassportErrorType || (PassportErrorType = {}));
2323
+ class PassportError extends Error {
2324
+ type;
2325
+ constructor(message, type) {
2326
+ super(message);
2327
+ this.type = type;
2328
+ }
2329
+ }
2330
+ const withPassportError = async (fn, customErrorType) => {
2331
+ try {
2332
+ return await fn();
2333
+ }
2334
+ catch (error) {
2335
+ const errorMessage = `${customErrorType}: ${error.message}` || 'UnknownError';
2336
+ throw new PassportError(errorMessage, customErrorType);
2337
+ }
2338
+ };
2339
+
2340
+ const POLL_INTERVAL = 1 * 1000; // every 1 second
2341
+ const MAX_RETRIES = 3;
2342
+ const wait = (ms) => new Promise((resolve) => {
2343
+ setTimeout(() => resolve(), ms);
2344
+ });
2345
+ const retryWithDelay = async (fn, options) => {
2346
+ const { retries = MAX_RETRIES, interval = POLL_INTERVAL, finalErr = Error('Retry failed'), } = options || {};
2347
+ try {
2348
+ return await fn();
2349
+ }
2350
+ catch (err) {
2351
+ if (retries <= 0) {
2352
+ return Promise.reject(finalErr);
2353
+ }
2354
+ await wait(interval);
2355
+ return retryWithDelay(fn, { retries: retries - 1, finalErr });
2356
+ }
2357
+ };
2358
+
2359
+ const getAuthConfiguration = ({ oidcConfiguration, authenticationDomain, }) => {
2360
+ const baseConfiguration = {
2361
+ authority: authenticationDomain,
2362
+ redirect_uri: oidcConfiguration.redirectUri,
2363
+ popup_redirect_uri: oidcConfiguration.redirectUri,
2364
+ client_id: oidcConfiguration.clientId,
2365
+ metadata: {
2366
+ authorization_endpoint: `${authenticationDomain}/authorize`,
2367
+ token_endpoint: `${authenticationDomain}/oauth/token`,
2368
+ userinfo_endpoint: `${authenticationDomain}/userinfo`,
2369
+ end_session_endpoint: `${authenticationDomain}/v2/logout`
2370
+ + `?returnTo=${encodeURIComponent(oidcConfiguration.logoutRedirectUri)}`
2371
+ + `&client_id=${oidcConfiguration.clientId}`,
2372
+ },
2373
+ mergeClaims: true,
2374
+ loadUserInfo: true,
2375
+ scope: oidcConfiguration.scope,
2376
+ };
2377
+ if (oidcConfiguration.audience) {
2378
+ baseConfiguration.extraQueryParams = {
2379
+ audience: oidcConfiguration.audience,
2380
+ };
2381
+ }
2382
+ return baseConfiguration;
2383
+ };
2384
+ class AuthManager {
2385
+ userManager;
2386
+ config;
2387
+ constructor(config) {
2388
+ this.config = config;
2389
+ this.userManager = new oidcClientTs.UserManager(getAuthConfiguration(config));
2390
+ }
2391
+ static mapOidcUserToDomainModel = (oidcUser) => {
2392
+ const passport = oidcUser.profile?.passport;
2393
+ return {
2394
+ expired: oidcUser.expired,
2395
+ idToken: oidcUser.id_token,
2396
+ accessToken: oidcUser.access_token,
2397
+ refreshToken: oidcUser.refresh_token,
2398
+ profile: {
2399
+ sub: oidcUser.profile.sub,
2400
+ email: oidcUser.profile.email,
2401
+ nickname: oidcUser.profile.nickname,
2402
+ },
2403
+ etherKey: passport?.ether_key || '',
2404
+ };
2405
+ };
2406
+ async login() {
2407
+ return withPassportError(async () => {
2408
+ const popupWindowFeatures = { width: 410, height: 450 };
2409
+ const oidcUser = await this.userManager.signinPopup({
2410
+ popupWindowFeatures,
2411
+ });
2412
+ return AuthManager.mapOidcUserToDomainModel(oidcUser);
2413
+ }, PassportErrorType.AUTHENTICATION_ERROR);
2414
+ }
2415
+ async loginCallback() {
2416
+ return withPassportError(async () => this.userManager.signinPopupCallback(), PassportErrorType.AUTHENTICATION_ERROR);
2417
+ }
2418
+ async logout() {
2419
+ return withPassportError(async () => this.userManager.signoutRedirect(), PassportErrorType.LOGOUT_ERROR);
2420
+ }
2421
+ async loginSilent() {
2422
+ return withPassportError(async () => {
2423
+ const existedUser = await this.getUser();
2424
+ if (!existedUser) {
2425
+ return null;
2426
+ }
2427
+ const oidcUser = await this.userManager.signinSilent();
2428
+ if (!oidcUser) {
2429
+ return null;
2430
+ }
2431
+ return AuthManager.mapOidcUserToDomainModel(oidcUser);
2432
+ }, PassportErrorType.SILENT_LOGIN_ERROR);
2433
+ }
2434
+ async getUser() {
2435
+ return withPassportError(async () => {
2436
+ const oidcUser = await this.userManager.getUser();
2437
+ if (!oidcUser) {
2438
+ return null;
2439
+ }
2440
+ return AuthManager.mapOidcUserToDomainModel(oidcUser);
2441
+ }, PassportErrorType.NOT_LOGGED_IN_ERROR);
2442
+ }
2443
+ async requestRefreshTokenAfterRegistration() {
2444
+ return withPassportError(async () => {
2445
+ const updatedUser = await retryWithDelay(async () => {
2446
+ const user = await this.userManager.signinSilent();
2447
+ const passportMetadata = user?.profile?.passport;
2448
+ const metadataExists = !!passportMetadata?.ether_key
2449
+ && !!passportMetadata?.stark_key
2450
+ && !!passportMetadata?.user_admin_key;
2451
+ if (metadataExists) {
2452
+ return user;
2453
+ }
2454
+ return Promise.reject(new Error('user wallet addresses not exist'));
2455
+ });
2456
+ if (!updatedUser) {
2457
+ return null;
2458
+ }
2459
+ return AuthManager.mapOidcUserToDomainModel(updatedUser);
2460
+ }, PassportErrorType.REFRESH_TOKEN_ERROR);
2461
+ }
2462
+ }
2463
+
2464
+ class MagicAdapter {
2465
+ magicClient;
2466
+ config;
2467
+ constructor(config) {
2468
+ this.config = config;
2469
+ this.magicClient = new magicSdk.Magic(config.magicPublishableApiKey, {
2470
+ network: config.network,
2471
+ extensions: [new oidc.OpenIdExtension()],
2472
+ });
2473
+ }
2474
+ async login(idToken) {
2475
+ return withPassportError(async () => {
2476
+ await this.magicClient.openid.loginWithOIDC({
2477
+ jwt: idToken,
2478
+ providerId: this.config.magicProviderId,
2479
+ });
2480
+ return new ethers.ethers.providers.Web3Provider(this.magicClient
2481
+ .rpcProvider);
2482
+ }, PassportErrorType.WALLET_CONNECTION_ERROR);
2483
+ }
2484
+ }
2485
+
2066
2486
  var ReceiveMessage;
2067
2487
  (function (ReceiveMessage) {
2068
2488
  ReceiveMessage["CONFIRMATION_WINDOW_READY"] = "confirmation_window_ready";
@@ -2162,10 +2582,78 @@ class ConfirmationScreen {
2162
2582
  }, CONFIRMATION_WINDOW_CLOSED_POLLING_DURATION);
2163
2583
  });
2164
2584
  }
2585
+ startGuardianTransaction(transactionId, popupOptions) {
2586
+ return new Promise((resolve, reject) => {
2587
+ const messageHandler = ({ data, origin }) => {
2588
+ if (origin !== this.config.passportDomain
2589
+ || data.eventType !== PASSPORT_EVENT_TYPE) {
2590
+ return;
2591
+ }
2592
+ switch (data.messageType) {
2593
+ case ReceiveMessage.CONFIRMATION_WINDOW_READY: {
2594
+ break;
2595
+ }
2596
+ case ReceiveMessage.TRANSACTION_CONFIRMED: {
2597
+ resolve({ confirmed: true });
2598
+ break;
2599
+ }
2600
+ case ReceiveMessage.TRANSACTION_ERROR: {
2601
+ reject(new Error('Transaction error'));
2602
+ break;
2603
+ }
2604
+ default:
2605
+ reject(new Error('Unsupported message type'));
2606
+ }
2607
+ };
2608
+ window.addEventListener('message', messageHandler);
2609
+ const confirmationWindow = openPopupCenter({
2610
+ // eslint-disable-next-line max-len
2611
+ url: `${this.config.passportDomain}/transaction-confirmation/transaction.html?transactionId=${transactionId}&chainType=starkex`,
2612
+ title: CONFIRMATION_WINDOW_TITLE,
2613
+ width: popupOptions?.width || CONFIRMATION_WINDOW_WIDTH,
2614
+ height: popupOptions?.height || CONFIRMATION_WINDOW_HEIGHT,
2615
+ });
2616
+ // https://stackoverflow.com/questions/9388380/capture-the-close-event-of-popup-window-in-javascript/48240128#48240128
2617
+ const timer = setInterval(() => {
2618
+ if (confirmationWindow.closed) {
2619
+ clearInterval(timer);
2620
+ window.removeEventListener('message', messageHandler);
2621
+ resolve({ confirmed: false });
2622
+ }
2623
+ }, CONFIRMATION_WINDOW_CLOSED_POLLING_DURATION);
2624
+ });
2625
+ }
2165
2626
  }
2166
2627
 
2167
2628
  const ERC721$1 = 'ERC721';
2168
- async function transfer$1({ request, transfersApi, starkSigner, user, confirmationScreen, }) {
2629
+ const transferWithGuardian = async ({ accessToken, imxPublicApiDomain, payloadHash, confirmationScreen, }) => {
2630
+ const transactionAPI = new TransactionsApi(new Configuration({
2631
+ accessToken,
2632
+ basePath: imxPublicApiDomain,
2633
+ }));
2634
+ const starkExTransactionApi = new StarkexTransactionsApi(new Configuration({
2635
+ accessToken,
2636
+ basePath: imxPublicApiDomain,
2637
+ }));
2638
+ const transactionRes = await retryWithDelay(async () => transactionAPI.getTransactionByID({
2639
+ transactionID: payloadHash,
2640
+ chainType: 'starkex',
2641
+ }));
2642
+ if (!transactionRes.data.id) {
2643
+ throw new Error("Transaction doesn't exists");
2644
+ }
2645
+ const evaluateStarkexRes = await starkExTransactionApi.evaluateStarkexTransaction({
2646
+ payloadHash,
2647
+ });
2648
+ const { confirmationRequired } = evaluateStarkexRes.data;
2649
+ if (confirmationRequired) {
2650
+ const confirmationResult = await confirmationScreen.startGuardianTransaction(payloadHash);
2651
+ if (!confirmationResult.confirmed) {
2652
+ throw new Error('Transaction rejected by user');
2653
+ }
2654
+ }
2655
+ };
2656
+ async function transfer$1({ request, transfersApi, starkSigner, user, imxPublicApiDomain, confirmationScreen, }) {
2169
2657
  return withPassportError(async () => {
2170
2658
  const transferAmount = request.type === ERC721$1 ? '1' : request.amount;
2171
2659
  const getSignableTransferRequest = {
@@ -2174,16 +2662,18 @@ async function transfer$1({ request, transfersApi, starkSigner, user, confirmati
2174
2662
  amount: transferAmount,
2175
2663
  receiver: request.receiver,
2176
2664
  };
2665
+ const headers = {
2666
+ Authorization: `Bearer ${user.accessToken}`,
2667
+ };
2177
2668
  const signableResult = await transfersApi.getSignableTransferV1({
2178
2669
  getSignableTransferRequest,
2670
+ }, { headers });
2671
+ await transferWithGuardian({
2672
+ imxPublicApiDomain,
2673
+ accessToken: user.accessToken,
2674
+ payloadHash: signableResult.data.payload_hash,
2675
+ confirmationScreen,
2179
2676
  });
2180
- const confirmationResult = await confirmationScreen.startTransaction(user.accessToken, {
2181
- transactionType: TransactionTypes.createTransfer,
2182
- transactionData: getSignableTransferRequest,
2183
- });
2184
- if (!confirmationResult.confirmed) {
2185
- throw new Error('Transaction rejected by user');
2186
- }
2187
2677
  const signableResultData = signableResult.data;
2188
2678
  const { payload_hash: payloadHash } = signableResultData;
2189
2679
  const starkSignature = await starkSigner.signMessage(payloadHash);
@@ -2202,10 +2692,6 @@ async function transfer$1({ request, transfersApi, starkSigner, user, confirmati
2202
2692
  const createTransferRequest = {
2203
2693
  createTransferRequest: transferSigningParams,
2204
2694
  };
2205
- const headers = {
2206
- // eslint-disable-next-line @typescript-eslint/naming-convention
2207
- Authorization: `Bearer ${user.accessToken}`,
2208
- };
2209
2695
  const { data: responseData } = await transfersApi.createTransferV1(createTransferRequest, { headers });
2210
2696
  return {
2211
2697
  sent_signature: responseData.sent_signature,
@@ -2461,10 +2947,12 @@ class PassportImxProvider {
2461
2947
  starkSigner;
2462
2948
  immutableXClient;
2463
2949
  confirmationScreen;
2464
- constructor({ user, starkSigner, immutableXClient, confirmationScreen, }) {
2950
+ imxPublicApiDomain;
2951
+ constructor({ user, starkSigner, immutableXClient, imxPublicApiDomain, confirmationScreen, }) {
2465
2952
  this.user = user;
2466
2953
  this.starkSigner = starkSigner;
2467
2954
  this.immutableXClient = immutableXClient;
2955
+ this.imxPublicApiDomain = imxPublicApiDomain;
2468
2956
  this.confirmationScreen = confirmationScreen;
2469
2957
  }
2470
2958
  async transfer(request) {
@@ -2474,6 +2962,7 @@ class PassportImxProvider {
2474
2962
  starkSigner: this.starkSigner,
2475
2963
  transfersApi: this.immutableXClient.transfersApi,
2476
2964
  confirmationScreen: this.confirmationScreen,
2965
+ imxPublicApiDomain: this.imxPublicApiDomain,
2477
2966
  });
2478
2967
  }
2479
2968
  // TODO: Remove once implemented
@@ -2576,6 +3065,7 @@ class PassportConfiguration {
2576
3065
  network;
2577
3066
  authenticationDomain;
2578
3067
  passportDomain;
3068
+ imxPublicApiDomain;
2579
3069
  magicPublishableApiKey;
2580
3070
  magicProviderId;
2581
3071
  oidcConfiguration;
@@ -2595,10 +3085,12 @@ class PassportConfiguration {
2595
3085
  'magicPublishableApiKey',
2596
3086
  'magicProviderId',
2597
3087
  'passportDomain',
3088
+ 'imxPublicApiDomain',
2598
3089
  ], 'overrides');
2599
3090
  this.network = overrides.network;
2600
3091
  this.authenticationDomain = overrides.authenticationDomain;
2601
3092
  this.passportDomain = overrides.passportDomain;
3093
+ this.imxPublicApiDomain = overrides.imxPublicApiDomain;
2602
3094
  this.magicPublishableApiKey = overrides.magicPublishableApiKey;
2603
3095
  this.magicProviderId = overrides.magicProviderId;
2604
3096
  }
@@ -2610,6 +3102,7 @@ class PassportConfiguration {
2610
3102
  this.magicPublishableApiKey = 'pk_live_10F423798A540ED7';
2611
3103
  this.magicProviderId = 'fSMzaRQ4O7p4fttl7pCyGVtJS_G70P8SNsLXtPPGHo0=';
2612
3104
  this.passportDomain = 'https://passport.immutable.com';
3105
+ this.imxPublicApiDomain = 'https://api.immutable.com';
2613
3106
  break;
2614
3107
  }
2615
3108
  case exports.Environment.SANDBOX:
@@ -2619,6 +3112,7 @@ class PassportConfiguration {
2619
3112
  this.magicPublishableApiKey = 'pk_live_10F423798A540ED7';
2620
3113
  this.magicProviderId = 'fSMzaRQ4O7p4fttl7pCyGVtJS_G70P8SNsLXtPPGHo0=';
2621
3114
  this.passportDomain = 'https://passport.sandbox.immutable.com';
3115
+ this.imxPublicApiDomain = 'https://api.sandbox.immutable.com';
2622
3116
  break;
2623
3117
  }
2624
3118
  }
@@ -2688,6 +3182,7 @@ class Passport {
2688
3182
  user: updatedUser,
2689
3183
  starkSigner,
2690
3184
  immutableXClient: this.immutableXClient,
3185
+ imxPublicApiDomain: this.config.imxPublicApiDomain,
2691
3186
  confirmationScreen: this.confirmationScreen,
2692
3187
  });
2693
3188
  }
@@ -2696,6 +3191,7 @@ class Passport {
2696
3191
  user: userWithEtherKey,
2697
3192
  starkSigner,
2698
3193
  immutableXClient: this.immutableXClient,
3194
+ imxPublicApiDomain: this.config.imxPublicApiDomain,
2699
3195
  confirmationScreen: this.confirmationScreen,
2700
3196
  });
2701
3197
  }
@@ -3636,7 +4132,7 @@ class ERC721 {
3636
4132
  /* Autogenerated file. Do not edit manually. */
3637
4133
  /* tslint:disable */
3638
4134
  /* eslint-disable */
3639
- const _abi = [
4135
+ const _abi$2 = [
3640
4136
  {
3641
4137
  inputs: [
3642
4138
  {
@@ -4525,12 +5021,12 @@ const _abi = [
4525
5021
  },
4526
5022
  ];
4527
5023
  class ImmutableERC721Base__factory {
4528
- static abi = _abi;
5024
+ static abi = _abi$2;
4529
5025
  static createInterface() {
4530
- return new ethers.utils.Interface(_abi);
5026
+ return new ethers.utils.Interface(_abi$2);
4531
5027
  }
4532
5028
  static connect(address, signerOrProvider) {
4533
- return new ethers.Contract(address, _abi, signerOrProvider);
5029
+ return new ethers.Contract(address, _abi$2, signerOrProvider);
4534
5030
  }
4535
5031
  }
4536
5032
 
@@ -6717,11 +7213,1515 @@ function $430e3eda76fa4d5f$export$931068bc678f0d73(tagName, provider) {
6717
7213
  attemptToSetProvider();
6718
7214
  }
6719
7215
 
6720
- // only for infrastructure. will be removed once wrapped functions are created
6721
- const erc20 = 1;
6722
-
6723
- // only for infrastructure. will be removed once wrapped functions are created
6724
- const erc721permissionedmintable = 1;
7216
+ /* Autogenerated file. Do not edit manually. */
7217
+ /* tslint:disable */
7218
+ /* eslint-disable */
7219
+ const _abi$1 = [
7220
+ {
7221
+ inputs: [
7222
+ {
7223
+ internalType: "string",
7224
+ name: "name_",
7225
+ type: "string",
7226
+ },
7227
+ {
7228
+ internalType: "string",
7229
+ name: "symbol_",
7230
+ type: "string",
7231
+ },
7232
+ ],
7233
+ stateMutability: "nonpayable",
7234
+ type: "constructor",
7235
+ },
7236
+ {
7237
+ anonymous: false,
7238
+ inputs: [
7239
+ {
7240
+ indexed: true,
7241
+ internalType: "address",
7242
+ name: "owner",
7243
+ type: "address",
7244
+ },
7245
+ {
7246
+ indexed: true,
7247
+ internalType: "address",
7248
+ name: "spender",
7249
+ type: "address",
7250
+ },
7251
+ {
7252
+ indexed: false,
7253
+ internalType: "uint256",
7254
+ name: "value",
7255
+ type: "uint256",
7256
+ },
7257
+ ],
7258
+ name: "Approval",
7259
+ type: "event",
7260
+ },
7261
+ {
7262
+ anonymous: false,
7263
+ inputs: [
7264
+ {
7265
+ indexed: true,
7266
+ internalType: "address",
7267
+ name: "from",
7268
+ type: "address",
7269
+ },
7270
+ {
7271
+ indexed: true,
7272
+ internalType: "address",
7273
+ name: "to",
7274
+ type: "address",
7275
+ },
7276
+ {
7277
+ indexed: false,
7278
+ internalType: "uint256",
7279
+ name: "value",
7280
+ type: "uint256",
7281
+ },
7282
+ ],
7283
+ name: "Transfer",
7284
+ type: "event",
7285
+ },
7286
+ {
7287
+ inputs: [
7288
+ {
7289
+ internalType: "address",
7290
+ name: "owner",
7291
+ type: "address",
7292
+ },
7293
+ {
7294
+ internalType: "address",
7295
+ name: "spender",
7296
+ type: "address",
7297
+ },
7298
+ ],
7299
+ name: "allowance",
7300
+ outputs: [
7301
+ {
7302
+ internalType: "uint256",
7303
+ name: "",
7304
+ type: "uint256",
7305
+ },
7306
+ ],
7307
+ stateMutability: "view",
7308
+ type: "function",
7309
+ },
7310
+ {
7311
+ inputs: [
7312
+ {
7313
+ internalType: "address",
7314
+ name: "spender",
7315
+ type: "address",
7316
+ },
7317
+ {
7318
+ internalType: "uint256",
7319
+ name: "amount",
7320
+ type: "uint256",
7321
+ },
7322
+ ],
7323
+ name: "approve",
7324
+ outputs: [
7325
+ {
7326
+ internalType: "bool",
7327
+ name: "",
7328
+ type: "bool",
7329
+ },
7330
+ ],
7331
+ stateMutability: "nonpayable",
7332
+ type: "function",
7333
+ },
7334
+ {
7335
+ inputs: [
7336
+ {
7337
+ internalType: "address",
7338
+ name: "account",
7339
+ type: "address",
7340
+ },
7341
+ ],
7342
+ name: "balanceOf",
7343
+ outputs: [
7344
+ {
7345
+ internalType: "uint256",
7346
+ name: "",
7347
+ type: "uint256",
7348
+ },
7349
+ ],
7350
+ stateMutability: "view",
7351
+ type: "function",
7352
+ },
7353
+ {
7354
+ inputs: [],
7355
+ name: "decimals",
7356
+ outputs: [
7357
+ {
7358
+ internalType: "uint8",
7359
+ name: "",
7360
+ type: "uint8",
7361
+ },
7362
+ ],
7363
+ stateMutability: "view",
7364
+ type: "function",
7365
+ },
7366
+ {
7367
+ inputs: [
7368
+ {
7369
+ internalType: "address",
7370
+ name: "spender",
7371
+ type: "address",
7372
+ },
7373
+ {
7374
+ internalType: "uint256",
7375
+ name: "subtractedValue",
7376
+ type: "uint256",
7377
+ },
7378
+ ],
7379
+ name: "decreaseAllowance",
7380
+ outputs: [
7381
+ {
7382
+ internalType: "bool",
7383
+ name: "",
7384
+ type: "bool",
7385
+ },
7386
+ ],
7387
+ stateMutability: "nonpayable",
7388
+ type: "function",
7389
+ },
7390
+ {
7391
+ inputs: [
7392
+ {
7393
+ internalType: "address",
7394
+ name: "spender",
7395
+ type: "address",
7396
+ },
7397
+ {
7398
+ internalType: "uint256",
7399
+ name: "addedValue",
7400
+ type: "uint256",
7401
+ },
7402
+ ],
7403
+ name: "increaseAllowance",
7404
+ outputs: [
7405
+ {
7406
+ internalType: "bool",
7407
+ name: "",
7408
+ type: "bool",
7409
+ },
7410
+ ],
7411
+ stateMutability: "nonpayable",
7412
+ type: "function",
7413
+ },
7414
+ {
7415
+ inputs: [],
7416
+ name: "name",
7417
+ outputs: [
7418
+ {
7419
+ internalType: "string",
7420
+ name: "",
7421
+ type: "string",
7422
+ },
7423
+ ],
7424
+ stateMutability: "view",
7425
+ type: "function",
7426
+ },
7427
+ {
7428
+ inputs: [],
7429
+ name: "symbol",
7430
+ outputs: [
7431
+ {
7432
+ internalType: "string",
7433
+ name: "",
7434
+ type: "string",
7435
+ },
7436
+ ],
7437
+ stateMutability: "view",
7438
+ type: "function",
7439
+ },
7440
+ {
7441
+ inputs: [],
7442
+ name: "totalSupply",
7443
+ outputs: [
7444
+ {
7445
+ internalType: "uint256",
7446
+ name: "",
7447
+ type: "uint256",
7448
+ },
7449
+ ],
7450
+ stateMutability: "view",
7451
+ type: "function",
7452
+ },
7453
+ {
7454
+ inputs: [
7455
+ {
7456
+ internalType: "address",
7457
+ name: "to",
7458
+ type: "address",
7459
+ },
7460
+ {
7461
+ internalType: "uint256",
7462
+ name: "amount",
7463
+ type: "uint256",
7464
+ },
7465
+ ],
7466
+ name: "transfer",
7467
+ outputs: [
7468
+ {
7469
+ internalType: "bool",
7470
+ name: "",
7471
+ type: "bool",
7472
+ },
7473
+ ],
7474
+ stateMutability: "nonpayable",
7475
+ type: "function",
7476
+ },
7477
+ {
7478
+ inputs: [
7479
+ {
7480
+ internalType: "address",
7481
+ name: "from",
7482
+ type: "address",
7483
+ },
7484
+ {
7485
+ internalType: "address",
7486
+ name: "to",
7487
+ type: "address",
7488
+ },
7489
+ {
7490
+ internalType: "uint256",
7491
+ name: "amount",
7492
+ type: "uint256",
7493
+ },
7494
+ ],
7495
+ name: "transferFrom",
7496
+ outputs: [
7497
+ {
7498
+ internalType: "bool",
7499
+ name: "",
7500
+ type: "bool",
7501
+ },
7502
+ ],
7503
+ stateMutability: "nonpayable",
7504
+ type: "function",
7505
+ },
7506
+ ];
7507
+ const _bytecode$1 = "0x60806040523480156200001157600080fd5b50604051620017ec380380620017ec8339818101604052810190620000379190620001f6565b8160039081620000489190620004c6565b5080600490816200005a9190620004c6565b505050620005ad565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000cc8262000081565b810181811067ffffffffffffffff82111715620000ee57620000ed62000092565b5b80604052505050565b60006200010362000063565b9050620001118282620000c1565b919050565b600067ffffffffffffffff82111562000134576200013362000092565b5b6200013f8262000081565b9050602081019050919050565b60005b838110156200016c5780820151818401526020810190506200014f565b60008484015250505050565b60006200018f620001898462000116565b620000f7565b905082815260208101848484011115620001ae57620001ad6200007c565b5b620001bb8482856200014c565b509392505050565b600082601f830112620001db57620001da62000077565b5b8151620001ed84826020860162000178565b91505092915050565b6000806040838503121562000210576200020f6200006d565b5b600083015167ffffffffffffffff81111562000231576200023062000072565b5b6200023f85828601620001c3565b925050602083015167ffffffffffffffff81111562000263576200026262000072565b5b6200027185828601620001c3565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ce57607f821691505b602082108103620002e457620002e362000286565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030f565b6200035a86836200030f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a7620003a16200039b8462000372565b6200037c565b62000372565b9050919050565b6000819050919050565b620003c38362000386565b620003db620003d282620003ae565b8484546200031c565b825550505050565b600090565b620003f2620003e3565b620003ff818484620003b8565b505050565b5b8181101562000427576200041b600082620003e8565b60018101905062000405565b5050565b601f82111562000476576200044081620002ea565b6200044b84620002ff565b810160208510156200045b578190505b620004736200046a85620002ff565b83018262000404565b50505b505050565b600082821c905092915050565b60006200049b600019846008026200047b565b1980831691505092915050565b6000620004b6838362000488565b9150826002028217905092915050565b620004d1826200027b565b67ffffffffffffffff811115620004ed57620004ec62000092565b5b620004f98254620002b5565b620005068282856200042b565b600060209050601f8311600181146200053e576000841562000529578287015190505b620005358582620004a8565b865550620005a5565b601f1984166200054e86620002ea565b60005b82811015620005785784890151825560018201915060208501945060208101905062000551565b8683101562000598578489015162000594601f89168262000488565b8355505b6001600288020188555050505b505050505050565b61122f80620005bd6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b0c565b60405180910390f35b6100e660048036038101906100e19190610bc7565b610308565b6040516100f39190610c22565b60405180910390f35b61010461032b565b6040516101119190610c4c565b60405180910390f35b610134600480360381019061012f9190610c67565b610335565b6040516101419190610c22565b60405180910390f35b610152610364565b60405161015f9190610cd6565b60405180910390f35b610182600480360381019061017d9190610bc7565b61036d565b60405161018f9190610c22565b60405180910390f35b6101b260048036038101906101ad9190610cf1565b6103a4565b6040516101bf9190610c4c565b60405180910390f35b6101d06103ec565b6040516101dd9190610b0c565b60405180910390f35b61020060048036038101906101fb9190610bc7565b61047e565b60405161020d9190610c22565b60405180910390f35b610230600480360381019061022b9190610bc7565b6104f5565b60405161023d9190610c22565b60405180910390f35b610260600480360381019061025b9190610d1e565b610518565b60405161026d9190610c4c565b60405180910390f35b60606003805461028590610d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d8d565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610ded565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d8d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e93565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fb7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c4c565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611023565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611147565b60405180910390fd5b6108e5838383610a72565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111d9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a599190610c4c565b60405180910390a3610a6c848484610a77565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ab6578082015181840152602081019050610a9b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ade82610a7c565b610ae88185610a87565b9350610af8818560208601610a98565b610b0181610ac2565b840191505092915050565b60006020820190508181036000830152610b268184610ad3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b5e82610b33565b9050919050565b610b6e81610b53565b8114610b7957600080fd5b50565b600081359050610b8b81610b65565b92915050565b6000819050919050565b610ba481610b91565b8114610baf57600080fd5b50565b600081359050610bc181610b9b565b92915050565b60008060408385031215610bde57610bdd610b2e565b5b6000610bec85828601610b7c565b9250506020610bfd85828601610bb2565b9150509250929050565b60008115159050919050565b610c1c81610c07565b82525050565b6000602082019050610c376000830184610c13565b92915050565b610c4681610b91565b82525050565b6000602082019050610c616000830184610c3d565b92915050565b600080600060608486031215610c8057610c7f610b2e565b5b6000610c8e86828701610b7c565b9350506020610c9f86828701610b7c565b9250506040610cb086828701610bb2565b9150509250925092565b600060ff82169050919050565b610cd081610cba565b82525050565b6000602082019050610ceb6000830184610cc7565b92915050565b600060208284031215610d0757610d06610b2e565b5b6000610d1584828501610b7c565b91505092915050565b60008060408385031215610d3557610d34610b2e565b5b6000610d4385828601610b7c565b9250506020610d5485828601610b7c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610da557607f821691505b602082108103610db857610db7610d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610df882610b91565b9150610e0383610b91565b9250828201905080821115610e1b57610e1a610dbe565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e7d602583610a87565b9150610e8882610e21565b604082019050919050565b60006020820190508181036000830152610eac81610e70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f0f602483610a87565b9150610f1a82610eb3565b604082019050919050565b60006020820190508181036000830152610f3e81610f02565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fa1602283610a87565b9150610fac82610f45565b604082019050919050565b60006020820190508181036000830152610fd081610f94565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061100d601d83610a87565b915061101882610fd7565b602082019050919050565b6000602082019050818103600083015261103c81611000565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061109f602583610a87565b91506110aa82611043565b604082019050919050565b600060208201905081810360008301526110ce81611092565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611131602383610a87565b915061113c826110d5565b604082019050919050565b6000602082019050818103600083015261116081611124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111c3602683610a87565b91506111ce82611167565b604082019050919050565b600060208201905081810360008301526111f2816111b6565b905091905056fea26469706673582212204188b273199f085e1921ec1a1fa55abdee2e425960bda675a51fac85acd9972064736f6c63430008110033";
7508
+ const isSuperArgs$1 = (xs) => xs.length > 1;
7509
+ class ERC20__factory extends ethers.ContractFactory {
7510
+ constructor(...args) {
7511
+ if (isSuperArgs$1(args)) {
7512
+ super(...args);
7513
+ }
7514
+ else {
7515
+ super(_abi$1, _bytecode$1, args[0]);
7516
+ }
7517
+ }
7518
+ deploy(name_, symbol_, overrides) {
7519
+ return super.deploy(name_, symbol_, overrides || {});
7520
+ }
7521
+ getDeployTransaction(name_, symbol_, overrides) {
7522
+ return super.getDeployTransaction(name_, symbol_, overrides || {});
7523
+ }
7524
+ attach(address) {
7525
+ return super.attach(address);
7526
+ }
7527
+ connect(signer) {
7528
+ return super.connect(signer);
7529
+ }
7530
+ static bytecode = _bytecode$1;
7531
+ static abi = _abi$1;
7532
+ static createInterface() {
7533
+ return new ethers.utils.Interface(_abi$1);
7534
+ }
7535
+ static connect(address, signerOrProvider) {
7536
+ return new ethers.Contract(address, _abi$1, signerOrProvider);
7537
+ }
7538
+ }
7539
+
7540
+ /* Autogenerated file. Do not edit manually. */
7541
+ /* tslint:disable */
7542
+ /* eslint-disable */
7543
+ const _abi = [
7544
+ {
7545
+ inputs: [
7546
+ {
7547
+ internalType: "address",
7548
+ name: "owner_",
7549
+ type: "address",
7550
+ },
7551
+ {
7552
+ internalType: "string",
7553
+ name: "name_",
7554
+ type: "string",
7555
+ },
7556
+ {
7557
+ internalType: "string",
7558
+ name: "symbol_",
7559
+ type: "string",
7560
+ },
7561
+ {
7562
+ internalType: "string",
7563
+ name: "baseURI_",
7564
+ type: "string",
7565
+ },
7566
+ {
7567
+ internalType: "string",
7568
+ name: "contractURI_",
7569
+ type: "string",
7570
+ },
7571
+ {
7572
+ internalType: "address",
7573
+ name: "_receiver",
7574
+ type: "address",
7575
+ },
7576
+ {
7577
+ internalType: "uint96",
7578
+ name: "_feeNumerator",
7579
+ type: "uint96",
7580
+ },
7581
+ ],
7582
+ stateMutability: "nonpayable",
7583
+ type: "constructor",
7584
+ },
7585
+ {
7586
+ inputs: [
7587
+ {
7588
+ internalType: "address",
7589
+ name: "target",
7590
+ type: "address",
7591
+ },
7592
+ ],
7593
+ name: "ApproveTargetNotInAllowlist",
7594
+ type: "error",
7595
+ },
7596
+ {
7597
+ inputs: [
7598
+ {
7599
+ internalType: "address",
7600
+ name: "caller",
7601
+ type: "address",
7602
+ },
7603
+ ],
7604
+ name: "CallerNotInAllowlist",
7605
+ type: "error",
7606
+ },
7607
+ {
7608
+ anonymous: false,
7609
+ inputs: [
7610
+ {
7611
+ indexed: true,
7612
+ internalType: "address",
7613
+ name: "owner",
7614
+ type: "address",
7615
+ },
7616
+ {
7617
+ indexed: true,
7618
+ internalType: "address",
7619
+ name: "approved",
7620
+ type: "address",
7621
+ },
7622
+ {
7623
+ indexed: true,
7624
+ internalType: "uint256",
7625
+ name: "tokenId",
7626
+ type: "uint256",
7627
+ },
7628
+ ],
7629
+ name: "Approval",
7630
+ type: "event",
7631
+ },
7632
+ {
7633
+ anonymous: false,
7634
+ inputs: [
7635
+ {
7636
+ indexed: true,
7637
+ internalType: "address",
7638
+ name: "owner",
7639
+ type: "address",
7640
+ },
7641
+ {
7642
+ indexed: true,
7643
+ internalType: "address",
7644
+ name: "operator",
7645
+ type: "address",
7646
+ },
7647
+ {
7648
+ indexed: false,
7649
+ internalType: "bool",
7650
+ name: "approved",
7651
+ type: "bool",
7652
+ },
7653
+ ],
7654
+ name: "ApprovalForAll",
7655
+ type: "event",
7656
+ },
7657
+ {
7658
+ anonymous: false,
7659
+ inputs: [
7660
+ {
7661
+ indexed: true,
7662
+ internalType: "bytes32",
7663
+ name: "role",
7664
+ type: "bytes32",
7665
+ },
7666
+ {
7667
+ indexed: true,
7668
+ internalType: "bytes32",
7669
+ name: "previousAdminRole",
7670
+ type: "bytes32",
7671
+ },
7672
+ {
7673
+ indexed: true,
7674
+ internalType: "bytes32",
7675
+ name: "newAdminRole",
7676
+ type: "bytes32",
7677
+ },
7678
+ ],
7679
+ name: "RoleAdminChanged",
7680
+ type: "event",
7681
+ },
7682
+ {
7683
+ anonymous: false,
7684
+ inputs: [
7685
+ {
7686
+ indexed: true,
7687
+ internalType: "bytes32",
7688
+ name: "role",
7689
+ type: "bytes32",
7690
+ },
7691
+ {
7692
+ indexed: true,
7693
+ internalType: "address",
7694
+ name: "account",
7695
+ type: "address",
7696
+ },
7697
+ {
7698
+ indexed: true,
7699
+ internalType: "address",
7700
+ name: "sender",
7701
+ type: "address",
7702
+ },
7703
+ ],
7704
+ name: "RoleGranted",
7705
+ type: "event",
7706
+ },
7707
+ {
7708
+ anonymous: false,
7709
+ inputs: [
7710
+ {
7711
+ indexed: true,
7712
+ internalType: "bytes32",
7713
+ name: "role",
7714
+ type: "bytes32",
7715
+ },
7716
+ {
7717
+ indexed: true,
7718
+ internalType: "address",
7719
+ name: "account",
7720
+ type: "address",
7721
+ },
7722
+ {
7723
+ indexed: true,
7724
+ internalType: "address",
7725
+ name: "sender",
7726
+ type: "address",
7727
+ },
7728
+ ],
7729
+ name: "RoleRevoked",
7730
+ type: "event",
7731
+ },
7732
+ {
7733
+ anonymous: false,
7734
+ inputs: [
7735
+ {
7736
+ indexed: false,
7737
+ internalType: "address",
7738
+ name: "oldRegistry",
7739
+ type: "address",
7740
+ },
7741
+ {
7742
+ indexed: false,
7743
+ internalType: "address",
7744
+ name: "newRegistry",
7745
+ type: "address",
7746
+ },
7747
+ ],
7748
+ name: "RoyaltytAllowlistRegistryUpdated",
7749
+ type: "event",
7750
+ },
7751
+ {
7752
+ anonymous: false,
7753
+ inputs: [
7754
+ {
7755
+ indexed: true,
7756
+ internalType: "address",
7757
+ name: "from",
7758
+ type: "address",
7759
+ },
7760
+ {
7761
+ indexed: true,
7762
+ internalType: "address",
7763
+ name: "to",
7764
+ type: "address",
7765
+ },
7766
+ {
7767
+ indexed: true,
7768
+ internalType: "uint256",
7769
+ name: "tokenId",
7770
+ type: "uint256",
7771
+ },
7772
+ ],
7773
+ name: "Transfer",
7774
+ type: "event",
7775
+ },
7776
+ {
7777
+ inputs: [],
7778
+ name: "DEFAULT_ADMIN_ROLE",
7779
+ outputs: [
7780
+ {
7781
+ internalType: "bytes32",
7782
+ name: "",
7783
+ type: "bytes32",
7784
+ },
7785
+ ],
7786
+ stateMutability: "view",
7787
+ type: "function",
7788
+ },
7789
+ {
7790
+ inputs: [],
7791
+ name: "MINTER_ROLE",
7792
+ outputs: [
7793
+ {
7794
+ internalType: "bytes32",
7795
+ name: "",
7796
+ type: "bytes32",
7797
+ },
7798
+ ],
7799
+ stateMutability: "view",
7800
+ type: "function",
7801
+ },
7802
+ {
7803
+ inputs: [
7804
+ {
7805
+ internalType: "address",
7806
+ name: "to",
7807
+ type: "address",
7808
+ },
7809
+ {
7810
+ internalType: "uint256",
7811
+ name: "tokenId",
7812
+ type: "uint256",
7813
+ },
7814
+ ],
7815
+ name: "approve",
7816
+ outputs: [],
7817
+ stateMutability: "nonpayable",
7818
+ type: "function",
7819
+ },
7820
+ {
7821
+ inputs: [
7822
+ {
7823
+ internalType: "address",
7824
+ name: "owner",
7825
+ type: "address",
7826
+ },
7827
+ ],
7828
+ name: "balanceOf",
7829
+ outputs: [
7830
+ {
7831
+ internalType: "uint256",
7832
+ name: "",
7833
+ type: "uint256",
7834
+ },
7835
+ ],
7836
+ stateMutability: "view",
7837
+ type: "function",
7838
+ },
7839
+ {
7840
+ inputs: [],
7841
+ name: "baseURI",
7842
+ outputs: [
7843
+ {
7844
+ internalType: "string",
7845
+ name: "",
7846
+ type: "string",
7847
+ },
7848
+ ],
7849
+ stateMutability: "view",
7850
+ type: "function",
7851
+ },
7852
+ {
7853
+ inputs: [
7854
+ {
7855
+ internalType: "uint256",
7856
+ name: "tokenId",
7857
+ type: "uint256",
7858
+ },
7859
+ ],
7860
+ name: "burn",
7861
+ outputs: [],
7862
+ stateMutability: "nonpayable",
7863
+ type: "function",
7864
+ },
7865
+ {
7866
+ inputs: [],
7867
+ name: "contractURI",
7868
+ outputs: [
7869
+ {
7870
+ internalType: "string",
7871
+ name: "",
7872
+ type: "string",
7873
+ },
7874
+ ],
7875
+ stateMutability: "view",
7876
+ type: "function",
7877
+ },
7878
+ {
7879
+ inputs: [],
7880
+ name: "getAdmins",
7881
+ outputs: [
7882
+ {
7883
+ internalType: "address[]",
7884
+ name: "",
7885
+ type: "address[]",
7886
+ },
7887
+ ],
7888
+ stateMutability: "view",
7889
+ type: "function",
7890
+ },
7891
+ {
7892
+ inputs: [
7893
+ {
7894
+ internalType: "uint256",
7895
+ name: "tokenId",
7896
+ type: "uint256",
7897
+ },
7898
+ ],
7899
+ name: "getApproved",
7900
+ outputs: [
7901
+ {
7902
+ internalType: "address",
7903
+ name: "",
7904
+ type: "address",
7905
+ },
7906
+ ],
7907
+ stateMutability: "view",
7908
+ type: "function",
7909
+ },
7910
+ {
7911
+ inputs: [
7912
+ {
7913
+ internalType: "bytes32",
7914
+ name: "role",
7915
+ type: "bytes32",
7916
+ },
7917
+ ],
7918
+ name: "getRoleAdmin",
7919
+ outputs: [
7920
+ {
7921
+ internalType: "bytes32",
7922
+ name: "",
7923
+ type: "bytes32",
7924
+ },
7925
+ ],
7926
+ stateMutability: "view",
7927
+ type: "function",
7928
+ },
7929
+ {
7930
+ inputs: [
7931
+ {
7932
+ internalType: "bytes32",
7933
+ name: "role",
7934
+ type: "bytes32",
7935
+ },
7936
+ {
7937
+ internalType: "uint256",
7938
+ name: "index",
7939
+ type: "uint256",
7940
+ },
7941
+ ],
7942
+ name: "getRoleMember",
7943
+ outputs: [
7944
+ {
7945
+ internalType: "address",
7946
+ name: "",
7947
+ type: "address",
7948
+ },
7949
+ ],
7950
+ stateMutability: "view",
7951
+ type: "function",
7952
+ },
7953
+ {
7954
+ inputs: [
7955
+ {
7956
+ internalType: "bytes32",
7957
+ name: "role",
7958
+ type: "bytes32",
7959
+ },
7960
+ ],
7961
+ name: "getRoleMemberCount",
7962
+ outputs: [
7963
+ {
7964
+ internalType: "uint256",
7965
+ name: "",
7966
+ type: "uint256",
7967
+ },
7968
+ ],
7969
+ stateMutability: "view",
7970
+ type: "function",
7971
+ },
7972
+ {
7973
+ inputs: [
7974
+ {
7975
+ internalType: "address",
7976
+ name: "user",
7977
+ type: "address",
7978
+ },
7979
+ ],
7980
+ name: "grantMinterRole",
7981
+ outputs: [],
7982
+ stateMutability: "nonpayable",
7983
+ type: "function",
7984
+ },
7985
+ {
7986
+ inputs: [
7987
+ {
7988
+ internalType: "bytes32",
7989
+ name: "role",
7990
+ type: "bytes32",
7991
+ },
7992
+ {
7993
+ internalType: "address",
7994
+ name: "account",
7995
+ type: "address",
7996
+ },
7997
+ ],
7998
+ name: "grantRole",
7999
+ outputs: [],
8000
+ stateMutability: "nonpayable",
8001
+ type: "function",
8002
+ },
8003
+ {
8004
+ inputs: [
8005
+ {
8006
+ internalType: "bytes32",
8007
+ name: "role",
8008
+ type: "bytes32",
8009
+ },
8010
+ {
8011
+ internalType: "address",
8012
+ name: "account",
8013
+ type: "address",
8014
+ },
8015
+ ],
8016
+ name: "hasRole",
8017
+ outputs: [
8018
+ {
8019
+ internalType: "bool",
8020
+ name: "",
8021
+ type: "bool",
8022
+ },
8023
+ ],
8024
+ stateMutability: "view",
8025
+ type: "function",
8026
+ },
8027
+ {
8028
+ inputs: [
8029
+ {
8030
+ internalType: "address",
8031
+ name: "owner",
8032
+ type: "address",
8033
+ },
8034
+ {
8035
+ internalType: "address",
8036
+ name: "operator",
8037
+ type: "address",
8038
+ },
8039
+ ],
8040
+ name: "isApprovedForAll",
8041
+ outputs: [
8042
+ {
8043
+ internalType: "bool",
8044
+ name: "",
8045
+ type: "bool",
8046
+ },
8047
+ ],
8048
+ stateMutability: "view",
8049
+ type: "function",
8050
+ },
8051
+ {
8052
+ inputs: [
8053
+ {
8054
+ internalType: "address",
8055
+ name: "to",
8056
+ type: "address",
8057
+ },
8058
+ {
8059
+ internalType: "uint256",
8060
+ name: "amount",
8061
+ type: "uint256",
8062
+ },
8063
+ ],
8064
+ name: "mint",
8065
+ outputs: [],
8066
+ stateMutability: "nonpayable",
8067
+ type: "function",
8068
+ },
8069
+ {
8070
+ inputs: [],
8071
+ name: "name",
8072
+ outputs: [
8073
+ {
8074
+ internalType: "string",
8075
+ name: "",
8076
+ type: "string",
8077
+ },
8078
+ ],
8079
+ stateMutability: "view",
8080
+ type: "function",
8081
+ },
8082
+ {
8083
+ inputs: [
8084
+ {
8085
+ internalType: "uint256",
8086
+ name: "tokenId",
8087
+ type: "uint256",
8088
+ },
8089
+ ],
8090
+ name: "ownerOf",
8091
+ outputs: [
8092
+ {
8093
+ internalType: "address",
8094
+ name: "",
8095
+ type: "address",
8096
+ },
8097
+ ],
8098
+ stateMutability: "view",
8099
+ type: "function",
8100
+ },
8101
+ {
8102
+ inputs: [
8103
+ {
8104
+ internalType: "bytes32",
8105
+ name: "role",
8106
+ type: "bytes32",
8107
+ },
8108
+ {
8109
+ internalType: "address",
8110
+ name: "account",
8111
+ type: "address",
8112
+ },
8113
+ ],
8114
+ name: "renounceRole",
8115
+ outputs: [],
8116
+ stateMutability: "nonpayable",
8117
+ type: "function",
8118
+ },
8119
+ {
8120
+ inputs: [
8121
+ {
8122
+ internalType: "address",
8123
+ name: "user",
8124
+ type: "address",
8125
+ },
8126
+ ],
8127
+ name: "revokeMinterRole",
8128
+ outputs: [],
8129
+ stateMutability: "nonpayable",
8130
+ type: "function",
8131
+ },
8132
+ {
8133
+ inputs: [
8134
+ {
8135
+ internalType: "bytes32",
8136
+ name: "role",
8137
+ type: "bytes32",
8138
+ },
8139
+ {
8140
+ internalType: "address",
8141
+ name: "account",
8142
+ type: "address",
8143
+ },
8144
+ ],
8145
+ name: "revokeRole",
8146
+ outputs: [],
8147
+ stateMutability: "nonpayable",
8148
+ type: "function",
8149
+ },
8150
+ {
8151
+ inputs: [],
8152
+ name: "royaltyAllowlist",
8153
+ outputs: [
8154
+ {
8155
+ internalType: "contract IRoyaltyAllowlist",
8156
+ name: "",
8157
+ type: "address",
8158
+ },
8159
+ ],
8160
+ stateMutability: "view",
8161
+ type: "function",
8162
+ },
8163
+ {
8164
+ inputs: [
8165
+ {
8166
+ internalType: "uint256",
8167
+ name: "_tokenId",
8168
+ type: "uint256",
8169
+ },
8170
+ {
8171
+ internalType: "uint256",
8172
+ name: "_salePrice",
8173
+ type: "uint256",
8174
+ },
8175
+ ],
8176
+ name: "royaltyInfo",
8177
+ outputs: [
8178
+ {
8179
+ internalType: "address",
8180
+ name: "",
8181
+ type: "address",
8182
+ },
8183
+ {
8184
+ internalType: "uint256",
8185
+ name: "",
8186
+ type: "uint256",
8187
+ },
8188
+ ],
8189
+ stateMutability: "view",
8190
+ type: "function",
8191
+ },
8192
+ {
8193
+ inputs: [
8194
+ {
8195
+ internalType: "address",
8196
+ name: "from",
8197
+ type: "address",
8198
+ },
8199
+ {
8200
+ internalType: "address",
8201
+ name: "to",
8202
+ type: "address",
8203
+ },
8204
+ {
8205
+ internalType: "uint256",
8206
+ name: "tokenId",
8207
+ type: "uint256",
8208
+ },
8209
+ ],
8210
+ name: "safeTransferFrom",
8211
+ outputs: [],
8212
+ stateMutability: "nonpayable",
8213
+ type: "function",
8214
+ },
8215
+ {
8216
+ inputs: [
8217
+ {
8218
+ internalType: "address",
8219
+ name: "from",
8220
+ type: "address",
8221
+ },
8222
+ {
8223
+ internalType: "address",
8224
+ name: "to",
8225
+ type: "address",
8226
+ },
8227
+ {
8228
+ internalType: "uint256",
8229
+ name: "tokenId",
8230
+ type: "uint256",
8231
+ },
8232
+ {
8233
+ internalType: "bytes",
8234
+ name: "data",
8235
+ type: "bytes",
8236
+ },
8237
+ ],
8238
+ name: "safeTransferFrom",
8239
+ outputs: [],
8240
+ stateMutability: "nonpayable",
8241
+ type: "function",
8242
+ },
8243
+ {
8244
+ inputs: [
8245
+ {
8246
+ internalType: "address",
8247
+ name: "operator",
8248
+ type: "address",
8249
+ },
8250
+ {
8251
+ internalType: "bool",
8252
+ name: "approved",
8253
+ type: "bool",
8254
+ },
8255
+ ],
8256
+ name: "setApprovalForAll",
8257
+ outputs: [],
8258
+ stateMutability: "nonpayable",
8259
+ type: "function",
8260
+ },
8261
+ {
8262
+ inputs: [
8263
+ {
8264
+ internalType: "string",
8265
+ name: "baseURI_",
8266
+ type: "string",
8267
+ },
8268
+ ],
8269
+ name: "setBaseURI",
8270
+ outputs: [],
8271
+ stateMutability: "nonpayable",
8272
+ type: "function",
8273
+ },
8274
+ {
8275
+ inputs: [
8276
+ {
8277
+ internalType: "string",
8278
+ name: "_contractURI",
8279
+ type: "string",
8280
+ },
8281
+ ],
8282
+ name: "setContractURI",
8283
+ outputs: [],
8284
+ stateMutability: "nonpayable",
8285
+ type: "function",
8286
+ },
8287
+ {
8288
+ inputs: [
8289
+ {
8290
+ internalType: "address",
8291
+ name: "_royaltyAllowlist",
8292
+ type: "address",
8293
+ },
8294
+ ],
8295
+ name: "setRoyaltyAllowlistRegistry",
8296
+ outputs: [],
8297
+ stateMutability: "nonpayable",
8298
+ type: "function",
8299
+ },
8300
+ {
8301
+ inputs: [
8302
+ {
8303
+ internalType: "bytes4",
8304
+ name: "interfaceId",
8305
+ type: "bytes4",
8306
+ },
8307
+ ],
8308
+ name: "supportsInterface",
8309
+ outputs: [
8310
+ {
8311
+ internalType: "bool",
8312
+ name: "",
8313
+ type: "bool",
8314
+ },
8315
+ ],
8316
+ stateMutability: "view",
8317
+ type: "function",
8318
+ },
8319
+ {
8320
+ inputs: [],
8321
+ name: "symbol",
8322
+ outputs: [
8323
+ {
8324
+ internalType: "string",
8325
+ name: "",
8326
+ type: "string",
8327
+ },
8328
+ ],
8329
+ stateMutability: "view",
8330
+ type: "function",
8331
+ },
8332
+ {
8333
+ inputs: [
8334
+ {
8335
+ internalType: "uint256",
8336
+ name: "index",
8337
+ type: "uint256",
8338
+ },
8339
+ ],
8340
+ name: "tokenByIndex",
8341
+ outputs: [
8342
+ {
8343
+ internalType: "uint256",
8344
+ name: "",
8345
+ type: "uint256",
8346
+ },
8347
+ ],
8348
+ stateMutability: "view",
8349
+ type: "function",
8350
+ },
8351
+ {
8352
+ inputs: [
8353
+ {
8354
+ internalType: "address",
8355
+ name: "owner",
8356
+ type: "address",
8357
+ },
8358
+ {
8359
+ internalType: "uint256",
8360
+ name: "index",
8361
+ type: "uint256",
8362
+ },
8363
+ ],
8364
+ name: "tokenOfOwnerByIndex",
8365
+ outputs: [
8366
+ {
8367
+ internalType: "uint256",
8368
+ name: "",
8369
+ type: "uint256",
8370
+ },
8371
+ ],
8372
+ stateMutability: "view",
8373
+ type: "function",
8374
+ },
8375
+ {
8376
+ inputs: [
8377
+ {
8378
+ internalType: "uint256",
8379
+ name: "tokenId",
8380
+ type: "uint256",
8381
+ },
8382
+ ],
8383
+ name: "tokenURI",
8384
+ outputs: [
8385
+ {
8386
+ internalType: "string",
8387
+ name: "",
8388
+ type: "string",
8389
+ },
8390
+ ],
8391
+ stateMutability: "view",
8392
+ type: "function",
8393
+ },
8394
+ {
8395
+ inputs: [],
8396
+ name: "totalSupply",
8397
+ outputs: [
8398
+ {
8399
+ internalType: "uint256",
8400
+ name: "",
8401
+ type: "uint256",
8402
+ },
8403
+ ],
8404
+ stateMutability: "view",
8405
+ type: "function",
8406
+ },
8407
+ {
8408
+ inputs: [
8409
+ {
8410
+ internalType: "address",
8411
+ name: "from",
8412
+ type: "address",
8413
+ },
8414
+ {
8415
+ internalType: "address",
8416
+ name: "to",
8417
+ type: "address",
8418
+ },
8419
+ {
8420
+ internalType: "uint256",
8421
+ name: "tokenId",
8422
+ type: "uint256",
8423
+ },
8424
+ ],
8425
+ name: "transferFrom",
8426
+ outputs: [],
8427
+ stateMutability: "nonpayable",
8428
+ type: "function",
8429
+ },
8430
+ ];
8431
+ const _bytecode = "0x60806040523480156200001157600080fd5b50604051620060d4380380620060d4833981810160405281019062000037919062000762565b868686868686868585816000908162000051919062000adc565b50806001908162000063919062000adc565b505050620000788282620000dc60201b60201c565b6200008d6000801b886200027f60201b60201c565b83601090816200009e919062000adc565b5082600f9081620000b0919062000adc565b50620000c86011620002c760201b620015f11760201c565b505050505050505050505050505062000cde565b620000ec620002dd60201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156200014d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001449062000c4a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620001bf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001b69062000cbc565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600d60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b620002968282620002e760201b620016071760201c565b620002c28160076000858152602001908152602001600020620003d960201b620016e81790919060201c565b505050565b6001816000016000828254019250508190555050565b6000612710905090565b620002f982826200041160201b60201c565b620003d55760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200037a6200047c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000409836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200048460201b60201c565b905092915050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000620004988383620004fe60201b60201c565b620004f3578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050620004f8565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005628262000535565b9050919050565b620005748162000555565b81146200058057600080fd5b50565b600081519050620005948162000569565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620005ef82620005a4565b810181811067ffffffffffffffff82111715620006115762000610620005b5565b5b80604052505050565b60006200062662000521565b9050620006348282620005e4565b919050565b600067ffffffffffffffff821115620006575762000656620005b5565b5b6200066282620005a4565b9050602081019050919050565b60005b838110156200068f57808201518184015260208101905062000672565b60008484015250505050565b6000620006b2620006ac8462000639565b6200061a565b905082815260208101848484011115620006d157620006d06200059f565b5b620006de8482856200066f565b509392505050565b600082601f830112620006fe57620006fd6200059a565b5b8151620007108482602086016200069b565b91505092915050565b60006bffffffffffffffffffffffff82169050919050565b6200073c8162000719565b81146200074857600080fd5b50565b6000815190506200075c8162000731565b92915050565b600080600080600080600060e0888a0312156200078457620007836200052b565b5b6000620007948a828b0162000583565b975050602088015167ffffffffffffffff811115620007b857620007b762000530565b5b620007c68a828b01620006e6565b965050604088015167ffffffffffffffff811115620007ea57620007e962000530565b5b620007f88a828b01620006e6565b955050606088015167ffffffffffffffff8111156200081c576200081b62000530565b5b6200082a8a828b01620006e6565b945050608088015167ffffffffffffffff8111156200084e576200084d62000530565b5b6200085c8a828b01620006e6565b93505060a06200086f8a828b0162000583565b92505060c0620008828a828b016200074b565b91505092959891949750929550565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008e457607f821691505b602082108103620008fa57620008f96200089c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000925565b62000970868362000925565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009bd620009b7620009b18462000988565b62000992565b62000988565b9050919050565b6000819050919050565b620009d9836200099c565b620009f1620009e882620009c4565b84845462000932565b825550505050565b600090565b62000a08620009f9565b62000a15818484620009ce565b505050565b5b8181101562000a3d5762000a31600082620009fe565b60018101905062000a1b565b5050565b601f82111562000a8c5762000a568162000900565b62000a618462000915565b8101602085101562000a71578190505b62000a8962000a808562000915565b83018262000a1a565b50505b505050565b600082821c905092915050565b600062000ab16000198460080262000a91565b1980831691505092915050565b600062000acc838362000a9e565b9150826002028217905092915050565b62000ae78262000891565b67ffffffffffffffff81111562000b035762000b02620005b5565b5b62000b0f8254620008cb565b62000b1c82828562000a41565b600060209050601f83116001811462000b54576000841562000b3f578287015190505b62000b4b858262000abe565b86555062000bbb565b601f19841662000b648662000900565b60005b8281101562000b8e5784890151825560018201915060208501945060208101905062000b67565b8683101562000bae578489015162000baa601f89168262000a9e565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b600062000c32602a8362000bc3565b915062000c3f8262000bd4565b604082019050919050565b6000602082019050818103600083015262000c658162000c23565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b600062000ca460198362000bc3565b915062000cb18262000c6c565b602082019050919050565b6000602082019050818103600083015262000cd78162000c95565b9050919050565b6153e68062000cee6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80636352211e1161013057806395d89b41116100b8578063ca15c8731161007c578063ca15c87314610697578063d5391393146106c7578063d547741f146106e5578063e8a3d48514610701578063e985e9c51461071f57610227565b806395d89b41146105f3578063a217fddf14610611578063a22cb4651461062f578063b88d4fde1461064b578063c87b56dd1461066757610227565b80636c0360eb116100ff5780636c0360eb1461052957806370a08231146105475780639010d07c1461057757806391d14854146105a7578063938e3d7b146105d757610227565b80636352211e146104a35780636588962a146104d357806369e2f0fb146104ef5780636b3a06321461050b57610227565b80632f745c59116101b357806340c10f191161018257806340c10f191461040357806342842e0e1461041f57806342966c681461043b5780634f6ccce71461045757806355f804b31461048757610227565b80632f745c591461037d57806331ae450b146103ad57806336568abe146103cb5780633dd1eb61146103e757610227565b806318160ddd116101fa57806318160ddd146102c657806323b872dd146102e4578063248a9ca3146103005780632a55205a146103305780632f2ff15d1461036157610227565b806301ffc9a71461022c57806306fdde031461025c578063081812fc1461027a578063095ea7b3146102aa575b600080fd5b61024660048036038101906102419190613a2e565b61074f565b6040516102539190613a76565b60405180910390f35b610264610761565b6040516102719190613b21565b60405180910390f35b610294600480360381019061028f9190613b79565b6107f3565b6040516102a19190613be7565b60405180910390f35b6102c460048036038101906102bf9190613c2e565b610839565b005b6102ce610847565b6040516102db9190613c7d565b60405180910390f35b6102fe60048036038101906102f99190613c98565b610854565b005b61031a60048036038101906103159190613d21565b6108b4565b6040516103279190613d5d565b60405180910390f35b61034a60048036038101906103459190613d78565b6108d4565b604051610358929190613db8565b60405180910390f35b61037b60048036038101906103769190613de1565b610abe565b005b61039760048036038101906103929190613c2e565b610adf565b6040516103a49190613c7d565b60405180910390f35b6103b5610b84565b6040516103c29190613edf565b60405180910390f35b6103e560048036038101906103e09190613de1565b610c64565b005b61040160048036038101906103fc9190613f01565b610ce7565b005b61041d60048036038101906104189190613c2e565b610d22565b005b61043960048036038101906104349190613c98565b610d7a565b005b61045560048036038101906104509190613b79565b610d9a565b005b610471600480360381019061046c9190613b79565b610df6565b60405161047e9190613c7d565b60405180910390f35b6104a1600480360381019061049c9190614063565b610e67565b005b6104bd60048036038101906104b89190613b79565b610e88565b6040516104ca9190613be7565b60405180910390f35b6104ed60048036038101906104e89190613f01565b610f0e565b005b61050960048036038101906105049190613f01565b611094565b005b6105136110cf565b604051610520919061410b565b60405180910390f35b6105316110f5565b60405161053e9190613b21565b60405180910390f35b610561600480360381019061055c9190613f01565b611183565b60405161056e9190613c7d565b60405180910390f35b610591600480360381019061058c9190614126565b61123a565b60405161059e9190613be7565b60405180910390f35b6105c160048036038101906105bc9190613de1565b611269565b6040516105ce9190613a76565b60405180910390f35b6105f160048036038101906105ec9190614063565b6112d4565b005b6105fb6112f5565b6040516106089190613b21565b60405180910390f35b610619611387565b6040516106269190613d5d565b60405180910390f35b61064960048036038101906106449190614192565b61138e565b005b61066560048036038101906106609190614273565b61139c565b005b610681600480360381019061067c9190613b79565b6113fe565b60405161068e9190613b21565b60405180910390f35b6106b160048036038101906106ac9190613d21565b611466565b6040516106be9190613c7d565b60405180910390f35b6106cf61148a565b6040516106dc9190613d5d565b60405180910390f35b6106ff60048036038101906106fa9190613de1565b6114ae565b005b6107096114cf565b6040516107169190613b21565b60405180910390f35b610739600480360381019061073491906142f6565b61155d565b6040516107469190613a76565b60405180910390f35b600061075a82611718565b9050919050565b60606000805461077090614365565b80601f016020809104026020016040519081016040528092919081815260200182805461079c90614365565b80156107e95780601f106107be576101008083540402835291602001916107e9565b820191906000526020600020905b8154815290600101906020018083116107cc57829003601f168201915b5050505050905090565b60006107fe82611792565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b61084382826117dd565b5050565b6000600b80549050905090565b61086561085f6117f4565b826117fc565b6108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b90614408565b60405180910390fd5b6108af838383611891565b505050565b600060066000838152602001908152602001600020600101549050919050565b6000806000600e60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610a6957600d6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610a736118a1565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610a9f9190614457565b610aa991906144c8565b90508160000151819350935050509250929050565b610ac7826108b4565b610ad0816118ab565b610ada83836118bf565b505050565b6000610aea83611183565b8210610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b229061456b565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b60606000610b946000801b611466565b905060008167ffffffffffffffff811115610bb257610bb1613f38565b5b604051908082528060200260200182016040528015610be05781602001602082028036833780820191505090505b50905060005b82811015610c5b57610bfb6000801b8261123a565b828281518110610c0e57610c0d61458b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080610c53906145ba565b915050610be6565b50809250505090565b610c6c6117f4565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd090614674565b60405180910390fd5b610ce382826118f3565b5050565b6000801b610cf4816118ab565b610d1e7f4d494e5445525f524f4c4500000000000000000000000000000000000000000083610abe565b5050565b7f4d494e5445525f524f4c45000000000000000000000000000000000000000000610d4c816118ab565b60005b82811015610d7457610d6084611927565b508080610d6c906145ba565b915050610d4f565b50505050565b610d958383836040518060200160405280600081525061139c565b505050565b610dab610da56117f4565b826117fc565b610dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de190614408565b60405180910390fd5b610df381611953565b50565b6000610e00610847565b8210610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890614706565b60405180910390fd5b600b8281548110610e5557610e5461458b565b5b90600052602060002001549050919050565b6000801b610e74816118ab565b8160109081610e8391906148c8565b505050565b600080610e9483611aa1565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc906149e6565b60405180910390fd5b80915050919050565b6000801b610f1b816118ab565b8173ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f05a3b809000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f749190614a15565b602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190614a45565b610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb90614ae4565b60405180910390fd5b7f4a1d010d926ae0d4294a4afe61ae81bb378335fbf671e099a7138b5afeefdf84600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051611047929190614b04565b60405180910390a181600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000801b6110a1816118ab565b6110cb7f4d494e5445525f524f4c45000000000000000000000000000000000000000000836114ae565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6010805461110290614365565b80601f016020809104026020016040519081016040528092919081815260200182805461112e90614365565b801561117b5780601f106111505761010080835404028352916020019161117b565b820191906000526020600020905b81548152906001019060200180831161115e57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea90614b9f565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006112618260076000868152602001908152602001600020611ade90919063ffffffff16565b905092915050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b6112e1816118ab565b81600f90816112f091906148c8565b505050565b60606001805461130490614365565b80601f016020809104026020016040519081016040528092919081815260200182805461133090614365565b801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b5050505050905090565b6000801b81565b6113988282611af8565b5050565b6113ad6113a76117f4565b836117fc565b6113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390614408565b60405180910390fd5b6113f884848484611b0f565b50505050565b606061140982611792565b6000611413611b6b565b90506000815111611433576040518060200160405280600081525061145e565b8061143d84611bfd565b60405160200161144e929190614bfb565b6040516020818303038152906040525b915050919050565b600061148360076000848152602001908152602001600020611ccb565b9050919050565b7f4d494e5445525f524f4c4500000000000000000000000000000000000000000081565b6114b7826108b4565b6114c0816118ab565b6114ca83836118f3565b505050565b600f80546114dc90614365565b80601f016020809104026020016040519081016040528092919081815260200182805461150890614365565b80156115555780601f1061152a57610100808354040283529160200191611555565b820191906000526020600020905b81548152906001019060200180831161153857829003601f168201915b505050505081565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6001816000016000828254019250508190555050565b6116118282611269565b6116e45760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506116896117f4565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000611710836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611ce0565b905092915050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061178b575061178a82611d50565b5b9050919050565b61179b81611dca565b6117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d1906149e6565b60405180910390fd5b50565b6117e682611e0b565b6117f08282611f64565b5050565b600033905090565b60008061180883610e88565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061184a5750611849818561155d565b5b8061188857508373ffffffffffffffffffffffffffffffffffffffff16611870846107f3565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b61189c83838361207b565b505050565b6000612710905090565b6118bc816118b76117f4565b612093565b50565b6118c98282611607565b6118ee81600760008581526020019081526020016000206116e890919063ffffffff16565b505050565b6118fd8282612118565b61192281600760008581526020019081526020016000206121fa90919063ffffffff16565b505050565b600080611934601161222a565b90506119408382612238565b61194a60116115f1565b80915050919050565b600061195e82610e88565b905061196e816000846001612455565b61197782610e88565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611a9d816000846001612467565b5050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611aed836000018361246d565b60001c905092915050565b611b0182611e0b565b611b0b8282612498565b5050565b611b1a848484611891565b611b26848484846124ae565b611b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5c90614c91565b60405180910390fd5b50505050565b606060108054611b7a90614365565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba690614365565b8015611bf35780601f10611bc857610100808354040283529160200191611bf3565b820191906000526020600020905b815481529060010190602001808311611bd657829003601f168201915b5050505050905090565b606060006001611c0c84612635565b01905060008167ffffffffffffffff811115611c2b57611c2a613f38565b5b6040519080825280601f01601f191660200182016040528015611c5d5781602001600182028036833780820191505090505b509050600082602001820190505b600115611cc0578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611cb457611cb3614499565b5b04945060008503611c6b575b819350505050919050565b6000611cd982600001612788565b9050919050565b6000611cec8383612799565b611d45578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611d4a565b600090505b92915050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dc35750611dc2826127bc565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16611dec83611aa1565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f605760008173ffffffffffffffffffffffffffffffffffffffff163b1480611f1f5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305a3b809826040518263ffffffff1660e01b8152600401611edd9190613be7565b602060405180830381865afa158015611efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1e9190614a45565b5b611f6157806040517f8371ab02000000000000000000000000000000000000000000000000000000008152600401611f579190613be7565b60405180910390fd5b5b50565b6000611f6f82610e88565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd690614d23565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16611ffe6117f4565b73ffffffffffffffffffffffffffffffffffffffff16148061202d575061202c816120276117f4565b61155d565b5b61206c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206390614db5565b60405180910390fd5b61207683836127ce565b505050565b612083612887565b61208e8383836129f3565b505050565b61209d8282611269565b612114576120aa81612cec565b6120b88360001c6020612d19565b6040516020016120c9929190614e6d565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210b9190613b21565b60405180910390fd5b5050565b6121228282611269565b156121f65760006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061219b6117f4565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000612222836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612f55565b905092915050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229e90614ef3565b60405180910390fd5b6122b081611dca565b156122f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e790614f5f565b60405180910390fd5b6122fe600083836001612455565b61230781611dca565b15612347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233e90614f5f565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612451600083836001612467565b5050565b61246184848484613069565b50505050565b50505050565b60008260000182815481106124855761248461458b565b5b9060005260206000200154905092915050565b6124aa6124a36117f4565b83836131c7565b5050565b60006124cf8473ffffffffffffffffffffffffffffffffffffffff16613333565b15612628578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026124f86117f4565b8786866040518563ffffffff1660e01b815260040161251a9493929190614fd4565b6020604051808303816000875af192505050801561255657506040513d601f19601f820116820180604052508101906125539190615035565b60015b6125d8573d8060008114612586576040519150601f19603f3d011682016040523d82523d6000602084013e61258b565b606091505b5060008151036125d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c790614c91565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061262d565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612693577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161268957612688614499565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106126d0576d04ee2d6d415b85acef810000000083816126c6576126c5614499565b5b0492506020810190505b662386f26fc1000083106126ff57662386f26fc1000083816126f5576126f4614499565b5b0492506010810190505b6305f5e1008310612728576305f5e100838161271e5761271d614499565b5b0492506008810190505b612710831061274d57612710838161274357612742614499565b5b0492506004810190505b60648310612770576064838161276657612765614499565b5b0492506002810190505b600a831061277f576001810190505b80915050919050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b60006127c782613356565b9050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661284183610e88565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129f0573273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806129af5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305a3b809336040518263ffffffff1660e01b815260040161296d9190613be7565b602060405180830381865afa15801561298a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ae9190614a45565b5b6129f157336040517f937db65f0000000000000000000000000000000000000000000000000000000081526004016129e79190613be7565b60405180910390fd5b5b565b8273ffffffffffffffffffffffffffffffffffffffff16612a1382610e88565b73ffffffffffffffffffffffffffffffffffffffff1614612a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a60906150d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612acf90615166565b60405180910390fd5b612ae58383836001612455565b8273ffffffffffffffffffffffffffffffffffffffff16612b0582610e88565b73ffffffffffffffffffffffffffffffffffffffff1614612b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b52906150d4565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612ce78383836001612467565b505050565b6060612d128273ffffffffffffffffffffffffffffffffffffffff16601460ff16612d19565b9050919050565b606060006002836002612d2c9190614457565b612d369190615186565b67ffffffffffffffff811115612d4f57612d4e613f38565b5b6040519080825280601f01601f191660200182016040528015612d815781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612db957612db861458b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612e1d57612e1c61458b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612e5d9190614457565b612e679190615186565b90505b6001811115612f07577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612ea957612ea861458b565b5b1a60f81b828281518110612ec057612ebf61458b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612f00906151ba565b9050612e6a565b5060008414612f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f429061522f565b60405180910390fd5b8091505092915050565b6000808360010160008481526020019081526020016000205490506000811461305d576000600182612f87919061524f565b9050600060018660000180549050612f9f919061524f565b905081811461300e576000866000018281548110612fc057612fbf61458b565b5b9060005260206000200154905080876000018481548110612fe457612fe361458b565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b8560000180548061302257613021615283565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050613063565b60009150505b92915050565b613075848484846133d0565b60018111156130b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b090615324565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603613100576130fb816134f6565b61313f565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461313e5761313d858261353f565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036131815761317c816136ac565b6131c0565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146131bf576131be848261377d565b5b5b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161322c90615390565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516133269190613a76565b60405180910390a3505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806133c957506133c8826137fc565b5b9050919050565b60018111156134f057600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146134645780600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461345c919061524f565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146134ef5780600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134e79190615186565b925050819055505b5b50505050565b600b80549050600c600083815260200190815260200160002081905550600b81908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161354c84611183565b613556919061524f565b90506000600a600084815260200190815260200160002054905081811461363b576000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208190555081600a600083815260200190815260200160002081905550505b600a600084815260200190815260200160002060009055600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600b805490506136c0919061524f565b90506000600c60008481526020019081526020016000205490506000600b83815481106136f0576136ef61458b565b5b9060005260206000200154905080600b83815481106137125761371161458b565b5b906000526020600020018190555081600c600083815260200190815260200160002081905550600c600085815260200190815260200160002060009055600b80548061376157613760615283565b5b6001900381819060005260206000200160009055905550505050565b600061378883611183565b905081600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000208190555080600a600084815260200190815260200160002081905550505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061386f575061386e82613876565b5b9050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061394157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613951575061395082613958565b5b9050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613a0b816139d6565b8114613a1657600080fd5b50565b600081359050613a2881613a02565b92915050565b600060208284031215613a4457613a436139cc565b5b6000613a5284828501613a19565b91505092915050565b60008115159050919050565b613a7081613a5b565b82525050565b6000602082019050613a8b6000830184613a67565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613acb578082015181840152602081019050613ab0565b60008484015250505050565b6000601f19601f8301169050919050565b6000613af382613a91565b613afd8185613a9c565b9350613b0d818560208601613aad565b613b1681613ad7565b840191505092915050565b60006020820190508181036000830152613b3b8184613ae8565b905092915050565b6000819050919050565b613b5681613b43565b8114613b6157600080fd5b50565b600081359050613b7381613b4d565b92915050565b600060208284031215613b8f57613b8e6139cc565b5b6000613b9d84828501613b64565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bd182613ba6565b9050919050565b613be181613bc6565b82525050565b6000602082019050613bfc6000830184613bd8565b92915050565b613c0b81613bc6565b8114613c1657600080fd5b50565b600081359050613c2881613c02565b92915050565b60008060408385031215613c4557613c446139cc565b5b6000613c5385828601613c19565b9250506020613c6485828601613b64565b9150509250929050565b613c7781613b43565b82525050565b6000602082019050613c926000830184613c6e565b92915050565b600080600060608486031215613cb157613cb06139cc565b5b6000613cbf86828701613c19565b9350506020613cd086828701613c19565b9250506040613ce186828701613b64565b9150509250925092565b6000819050919050565b613cfe81613ceb565b8114613d0957600080fd5b50565b600081359050613d1b81613cf5565b92915050565b600060208284031215613d3757613d366139cc565b5b6000613d4584828501613d0c565b91505092915050565b613d5781613ceb565b82525050565b6000602082019050613d726000830184613d4e565b92915050565b60008060408385031215613d8f57613d8e6139cc565b5b6000613d9d85828601613b64565b9250506020613dae85828601613b64565b9150509250929050565b6000604082019050613dcd6000830185613bd8565b613dda6020830184613c6e565b9392505050565b60008060408385031215613df857613df76139cc565b5b6000613e0685828601613d0c565b9250506020613e1785828601613c19565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e5681613bc6565b82525050565b6000613e688383613e4d565b60208301905092915050565b6000602082019050919050565b6000613e8c82613e21565b613e968185613e2c565b9350613ea183613e3d565b8060005b83811015613ed2578151613eb98882613e5c565b9750613ec483613e74565b925050600181019050613ea5565b5085935050505092915050565b60006020820190508181036000830152613ef98184613e81565b905092915050565b600060208284031215613f1757613f166139cc565b5b6000613f2584828501613c19565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613f7082613ad7565b810181811067ffffffffffffffff82111715613f8f57613f8e613f38565b5b80604052505050565b6000613fa26139c2565b9050613fae8282613f67565b919050565b600067ffffffffffffffff821115613fce57613fcd613f38565b5b613fd782613ad7565b9050602081019050919050565b82818337600083830152505050565b600061400661400184613fb3565b613f98565b90508281526020810184848401111561402257614021613f33565b5b61402d848285613fe4565b509392505050565b600082601f83011261404a57614049613f2e565b5b813561405a848260208601613ff3565b91505092915050565b600060208284031215614079576140786139cc565b5b600082013567ffffffffffffffff811115614097576140966139d1565b5b6140a384828501614035565b91505092915050565b6000819050919050565b60006140d16140cc6140c784613ba6565b6140ac565b613ba6565b9050919050565b60006140e3826140b6565b9050919050565b60006140f5826140d8565b9050919050565b614105816140ea565b82525050565b600060208201905061412060008301846140fc565b92915050565b6000806040838503121561413d5761413c6139cc565b5b600061414b85828601613d0c565b925050602061415c85828601613b64565b9150509250929050565b61416f81613a5b565b811461417a57600080fd5b50565b60008135905061418c81614166565b92915050565b600080604083850312156141a9576141a86139cc565b5b60006141b785828601613c19565b92505060206141c88582860161417d565b9150509250929050565b600067ffffffffffffffff8211156141ed576141ec613f38565b5b6141f682613ad7565b9050602081019050919050565b6000614216614211846141d2565b613f98565b90508281526020810184848401111561423257614231613f33565b5b61423d848285613fe4565b509392505050565b600082601f83011261425a57614259613f2e565b5b813561426a848260208601614203565b91505092915050565b6000806000806080858703121561428d5761428c6139cc565b5b600061429b87828801613c19565b94505060206142ac87828801613c19565b93505060406142bd87828801613b64565b925050606085013567ffffffffffffffff8111156142de576142dd6139d1565b5b6142ea87828801614245565b91505092959194509250565b6000806040838503121561430d5761430c6139cc565b5b600061431b85828601613c19565b925050602061432c85828601613c19565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061437d57607f821691505b6020821081036143905761438f614336565b5b50919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006143f2602d83613a9c565b91506143fd82614396565b604082019050919050565b60006020820190508181036000830152614421816143e5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061446282613b43565b915061446d83613b43565b925082820261447b81613b43565b9150828204841483151761449257614491614428565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144d382613b43565b91506144de83613b43565b9250826144ee576144ed614499565b5b828204905092915050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000614555602b83613a9c565b9150614560826144f9565b604082019050919050565b6000602082019050818103600083015261458481614548565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006145c582613b43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145f7576145f6614428565b5b600182019050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b600061465e602f83613a9c565b915061466982614602565b604082019050919050565b6000602082019050818103600083015261468d81614651565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b60006146f0602c83613a9c565b91506146fb82614694565b604082019050919050565b6000602082019050818103600083015261471f816146e3565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026147887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261474b565b614792868361474b565b95508019841693508086168417925050509392505050565b60006147c56147c06147bb84613b43565b6140ac565b613b43565b9050919050565b6000819050919050565b6147df836147aa565b6147f36147eb826147cc565b848454614758565b825550505050565b600090565b6148086147fb565b6148138184846147d6565b505050565b5b818110156148375761482c600082614800565b600181019050614819565b5050565b601f82111561487c5761484d81614726565b6148568461473b565b81016020851015614865578190505b6148796148718561473b565b830182614818565b50505b505050565b600082821c905092915050565b600061489f60001984600802614881565b1980831691505092915050565b60006148b8838361488e565b9150826002028217905092915050565b6148d182613a91565b67ffffffffffffffff8111156148ea576148e9613f38565b5b6148f48254614365565b6148ff82828561483b565b600060209050601f8311600181146149325760008415614920578287015190505b61492a85826148ac565b865550614992565b601f19841661494086614726565b60005b8281101561496857848901518255600182019150602085019450602081019050614943565b868310156149855784890151614981601f89168261488e565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006149d0601883613a9c565b91506149db8261499a565b602082019050919050565b600060208201905081810360008301526149ff816149c3565b9050919050565b614a0f816139d6565b82525050565b6000602082019050614a2a6000830184614a06565b92915050565b600081519050614a3f81614166565b92915050565b600060208284031215614a5b57614a5a6139cc565b5b6000614a6984828501614a30565b91505092915050565b7f636f6e747261637420646f6573206e6f7420696d706c656d656e742049526f7960008201527f616c7479416c6c6f776c69737400000000000000000000000000000000000000602082015250565b6000614ace602d83613a9c565b9150614ad982614a72565b604082019050919050565b60006020820190508181036000830152614afd81614ac1565b9050919050565b6000604082019050614b196000830185613bd8565b614b266020830184613bd8565b9392505050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000614b89602983613a9c565b9150614b9482614b2d565b604082019050919050565b60006020820190508181036000830152614bb881614b7c565b9050919050565b600081905092915050565b6000614bd582613a91565b614bdf8185614bbf565b9350614bef818560208601613aad565b80840191505092915050565b6000614c078285614bca565b9150614c138284614bca565b91508190509392505050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000614c7b603283613a9c565b9150614c8682614c1f565b604082019050919050565b60006020820190508181036000830152614caa81614c6e565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000614d0d602183613a9c565b9150614d1882614cb1565b604082019050919050565b60006020820190508181036000830152614d3c81614d00565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000614d9f603d83613a9c565b9150614daa82614d43565b604082019050919050565b60006020820190508181036000830152614dce81614d92565b9050919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000614e0b601783614bbf565b9150614e1682614dd5565b601782019050919050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000614e57601183614bbf565b9150614e6282614e21565b601182019050919050565b6000614e7882614dfe565b9150614e848285614bca565b9150614e8f82614e4a565b9150614e9b8284614bca565b91508190509392505050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614edd602083613a9c565b9150614ee882614ea7565b602082019050919050565b60006020820190508181036000830152614f0c81614ed0565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614f49601c83613a9c565b9150614f5482614f13565b602082019050919050565b60006020820190508181036000830152614f7881614f3c565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000614fa682614f7f565b614fb08185614f8a565b9350614fc0818560208601613aad565b614fc981613ad7565b840191505092915050565b6000608082019050614fe96000830187613bd8565b614ff66020830186613bd8565b6150036040830185613c6e565b81810360608301526150158184614f9b565b905095945050505050565b60008151905061502f81613a02565b92915050565b60006020828403121561504b5761504a6139cc565b5b600061505984828501615020565b91505092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006150be602583613a9c565b91506150c982615062565b604082019050919050565b600060208201905081810360008301526150ed816150b1565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000615150602483613a9c565b915061515b826150f4565b604082019050919050565b6000602082019050818103600083015261517f81615143565b9050919050565b600061519182613b43565b915061519c83613b43565b92508282019050808211156151b4576151b3614428565b5b92915050565b60006151c582613b43565b9150600082036151d8576151d7614428565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000615219602083613a9c565b9150615224826151e3565b602082019050919050565b600060208201905081810360008301526152488161520c565b9050919050565b600061525a82613b43565b915061526583613b43565b925082820390508181111561527d5761527c614428565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b600061530e603583613a9c565b9150615319826152b2565b604082019050919050565b6000602082019050818103600083015261533d81615301565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061537a601983613a9c565b915061538582615344565b602082019050919050565b600060208201905081810360008301526153a98161536d565b905091905056fea2646970667358221220f2de678fa1f1a3fc28d8056ba46769331f91c7536f9259f07a82f3f97942823964736f6c63430008110033";
8432
+ const isSuperArgs = (xs) => xs.length > 1;
8433
+ class ImmutableERC721PermissionedMintable__factory extends ethers.ContractFactory {
8434
+ constructor(...args) {
8435
+ if (isSuperArgs(args)) {
8436
+ super(...args);
8437
+ }
8438
+ else {
8439
+ super(_abi, _bytecode, args[0]);
8440
+ }
8441
+ }
8442
+ deploy(owner_, name_, symbol_, baseURI_, contractURI_, _receiver, _feeNumerator, overrides) {
8443
+ return super.deploy(owner_, name_, symbol_, baseURI_, contractURI_, _receiver, _feeNumerator, overrides || {});
8444
+ }
8445
+ getDeployTransaction(owner_, name_, symbol_, baseURI_, contractURI_, _receiver, _feeNumerator, overrides) {
8446
+ return super.getDeployTransaction(owner_, name_, symbol_, baseURI_, contractURI_, _receiver, _feeNumerator, overrides || {});
8447
+ }
8448
+ attach(address) {
8449
+ return super.attach(address);
8450
+ }
8451
+ connect(signer) {
8452
+ return super.connect(signer);
8453
+ }
8454
+ static bytecode = _bytecode;
8455
+ static abi = _abi;
8456
+ static createInterface() {
8457
+ return new ethers.utils.Interface(_abi);
8458
+ }
8459
+ static connect(address, signerOrProvider) {
8460
+ return new ethers.Contract(address, _abi, signerOrProvider);
8461
+ }
8462
+ }
8463
+
8464
+ class ERC20 {
8465
+ contract;
8466
+ constructor(contractAddress) {
8467
+ const factory = new ERC20__factory();
8468
+ this.contract = factory.attach(contractAddress);
8469
+ }
8470
+ /**
8471
+ * @returns a promise that resolves with a populated transaction
8472
+ */
8473
+ async totalSupply(overrides) {
8474
+ return this.contract.populateTransaction.totalSupply(overrides);
8475
+ }
8476
+ /**
8477
+ * @returns a promise that resolves with a populated transaction
8478
+ */
8479
+ async balanceOf(account, overrides) {
8480
+ return this.contract.populateTransaction.balanceOf(account, overrides);
8481
+ }
8482
+ /**
8483
+ * @returns a promise that resolves with a populated transaction
8484
+ */
8485
+ async transfer(to, amount, overrides) {
8486
+ return this.contract.populateTransaction.transfer(to, amount, overrides);
8487
+ }
8488
+ /**
8489
+ * @returns a promise that resolves with a populated transaction
8490
+ */
8491
+ async allowance(owner, spender, overrides) {
8492
+ return this.contract.populateTransaction.allowance(owner, spender, overrides);
8493
+ }
8494
+ /**
8495
+ * @returns a promise that resolves with a populated transaction
8496
+ */
8497
+ async approve(spender, amount, overrides) {
8498
+ return this.contract.populateTransaction.approve(spender, amount, overrides);
8499
+ }
8500
+ /**
8501
+ * @returns a promise that resolves with a populated transaction
8502
+ */
8503
+ async transferFrom(from, to, amount, overrides) {
8504
+ return this.contract.populateTransaction.transferFrom(from, to, amount, overrides);
8505
+ }
8506
+ }
8507
+
8508
+ class ERC721PermissionedMintable {
8509
+ contract;
8510
+ constructor(contractAddress) {
8511
+ const factory = new ImmutableERC721PermissionedMintable__factory();
8512
+ this.contract = factory.attach(contractAddress);
8513
+ }
8514
+ /**
8515
+ * @returns a promise that resolves with a populated transaction
8516
+ */
8517
+ async DEFAULT_ADMIN_ROLE(overrides) {
8518
+ return await this.contract.populateTransaction.DEFAULT_ADMIN_ROLE(overrides);
8519
+ }
8520
+ /**
8521
+ * @returns a promise that resolves with a populated transaction
8522
+ */
8523
+ async MINTER_ROLE(overrides) {
8524
+ return await this.contract.populateTransaction.MINTER_ROLE(overrides);
8525
+ }
8526
+ /**
8527
+ * @returns a promise that resolves with a populated transaction
8528
+ */
8529
+ async approve(to, tokenId, overrides) {
8530
+ return await this.contract.populateTransaction.approve(to, tokenId, overrides);
8531
+ }
8532
+ /**
8533
+ * @returns a promise that resolves with a populated transaction
8534
+ */
8535
+ async balanceOf(owner, overrides) {
8536
+ return await this.contract.populateTransaction.balanceOf(owner, overrides);
8537
+ }
8538
+ /**
8539
+ * @returns a promise that resolves with a populated transaction
8540
+ */
8541
+ async baseURI(overrides) {
8542
+ return await this.contract.populateTransaction.baseURI(overrides);
8543
+ }
8544
+ /**
8545
+ * @returns a promise that resolves with a populated transaction
8546
+ */
8547
+ async burn(tokenId, overrides) {
8548
+ return await this.contract.populateTransaction.burn(tokenId, overrides);
8549
+ }
8550
+ /**
8551
+ * @returns a promise that resolves with a populated transaction
8552
+ */
8553
+ async contractURI(overrides) {
8554
+ return await this.contract.populateTransaction.contractURI(overrides);
8555
+ }
8556
+ /**
8557
+ * @returns a promise that resolves with a populated transaction
8558
+ */
8559
+ async getAdmins(overrides) {
8560
+ return await this.contract.populateTransaction.getAdmins(overrides);
8561
+ }
8562
+ /**
8563
+ * @returns a promise that resolves with a populated transaction
8564
+ */
8565
+ async getApproved(tokenId, overrides) {
8566
+ return await this.contract.populateTransaction.getApproved(tokenId, overrides);
8567
+ }
8568
+ /**
8569
+ * @returns a promise that resolves with a populated transaction
8570
+ */
8571
+ async getRoleAdmin(role, overrides) {
8572
+ return await this.contract.populateTransaction.getRoleAdmin(role, overrides);
8573
+ }
8574
+ /**
8575
+ * @returns a promise that resolves with a populated transaction
8576
+ */
8577
+ async getRoleMember(role, index, overrides) {
8578
+ return await this.contract.populateTransaction.getRoleMember(role, index, overrides);
8579
+ }
8580
+ /**
8581
+ * @returns a promise that resolves with a populated transaction
8582
+ */
8583
+ async getRoleMemberCount(role, overrides) {
8584
+ return await this.contract.populateTransaction.getRoleMemberCount(role, overrides);
8585
+ }
8586
+ /**
8587
+ * @returns a promise that resolves with a populated transaction
8588
+ */
8589
+ async grantMinterRole(user, overrides) {
8590
+ return await this.contract.populateTransaction.grantMinterRole(user, overrides);
8591
+ }
8592
+ /**
8593
+ * @returns a promise that resolves with a populated transaction
8594
+ */
8595
+ async grantRole(role, account, overrides) {
8596
+ return await this.contract.populateTransaction.grantRole(role, account, overrides);
8597
+ }
8598
+ /**
8599
+ * @returns a promise that resolves with a populated transaction
8600
+ */
8601
+ async hasRole(role, account, overrides) {
8602
+ return await this.contract.populateTransaction.hasRole(role, account, overrides);
8603
+ }
8604
+ /**
8605
+ * @returns a promise that resolves with a populated transaction
8606
+ */
8607
+ async isApprovedForAll(owner, operator, overrides) {
8608
+ return await this.contract.populateTransaction.isApprovedForAll(owner, operator, overrides);
8609
+ }
8610
+ /**
8611
+ * @returns a promise that resolves with a populated transaction
8612
+ */
8613
+ async mint(to, amount, overrides) {
8614
+ return await this.contract.populateTransaction.mint(to, amount, overrides);
8615
+ }
8616
+ /**
8617
+ * @returns a promise that resolves with a populated transaction
8618
+ */
8619
+ async name(overrides) {
8620
+ return await this.contract.populateTransaction.name(overrides);
8621
+ }
8622
+ /**
8623
+ * @returns a promise that resolves with a populated transaction
8624
+ */
8625
+ async ownerOf(tokenId, overrides) {
8626
+ return await this.contract.populateTransaction.ownerOf(tokenId, overrides);
8627
+ }
8628
+ /**
8629
+ * @returns a promise that resolves with a populated transaction
8630
+ */
8631
+ async renounceRole(role, account, overrides) {
8632
+ return await this.contract.populateTransaction.renounceRole(role, account, overrides);
8633
+ }
8634
+ /**
8635
+ * @returns a promise that resolves with a populated transaction
8636
+ */
8637
+ async revokeMinterRole(user, overrides) {
8638
+ return await this.contract.populateTransaction.revokeMinterRole(user, overrides);
8639
+ }
8640
+ /**
8641
+ * @returns a promise that resolves with a populated transaction
8642
+ */
8643
+ async revokeRole(role, account, overrides) {
8644
+ return await this.contract.populateTransaction.revokeRole(role, account, overrides);
8645
+ }
8646
+ /**
8647
+ * @returns a promise that resolves with a populated transaction
8648
+ */
8649
+ async royaltyAllowlist(overrides) {
8650
+ return await this.contract.populateTransaction.royaltyAllowlist(overrides);
8651
+ }
8652
+ /**
8653
+ * @returns a promise that resolves with a populated transaction
8654
+ */
8655
+ async royaltyInfo(_tokenId, _salePrice, overrides) {
8656
+ return await this.contract.populateTransaction.royaltyInfo(_tokenId, _salePrice, overrides);
8657
+ }
8658
+ /**
8659
+ * @returns a promise that resolves with a populated transaction
8660
+ */
8661
+ async 'safeTransferFrom(address,address,uint256)'(from, to, tokenId, overrides) {
8662
+ return await this.contract.populateTransaction['safeTransferFrom(address,address,uint256)'](from, to, tokenId, overrides);
8663
+ }
8664
+ /**
8665
+ * @returns a promise that resolves with a populated transaction
8666
+ */
8667
+ async 'safeTransferFrom(address,address,uint256,bytes)'(from, to, tokenId, data, overrides) {
8668
+ return await this.contract.populateTransaction['safeTransferFrom(address,address,uint256,bytes)'](from, to, tokenId, data, overrides);
8669
+ }
8670
+ /**
8671
+ * @returns a promise that resolves with a populated transaction
8672
+ */
8673
+ async setApprovalForAll(operator, approved, overrides) {
8674
+ return await this.contract.populateTransaction.setApprovalForAll(operator, approved, overrides);
8675
+ }
8676
+ /**
8677
+ * @returns a promise that resolves with a populated transaction
8678
+ */
8679
+ async setBaseURI(baseURI_, overrides) {
8680
+ return await this.contract.populateTransaction.setBaseURI(baseURI_, overrides);
8681
+ }
8682
+ /**
8683
+ * @returns a promise that resolves with a populated transaction
8684
+ */
8685
+ async setContractURI(_contractURI, overrides) {
8686
+ return await this.contract.populateTransaction.setContractURI(_contractURI, overrides);
8687
+ }
8688
+ /**
8689
+ * @returns a promise that resolves with a populated transaction
8690
+ */
8691
+ async setRoyaltyAllowlistRegistry(_royaltyAllowlist, overrides) {
8692
+ return await this.contract.populateTransaction.setRoyaltyAllowlistRegistry(_royaltyAllowlist, overrides);
8693
+ }
8694
+ /**
8695
+ * @returns a promise that resolves with a populated transaction
8696
+ */
8697
+ async symbol(overrides) {
8698
+ return await this.contract.populateTransaction.symbol(overrides);
8699
+ }
8700
+ /**
8701
+ * @returns a promise that resolves with a populated transaction
8702
+ */
8703
+ async tokenByIndex(index, overrides) {
8704
+ return await this.contract.populateTransaction.tokenByIndex(index, overrides);
8705
+ }
8706
+ /**
8707
+ * @returns a promise that resolves with a populated transaction
8708
+ */
8709
+ async tokenOfOwnerByIndex(owner, index, overrides) {
8710
+ return await this.contract.populateTransaction.tokenOfOwnerByIndex(owner, index, overrides);
8711
+ }
8712
+ /**
8713
+ * @returns a promise that resolves with a populated transaction
8714
+ */
8715
+ async tokenURI(tokenId, overrides) {
8716
+ return await this.contract.populateTransaction.tokenURI(tokenId, overrides);
8717
+ }
8718
+ /**
8719
+ * @returns a promise that resolves with a populated transaction
8720
+ */
8721
+ async totalSupply(overrides) {
8722
+ return await this.contract.populateTransaction.totalSupply(overrides);
8723
+ }
8724
+ }
6725
8725
 
6726
8726
  Object.defineProperty(exports, 'imxClientCreateStarkSigner', {
6727
8727
  enumerable: true,
@@ -6738,6 +8738,8 @@ exports.BuyReact = $f22931ca9e2f35b6$export$d13582032b79b401;
6738
8738
  exports.Checkout = $a8cb37a3fc8eb863$export$1f60ba4ec72508a0;
6739
8739
  exports.CheckoutWidgets = $430e3eda76fa4d5f$export$af210a0808087845;
6740
8740
  exports.ConnectReact = $f2083cd30e2f5c56$export$49d62957f420a1e2;
8741
+ exports.ERC20 = ERC20;
8742
+ exports.ERC721PermissionedMintable = ERC721PermissionedMintable;
6741
8743
  exports.ExampleReact = $d087956fd1002f80$export$fa517eee6594d26c;
6742
8744
  exports.GenericIMXProvider = GenericIMXProvider;
6743
8745
  exports.ImmutableConfiguration = ImmutableConfiguration;
@@ -6751,6 +8753,4 @@ exports.SetProvider = $430e3eda76fa4d5f$export$931068bc678f0d73;
6751
8753
  exports.SwapReact = $a4fbb8e3a6aeff58$export$971e031379577f4;
6752
8754
  exports.UpdateConfig = $430e3eda76fa4d5f$export$bf1548ba7e61c17f;
6753
8755
  exports.WalletReact = $89d55ace0f8f1c07$export$ceaac94f34dba154;
6754
- exports.erc20 = erc20;
6755
- exports.erc721permissionedmintable = erc721permissionedmintable;
6756
8756
  exports.module = module$1;