@imtbl/sdk 0.16.0-alpha.1 → 0.17.0
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/blockchain_data.d.ts +151 -26
- package/dist/blockchain_data.js +106 -7
- package/dist/browser/checkout.js +2 -2
- package/dist/checkout_sdk.d.ts +218 -40
- package/dist/checkout_sdk.js +751 -297
- package/dist/checkout_widgets.js +1 -1
- package/dist/erc721.d.ts +40 -0
- package/dist/erc721.js +173 -1
- package/dist/erc721_mint_by_id.d.ts +14 -0
- package/dist/erc721_mint_by_id.js +165 -19
- package/dist/immutablex_client.js +1 -1
- package/dist/index.browser.js +14 -14
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +1213 -341
- package/dist/index.d.ts +415 -48
- package/dist/index.js +1198 -326
- package/dist/passport.js +77 -6
- package/package.json +6 -2
package/dist/index.cjs
CHANGED
|
@@ -740,6 +740,47 @@ const CollectionsApiAxiosParamCreator = function (configuration) {
|
|
|
740
740
|
options: localVarRequestOptions,
|
|
741
741
|
};
|
|
742
742
|
},
|
|
743
|
+
/**
|
|
744
|
+
* List collections by NFT owner account address
|
|
745
|
+
* @summary List collections by NFT owner
|
|
746
|
+
* @param {string} accountAddress Account address
|
|
747
|
+
* @param {string} chainName The name of chain
|
|
748
|
+
* @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response.
|
|
749
|
+
* @param {number} [pageSize] Maximum number of items to return
|
|
750
|
+
* @param {*} [options] Override http request option.
|
|
751
|
+
* @throws {RequiredError}
|
|
752
|
+
*/
|
|
753
|
+
listCollectionsByNFTOwner: async (accountAddress, chainName, pageCursor, pageSize, options = {}) => {
|
|
754
|
+
// verify required parameter 'accountAddress' is not null or undefined
|
|
755
|
+
assertParamExists$1('listCollectionsByNFTOwner', 'accountAddress', accountAddress);
|
|
756
|
+
// verify required parameter 'chainName' is not null or undefined
|
|
757
|
+
assertParamExists$1('listCollectionsByNFTOwner', 'chainName', chainName);
|
|
758
|
+
const localVarPath = `/v1/chains/{chain_name}/accounts/{account_address}/collections`
|
|
759
|
+
.replace(`{${"account_address"}}`, encodeURIComponent(String(accountAddress)))
|
|
760
|
+
.replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)));
|
|
761
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
762
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
|
|
763
|
+
let baseOptions;
|
|
764
|
+
if (configuration) {
|
|
765
|
+
baseOptions = configuration.baseOptions;
|
|
766
|
+
}
|
|
767
|
+
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
|
|
768
|
+
const localVarHeaderParameter = {};
|
|
769
|
+
const localVarQueryParameter = {};
|
|
770
|
+
if (pageCursor !== undefined) {
|
|
771
|
+
localVarQueryParameter['page_cursor'] = pageCursor;
|
|
772
|
+
}
|
|
773
|
+
if (pageSize !== undefined) {
|
|
774
|
+
localVarQueryParameter['page_size'] = pageSize;
|
|
775
|
+
}
|
|
776
|
+
setSearchParams$1(localVarUrlObj, localVarQueryParameter);
|
|
777
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
778
|
+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
779
|
+
return {
|
|
780
|
+
url: toPathString$1(localVarUrlObj),
|
|
781
|
+
options: localVarRequestOptions,
|
|
782
|
+
};
|
|
783
|
+
},
|
|
743
784
|
};
|
|
744
785
|
};
|
|
745
786
|
/**
|
|
@@ -774,6 +815,20 @@ const CollectionsApiFp = function (configuration) {
|
|
|
774
815
|
const localVarAxiosArgs = await localVarAxiosParamCreator.listCollections(chainName, pageCursor, pageSize, options);
|
|
775
816
|
return createRequestFunction$1(localVarAxiosArgs, globalAxios$1, BASE_PATH$1, configuration);
|
|
776
817
|
},
|
|
818
|
+
/**
|
|
819
|
+
* List collections by NFT owner account address
|
|
820
|
+
* @summary List collections by NFT owner
|
|
821
|
+
* @param {string} accountAddress Account address
|
|
822
|
+
* @param {string} chainName The name of chain
|
|
823
|
+
* @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response.
|
|
824
|
+
* @param {number} [pageSize] Maximum number of items to return
|
|
825
|
+
* @param {*} [options] Override http request option.
|
|
826
|
+
* @throws {RequiredError}
|
|
827
|
+
*/
|
|
828
|
+
async listCollectionsByNFTOwner(accountAddress, chainName, pageCursor, pageSize, options) {
|
|
829
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.listCollectionsByNFTOwner(accountAddress, chainName, pageCursor, pageSize, options);
|
|
830
|
+
return createRequestFunction$1(localVarAxiosArgs, globalAxios$1, BASE_PATH$1, configuration);
|
|
831
|
+
},
|
|
777
832
|
};
|
|
778
833
|
};
|
|
779
834
|
/**
|
|
@@ -806,6 +861,19 @@ const CollectionsApiFactory = function (configuration, basePath, axios) {
|
|
|
806
861
|
listCollections(chainName, pageCursor, pageSize, options) {
|
|
807
862
|
return localVarFp.listCollections(chainName, pageCursor, pageSize, options).then((request) => request(axios, basePath));
|
|
808
863
|
},
|
|
864
|
+
/**
|
|
865
|
+
* List collections by NFT owner account address
|
|
866
|
+
* @summary List collections by NFT owner
|
|
867
|
+
* @param {string} accountAddress Account address
|
|
868
|
+
* @param {string} chainName The name of chain
|
|
869
|
+
* @param {string} [pageCursor] Encoded page cursor to retrieve previous or next page. Use the value returned in the response.
|
|
870
|
+
* @param {number} [pageSize] Maximum number of items to return
|
|
871
|
+
* @param {*} [options] Override http request option.
|
|
872
|
+
* @throws {RequiredError}
|
|
873
|
+
*/
|
|
874
|
+
listCollectionsByNFTOwner(accountAddress, chainName, pageCursor, pageSize, options) {
|
|
875
|
+
return localVarFp.listCollectionsByNFTOwner(accountAddress, chainName, pageCursor, pageSize, options).then((request) => request(axios, basePath));
|
|
876
|
+
},
|
|
809
877
|
};
|
|
810
878
|
};
|
|
811
879
|
/**
|
|
@@ -837,6 +905,17 @@ class CollectionsApi extends BaseAPI$1 {
|
|
|
837
905
|
listCollections(requestParameters, options) {
|
|
838
906
|
return CollectionsApiFp(this.configuration).listCollections(requestParameters.chainName, requestParameters.pageCursor, requestParameters.pageSize, options).then((request) => request(this.axios, this.basePath));
|
|
839
907
|
}
|
|
908
|
+
/**
|
|
909
|
+
* List collections by NFT owner account address
|
|
910
|
+
* @summary List collections by NFT owner
|
|
911
|
+
* @param {CollectionsApiListCollectionsByNFTOwnerRequest} requestParameters Request parameters.
|
|
912
|
+
* @param {*} [options] Override http request option.
|
|
913
|
+
* @throws {RequiredError}
|
|
914
|
+
* @memberof CollectionsApi
|
|
915
|
+
*/
|
|
916
|
+
listCollectionsByNFTOwner(requestParameters, options) {
|
|
917
|
+
return CollectionsApiFp(this.configuration).listCollectionsByNFTOwner(requestParameters.accountAddress, requestParameters.chainName, requestParameters.pageCursor, requestParameters.pageSize, options).then((request) => request(this.axios, this.basePath));
|
|
918
|
+
}
|
|
840
919
|
}
|
|
841
920
|
|
|
842
921
|
/* tslint:disable */
|
|
@@ -1475,6 +1554,7 @@ const OrdersApiAxiosParamCreator = function (configuration) {
|
|
|
1475
1554
|
* List all trades
|
|
1476
1555
|
* @summary List all trades
|
|
1477
1556
|
* @param {string} chainName
|
|
1557
|
+
* @param {string} [accountAddress]
|
|
1478
1558
|
* @param {number} [pageSize] Maximum number of trades to return per page
|
|
1479
1559
|
* @param {'created_at'} [sortBy] Trade field to sort by
|
|
1480
1560
|
* @param {'asc' | 'desc'} [sortDirection] Ascending or descending direction for sort
|
|
@@ -1482,7 +1562,7 @@ const OrdersApiAxiosParamCreator = function (configuration) {
|
|
|
1482
1562
|
* @param {*} [options] Override http request option.
|
|
1483
1563
|
* @throws {RequiredError}
|
|
1484
1564
|
*/
|
|
1485
|
-
listTrades: async (chainName, pageSize, sortBy, sortDirection, pageCursor, options = {}) => {
|
|
1565
|
+
listTrades: async (chainName, accountAddress, pageSize, sortBy, sortDirection, pageCursor, options = {}) => {
|
|
1486
1566
|
// verify required parameter 'chainName' is not null or undefined
|
|
1487
1567
|
assertParamExists$1('listTrades', 'chainName', chainName);
|
|
1488
1568
|
const localVarPath = `/v1/chains/{chain_name}/trades`
|
|
@@ -1496,6 +1576,9 @@ const OrdersApiAxiosParamCreator = function (configuration) {
|
|
|
1496
1576
|
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
|
|
1497
1577
|
const localVarHeaderParameter = {};
|
|
1498
1578
|
const localVarQueryParameter = {};
|
|
1579
|
+
if (accountAddress !== undefined) {
|
|
1580
|
+
localVarQueryParameter['account_address'] = accountAddress;
|
|
1581
|
+
}
|
|
1499
1582
|
if (pageSize !== undefined) {
|
|
1500
1583
|
localVarQueryParameter['page_size'] = pageSize;
|
|
1501
1584
|
}
|
|
@@ -1596,6 +1679,7 @@ const OrdersApiFp = function (configuration) {
|
|
|
1596
1679
|
* List all trades
|
|
1597
1680
|
* @summary List all trades
|
|
1598
1681
|
* @param {string} chainName
|
|
1682
|
+
* @param {string} [accountAddress]
|
|
1599
1683
|
* @param {number} [pageSize] Maximum number of trades to return per page
|
|
1600
1684
|
* @param {'created_at'} [sortBy] Trade field to sort by
|
|
1601
1685
|
* @param {'asc' | 'desc'} [sortDirection] Ascending or descending direction for sort
|
|
@@ -1603,8 +1687,8 @@ const OrdersApiFp = function (configuration) {
|
|
|
1603
1687
|
* @param {*} [options] Override http request option.
|
|
1604
1688
|
* @throws {RequiredError}
|
|
1605
1689
|
*/
|
|
1606
|
-
async listTrades(chainName, pageSize, sortBy, sortDirection, pageCursor, options) {
|
|
1607
|
-
const localVarAxiosArgs = await localVarAxiosParamCreator.listTrades(chainName, pageSize, sortBy, sortDirection, pageCursor, options);
|
|
1690
|
+
async listTrades(chainName, accountAddress, pageSize, sortBy, sortDirection, pageCursor, options) {
|
|
1691
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.listTrades(chainName, accountAddress, pageSize, sortBy, sortDirection, pageCursor, options);
|
|
1608
1692
|
return createRequestFunction$1(localVarAxiosArgs, globalAxios$1, BASE_PATH$1, configuration);
|
|
1609
1693
|
},
|
|
1610
1694
|
};
|
|
@@ -1682,6 +1766,7 @@ const OrdersApiFactory = function (configuration, basePath, axios) {
|
|
|
1682
1766
|
* List all trades
|
|
1683
1767
|
* @summary List all trades
|
|
1684
1768
|
* @param {string} chainName
|
|
1769
|
+
* @param {string} [accountAddress]
|
|
1685
1770
|
* @param {number} [pageSize] Maximum number of trades to return per page
|
|
1686
1771
|
* @param {'created_at'} [sortBy] Trade field to sort by
|
|
1687
1772
|
* @param {'asc' | 'desc'} [sortDirection] Ascending or descending direction for sort
|
|
@@ -1689,8 +1774,8 @@ const OrdersApiFactory = function (configuration, basePath, axios) {
|
|
|
1689
1774
|
* @param {*} [options] Override http request option.
|
|
1690
1775
|
* @throws {RequiredError}
|
|
1691
1776
|
*/
|
|
1692
|
-
listTrades(chainName, pageSize, sortBy, sortDirection, pageCursor, options) {
|
|
1693
|
-
return localVarFp.listTrades(chainName, pageSize, sortBy, sortDirection, pageCursor, options).then((request) => request(axios, basePath));
|
|
1777
|
+
listTrades(chainName, accountAddress, pageSize, sortBy, sortDirection, pageCursor, options) {
|
|
1778
|
+
return localVarFp.listTrades(chainName, accountAddress, pageSize, sortBy, sortDirection, pageCursor, options).then((request) => request(axios, basePath));
|
|
1694
1779
|
},
|
|
1695
1780
|
};
|
|
1696
1781
|
};
|
|
@@ -1765,7 +1850,7 @@ class OrdersApi extends BaseAPI$1 {
|
|
|
1765
1850
|
* @memberof OrdersApi
|
|
1766
1851
|
*/
|
|
1767
1852
|
listTrades(requestParameters, options) {
|
|
1768
|
-
return OrdersApiFp(this.configuration).listTrades(requestParameters.chainName, requestParameters.pageSize, requestParameters.sortBy, requestParameters.sortDirection, requestParameters.pageCursor, options).then((request) => request(this.axios, this.basePath));
|
|
1853
|
+
return OrdersApiFp(this.configuration).listTrades(requestParameters.chainName, requestParameters.accountAddress, requestParameters.pageSize, requestParameters.sortBy, requestParameters.sortDirection, requestParameters.pageCursor, options).then((request) => request(this.axios, this.basePath));
|
|
1769
1854
|
}
|
|
1770
1855
|
}
|
|
1771
1856
|
|
|
@@ -2639,7 +2724,7 @@ class MultiRollupApiClients {
|
|
|
2639
2724
|
}
|
|
2640
2725
|
|
|
2641
2726
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
2642
|
-
const defaultHeaders$1 = { 'x-sdk-version': 'ts-immutable-sdk-0.
|
|
2727
|
+
const defaultHeaders$1 = { 'x-sdk-version': 'ts-immutable-sdk-0.0.0' };
|
|
2643
2728
|
const createConfig = ({ basePath, headers, }) => {
|
|
2644
2729
|
if (!basePath.trim()) {
|
|
2645
2730
|
throw Error('basePath can not be empty');
|
|
@@ -2699,7 +2784,7 @@ class APIError extends Error {
|
|
|
2699
2784
|
|
|
2700
2785
|
/* eslint-disable implicit-arrow-linebreak */
|
|
2701
2786
|
const defaultHeaders = {
|
|
2702
|
-
sdkVersion: 'ts-immutable-sdk-multi-rollup-api-client-0.
|
|
2787
|
+
sdkVersion: 'ts-immutable-sdk-multi-rollup-api-client-0.0.0',
|
|
2703
2788
|
};
|
|
2704
2789
|
/**
|
|
2705
2790
|
* createAPIConfiguration to create a custom Configuration
|
|
@@ -2856,6 +2941,20 @@ class BlockchainData {
|
|
|
2856
2941
|
throw formatError(err);
|
|
2857
2942
|
});
|
|
2858
2943
|
}
|
|
2944
|
+
/**
|
|
2945
|
+
* List collections by NFT owner
|
|
2946
|
+
* @param request - the request object containing the parameters to be provided in the API request
|
|
2947
|
+
* @returns a promise that resolves with a list of collections
|
|
2948
|
+
* @throws {@link index.APIError}
|
|
2949
|
+
*/
|
|
2950
|
+
async listCollectionsByNFTOwner(request) {
|
|
2951
|
+
return await this.collections
|
|
2952
|
+
.listCollectionsByNFTOwner(request)
|
|
2953
|
+
.then((res) => res.data)
|
|
2954
|
+
.catch((err) => {
|
|
2955
|
+
throw formatError(err);
|
|
2956
|
+
});
|
|
2957
|
+
}
|
|
2859
2958
|
/**
|
|
2860
2959
|
* Get collection by contract address
|
|
2861
2960
|
* @param request - the request object containing the parameters to be provided in the API request
|
|
@@ -2971,7 +3070,7 @@ const createImmutableXConfiguration = ({ basePath, chainID, coreContractAddress,
|
|
|
2971
3070
|
chainID,
|
|
2972
3071
|
coreContractAddress,
|
|
2973
3072
|
registrationContractAddress,
|
|
2974
|
-
sdkVersion: 'ts-immutable-sdk-0.
|
|
3073
|
+
sdkVersion: 'ts-immutable-sdk-0.0.0',
|
|
2975
3074
|
});
|
|
2976
3075
|
/**
|
|
2977
3076
|
* Sets `sdkVersion` at the time of build
|
|
@@ -24116,38 +24215,6 @@ class AlreadyApprovedError extends ExchangeError {
|
|
|
24116
24215
|
}
|
|
24117
24216
|
}
|
|
24118
24217
|
|
|
24119
|
-
/**
|
|
24120
|
-
* Determines whether or not the chain supports EIP-1559 by checking for the existence
|
|
24121
|
-
* of {@link FeeData.maxFeePerGas} and {@link FeeData.maxPriorityFeePerGas}
|
|
24122
|
-
*
|
|
24123
|
-
* @param {FeeData} fee - The fee data for the chain
|
|
24124
|
-
*/
|
|
24125
|
-
const doesChainSupportEIP1559 = (fee) => {
|
|
24126
|
-
const supportsEIP1559 = !!fee.maxFeePerGas && !!fee.maxPriorityFeePerGas;
|
|
24127
|
-
return supportsEIP1559;
|
|
24128
|
-
};
|
|
24129
|
-
/**
|
|
24130
|
-
* Fetch the current gas price estimate. Supports both EIP-1559 and non-EIP1559 chains
|
|
24131
|
-
* @param {JsonRpcProvider} provider - The JSON RPC provider used to fetch fee data
|
|
24132
|
-
* @returns {BigNumber | null} - The gas price in the smallest denomination of the chain's currency,
|
|
24133
|
-
* or null if no gas price is available
|
|
24134
|
-
*/
|
|
24135
|
-
const fetchGasPrice = async (provider) => {
|
|
24136
|
-
const feeData = await provider.getFeeData().catch(() => null);
|
|
24137
|
-
if (!feeData) {
|
|
24138
|
-
return null;
|
|
24139
|
-
}
|
|
24140
|
-
return doesChainSupportEIP1559(feeData) ? feeData.maxFeePerGas.add(feeData.maxPriorityFeePerGas) : feeData.gasPrice;
|
|
24141
|
-
};
|
|
24142
|
-
/**
|
|
24143
|
-
* Calculate the gas fee from the gas price and gas units used for the transaction
|
|
24144
|
-
*
|
|
24145
|
-
* @param {BigNumber} gasPriceInWei - The price of gas in wei
|
|
24146
|
-
* @param {BigNumber} gasUsed - The total gas units that will be used for the transaction
|
|
24147
|
-
* @returns - The cost of the transaction in the gas token's smallest denomination (e.g. WEI)
|
|
24148
|
-
*/
|
|
24149
|
-
const calculateGasFee = (gasPriceInWei, gasUsed) => gasUsed.mul(gasPriceInWei);
|
|
24150
|
-
|
|
24151
24218
|
/* Autogenerated file. Do not edit manually. */
|
|
24152
24219
|
/* tslint:disable */
|
|
24153
24220
|
/* eslint-disable */
|
|
@@ -24383,179 +24450,6 @@ let ERC20__factory$1 = class ERC20__factory {
|
|
|
24383
24450
|
}
|
|
24384
24451
|
};
|
|
24385
24452
|
|
|
24386
|
-
/**
|
|
24387
|
-
* Get the amount of an ERC20 token that needs to be approved by
|
|
24388
|
-
* checking the existing allowance for the spender
|
|
24389
|
-
*
|
|
24390
|
-
* @param provider - The provider to use for the call
|
|
24391
|
-
* @param ownerAddress - The address of the owner of the token
|
|
24392
|
-
* @param tokenAmount - The amount of the token to approve
|
|
24393
|
-
* @param spenderAddress - The address of the spender
|
|
24394
|
-
* @returns - The amount of the token that needs to be approved
|
|
24395
|
-
*/
|
|
24396
|
-
const getERC20AmountToApprove = async (provider, ownerAddress, tokenAddress, tokenAmount, spenderAddress) => {
|
|
24397
|
-
// create an instance of the ERC20 token contract
|
|
24398
|
-
const erc20Contract = ERC20__factory$1.connect(tokenAddress, provider);
|
|
24399
|
-
// get the allowance for the token spender
|
|
24400
|
-
// minimum is 0 - no allowance
|
|
24401
|
-
let allowance;
|
|
24402
|
-
try {
|
|
24403
|
-
allowance = await erc20Contract.allowance(ownerAddress, spenderAddress);
|
|
24404
|
-
}
|
|
24405
|
-
catch (e) {
|
|
24406
|
-
const message = e instanceof Error ? e.message : 'Unknown Error';
|
|
24407
|
-
throw new ApproveError(`failed to get allowance: ${message}`);
|
|
24408
|
-
}
|
|
24409
|
-
// get the amount that needs to be approved
|
|
24410
|
-
const requiredAmount = bignumber.BigNumber.from(tokenAmount).sub(allowance);
|
|
24411
|
-
if (requiredAmount.isNegative() || requiredAmount.isZero()) {
|
|
24412
|
-
throw new AlreadyApprovedError(tokenAmount.toString(), tokenAddress, spenderAddress);
|
|
24413
|
-
}
|
|
24414
|
-
return requiredAmount;
|
|
24415
|
-
};
|
|
24416
|
-
/**
|
|
24417
|
-
* Get an unsigned ERC20 approve transaction
|
|
24418
|
-
*
|
|
24419
|
-
* @param ownerAddress - The address of the owner of the token
|
|
24420
|
-
* @param tokenAmount - The amount of the token to approve
|
|
24421
|
-
* @param spenderAddress - The address of the spender
|
|
24422
|
-
* @returns - The unsigned ERC20 approve transaction
|
|
24423
|
-
*/
|
|
24424
|
-
const getUnsignedERC20ApproveTransaction = (ownerAddress, tokenAddress, tokenAmount, spenderAddress) => {
|
|
24425
|
-
if (ownerAddress === spenderAddress) {
|
|
24426
|
-
throw new ApproveError('owner and spender addresses are the same');
|
|
24427
|
-
}
|
|
24428
|
-
const erc20Contract = ERC20__factory$1.createInterface();
|
|
24429
|
-
const callData = erc20Contract.encodeFunctionData('approve', [spenderAddress, tokenAmount]);
|
|
24430
|
-
return {
|
|
24431
|
-
data: callData,
|
|
24432
|
-
to: tokenAddress,
|
|
24433
|
-
value: 0,
|
|
24434
|
-
from: ownerAddress,
|
|
24435
|
-
};
|
|
24436
|
-
};
|
|
24437
|
-
const prepareApproval = (tradeType, amountSpecified, amountWithSlippage, routingContracts, secondaryFees) => {
|
|
24438
|
-
const amount = tradeType === sdkCore.TradeType.EXACT_INPUT ? amountSpecified : amountWithSlippage;
|
|
24439
|
-
const spender = secondaryFees.length === 0
|
|
24440
|
-
? routingContracts.peripheryRouterAddress
|
|
24441
|
-
: routingContracts.secondaryFeeAddress;
|
|
24442
|
-
return { spender, amount };
|
|
24443
|
-
};
|
|
24444
|
-
/**
|
|
24445
|
-
* Get an unsigned approval transaction if needed
|
|
24446
|
-
*
|
|
24447
|
-
* @param provider The provider to use for the call
|
|
24448
|
-
* @param ownerAddress The address of the owner of the token
|
|
24449
|
-
* @param tokenAddress The address of the token to approve
|
|
24450
|
-
* @param tokenAmount The amount of the token to approve
|
|
24451
|
-
* @param spenderAddress The address of the spender
|
|
24452
|
-
* @returns The unsigned ERC20 approve transaction, or null if no approval is needed
|
|
24453
|
-
*/
|
|
24454
|
-
const getApproveTransaction = async (provider, ownerAddress, tokenAddress, tokenAmount, spenderAddress) => {
|
|
24455
|
-
let amountToApprove;
|
|
24456
|
-
try {
|
|
24457
|
-
amountToApprove = await getERC20AmountToApprove(provider, ownerAddress, tokenAddress, bignumber.BigNumber.from(tokenAmount), spenderAddress);
|
|
24458
|
-
}
|
|
24459
|
-
catch (e) {
|
|
24460
|
-
if (e instanceof AlreadyApprovedError) {
|
|
24461
|
-
// already approved for the required amount, nothing to do
|
|
24462
|
-
return null;
|
|
24463
|
-
}
|
|
24464
|
-
throw e;
|
|
24465
|
-
}
|
|
24466
|
-
return getUnsignedERC20ApproveTransaction(ownerAddress, tokenAddress, amountToApprove, spenderAddress);
|
|
24467
|
-
};
|
|
24468
|
-
async function getApproveGasEstimate(provider, ownerAddress, spenderAddress, tokenAddress) {
|
|
24469
|
-
const erc20Contract = ERC20__factory$1.connect(tokenAddress, provider);
|
|
24470
|
-
return await erc20Contract.estimateGas.approve(spenderAddress, ethers.ethers.constants.MaxUint256, {
|
|
24471
|
-
from: ownerAddress,
|
|
24472
|
-
});
|
|
24473
|
-
}
|
|
24474
|
-
const getApproval = async (nativeToken, provider, ownerAddress, tokenAddress, preparedApproval, gasPrice) => {
|
|
24475
|
-
const approveTransaction = await getApproveTransaction(provider, ownerAddress, tokenAddress, preparedApproval.amount, preparedApproval.spender);
|
|
24476
|
-
if (!approveTransaction) {
|
|
24477
|
-
return null;
|
|
24478
|
-
}
|
|
24479
|
-
const gasEstimate = await getApproveGasEstimate(provider, ownerAddress, preparedApproval.spender, tokenAddress);
|
|
24480
|
-
const gasFeeEstimate = gasPrice ? {
|
|
24481
|
-
token: nativeToken,
|
|
24482
|
-
value: calculateGasFee(gasPrice, gasEstimate),
|
|
24483
|
-
} : null;
|
|
24484
|
-
return {
|
|
24485
|
-
transaction: approveTransaction,
|
|
24486
|
-
gasFeeEstimate,
|
|
24487
|
-
};
|
|
24488
|
-
};
|
|
24489
|
-
|
|
24490
|
-
// slippageToPercent takes the slippage as a percentage (e.g. 0.1) and
|
|
24491
|
-
// converts it to the Uniswap equivalent type
|
|
24492
|
-
const slippageToFraction = (slippage) => {
|
|
24493
|
-
// If we receive a whole number, we can return slippage/100
|
|
24494
|
-
const noDecimals = slippage.toString().split('.').length === 1;
|
|
24495
|
-
if (noDecimals) {
|
|
24496
|
-
return new sdkCore.Percent(slippage, 100);
|
|
24497
|
-
}
|
|
24498
|
-
// Divide the slippage number by 100 to get the decimal
|
|
24499
|
-
const slippageDecimal = slippage / 100;
|
|
24500
|
-
// Split into two parts by the decimal place
|
|
24501
|
-
const parts = slippageDecimal.toString().split('.');
|
|
24502
|
-
// Get the numerator by adding the two parts together
|
|
24503
|
-
const numerator = parts[0] + parts[1];
|
|
24504
|
-
// Get the denominator by multiplying decimals^10
|
|
24505
|
-
const denominator = 10 ** parts[1].length;
|
|
24506
|
-
return new sdkCore.Percent(numerator, denominator);
|
|
24507
|
-
};
|
|
24508
|
-
|
|
24509
|
-
function getQuoteAmountFromTradeType(tradeInfo) {
|
|
24510
|
-
if (tradeInfo.tradeType === sdkCore.TradeType.EXACT_INPUT) {
|
|
24511
|
-
return tradeInfo.amountOut;
|
|
24512
|
-
}
|
|
24513
|
-
return tradeInfo.amountIn;
|
|
24514
|
-
}
|
|
24515
|
-
function applySlippage(tradeType, amount, slippage) {
|
|
24516
|
-
const slippageTolerance = slippageToFraction(slippage);
|
|
24517
|
-
const slippagePlusOne = slippageTolerance.add(1);
|
|
24518
|
-
const maybeInverted = tradeType === sdkCore.TradeType.EXACT_INPUT ? slippagePlusOne.invert() : slippagePlusOne;
|
|
24519
|
-
const amountWithSlippage = maybeInverted.multiply(amount.toString()).quotient;
|
|
24520
|
-
return ethers.ethers.BigNumber.from(amountWithSlippage.toString());
|
|
24521
|
-
}
|
|
24522
|
-
function prepareUserQuote(otherToken, tradeInfo, slippage, fees) {
|
|
24523
|
-
const quote = getQuoteAmountFromTradeType(tradeInfo);
|
|
24524
|
-
const amountWithSlippage = applySlippage(tradeInfo.tradeType, quote.value, slippage);
|
|
24525
|
-
return {
|
|
24526
|
-
amount: quote,
|
|
24527
|
-
amountWithMaxSlippage: {
|
|
24528
|
-
token: otherToken,
|
|
24529
|
-
value: amountWithSlippage,
|
|
24530
|
-
},
|
|
24531
|
-
slippage,
|
|
24532
|
-
fees: fees.withAmounts(),
|
|
24533
|
-
};
|
|
24534
|
-
}
|
|
24535
|
-
function getOurQuoteReqAmount(amount, fees, tradeType) {
|
|
24536
|
-
if (tradeType === sdkCore.TradeType.EXACT_OUTPUT) {
|
|
24537
|
-
// For an exact output swap, we do not need to subtract fees from the given amount
|
|
24538
|
-
return amount;
|
|
24539
|
-
}
|
|
24540
|
-
fees.addAmount(amount);
|
|
24541
|
-
return fees.amountLessFees();
|
|
24542
|
-
}
|
|
24543
|
-
|
|
24544
|
-
// 0.1% default slippage
|
|
24545
|
-
const DEFAULT_SLIPPAGE = 0.1;
|
|
24546
|
-
// 15 minutes from the current Unix time
|
|
24547
|
-
const DEFAULT_DEADLINE = Math.floor(Date.now() / 1000) + 60 * 15;
|
|
24548
|
-
// most swaps will be able to resolve with 2 hops
|
|
24549
|
-
const DEFAULT_MAX_HOPS = 2;
|
|
24550
|
-
// after 10 hops, it is very unlikely a route will be available
|
|
24551
|
-
const MAX_MAX_HOPS = 10;
|
|
24552
|
-
// a max hop of 1 will require a direct swap with no intermediary pools
|
|
24553
|
-
const MIN_MAX_HOPS = 1;
|
|
24554
|
-
// precision used to calculate percentage from basis points
|
|
24555
|
-
const BASIS_POINT_PRECISION = 10000;
|
|
24556
|
-
// 10% maximum secondary fee
|
|
24557
|
-
const MAX_SECONDARY_FEE_BASIS_POINTS = 10000;
|
|
24558
|
-
|
|
24559
24453
|
/* Autogenerated file. Do not edit manually. */
|
|
24560
24454
|
/* tslint:disable */
|
|
24561
24455
|
/* eslint-disable */
|
|
@@ -26848,8 +26742,214 @@ startTokenIn = tokenIn) => {
|
|
|
26848
26742
|
return routes;
|
|
26849
26743
|
};
|
|
26850
26744
|
|
|
26851
|
-
|
|
26852
|
-
|
|
26745
|
+
/**
|
|
26746
|
+
* Determines whether or not the chain supports EIP-1559 by checking for the existence
|
|
26747
|
+
* of {@link FeeData.maxFeePerGas} and {@link FeeData.maxPriorityFeePerGas}
|
|
26748
|
+
*
|
|
26749
|
+
* @param {FeeData} fee - The fee data for the chain
|
|
26750
|
+
*/
|
|
26751
|
+
const doesChainSupportEIP1559 = (fee) => {
|
|
26752
|
+
const supportsEIP1559 = !!fee.maxFeePerGas && !!fee.maxPriorityFeePerGas;
|
|
26753
|
+
return supportsEIP1559;
|
|
26754
|
+
};
|
|
26755
|
+
/**
|
|
26756
|
+
* Fetch the current gas price estimate. Supports both EIP-1559 and non-EIP1559 chains
|
|
26757
|
+
* @param {JsonRpcProvider} provider - The JSON RPC provider used to fetch fee data
|
|
26758
|
+
* @returns {Amount | null} - The gas price in the smallest denomination of the chain's currency,
|
|
26759
|
+
* or null if no gas price is available
|
|
26760
|
+
*/
|
|
26761
|
+
const fetchGasPrice = async (provider, nativeToken) => {
|
|
26762
|
+
const feeData = await provider.getFeeData().catch(() => null);
|
|
26763
|
+
if (!feeData)
|
|
26764
|
+
return null;
|
|
26765
|
+
if (doesChainSupportEIP1559(feeData)) {
|
|
26766
|
+
return newAmount(feeData.maxFeePerGas.add(feeData.maxPriorityFeePerGas), nativeToken);
|
|
26767
|
+
}
|
|
26768
|
+
return feeData.gasPrice ? newAmount(feeData.gasPrice, nativeToken) : null;
|
|
26769
|
+
};
|
|
26770
|
+
/**
|
|
26771
|
+
* Calculate the gas fee from the gas price and gas units used for the transaction
|
|
26772
|
+
*
|
|
26773
|
+
* @param {Amount} gasPriceInWei - The price of gas
|
|
26774
|
+
* @param {BigNumber} gasUsed - The total gas units that will be used for the transaction
|
|
26775
|
+
* @returns - The cost of the transaction in the gas token's smallest denomination (e.g. WEI)
|
|
26776
|
+
*/
|
|
26777
|
+
const calculateGasFee = (gasPrice, gasEstimate) =>
|
|
26778
|
+
// eslint-disable-next-line implicit-arrow-linebreak
|
|
26779
|
+
newAmount(gasEstimate.mul(gasPrice.value), gasPrice.token);
|
|
26780
|
+
|
|
26781
|
+
/**
|
|
26782
|
+
* Get the amount of an ERC20 token that needs to be approved by
|
|
26783
|
+
* checking the existing allowance for the spender
|
|
26784
|
+
*
|
|
26785
|
+
* @param provider - The provider to use for the call
|
|
26786
|
+
* @param ownerAddress - The address of the owner of the token
|
|
26787
|
+
* @param tokenAmount - The amount of the token to approve
|
|
26788
|
+
* @param spenderAddress - The address of the spender
|
|
26789
|
+
* @returns - The amount of the token that needs to be approved
|
|
26790
|
+
*/
|
|
26791
|
+
const getERC20AmountToApprove = async (provider, ownerAddress, tokenAmount, spenderAddress) => {
|
|
26792
|
+
// create an instance of the ERC20 token contract
|
|
26793
|
+
const erc20Contract = ERC20__factory$1.connect(tokenAmount.token.address, provider);
|
|
26794
|
+
// get the allowance for the token spender
|
|
26795
|
+
// minimum is 0 - no allowance
|
|
26796
|
+
let allowance;
|
|
26797
|
+
try {
|
|
26798
|
+
allowance = await erc20Contract.allowance(ownerAddress, spenderAddress);
|
|
26799
|
+
}
|
|
26800
|
+
catch (e) {
|
|
26801
|
+
const message = e instanceof Error ? e.message : 'Unknown Error';
|
|
26802
|
+
throw new ApproveError(`failed to get allowance: ${message}`);
|
|
26803
|
+
}
|
|
26804
|
+
// get the amount that needs to be approved
|
|
26805
|
+
const requiredAmount = tokenAmount.value.sub(allowance);
|
|
26806
|
+
if (requiredAmount.isNegative() || requiredAmount.isZero()) {
|
|
26807
|
+
throw new AlreadyApprovedError(tokenAmount.toString(), tokenAmount.token.address, spenderAddress);
|
|
26808
|
+
}
|
|
26809
|
+
return newAmount(requiredAmount, tokenAmount.token);
|
|
26810
|
+
};
|
|
26811
|
+
/**
|
|
26812
|
+
* Get an unsigned ERC20 approve transaction
|
|
26813
|
+
*
|
|
26814
|
+
* @param ownerAddress - The address of the owner of the token
|
|
26815
|
+
* @param tokenAmount - The amount of the token to approve
|
|
26816
|
+
* @param spenderAddress - The address of the spender
|
|
26817
|
+
* @returns - The unsigned ERC20 approve transaction
|
|
26818
|
+
*/
|
|
26819
|
+
const getUnsignedERC20ApproveTransaction = (ownerAddress, tokenAmount, spenderAddress) => {
|
|
26820
|
+
if (ownerAddress === spenderAddress) {
|
|
26821
|
+
throw new ApproveError('owner and spender addresses are the same');
|
|
26822
|
+
}
|
|
26823
|
+
const erc20Contract = ERC20__factory$1.createInterface();
|
|
26824
|
+
const callData = erc20Contract.encodeFunctionData('approve', [spenderAddress, tokenAmount.value]);
|
|
26825
|
+
return {
|
|
26826
|
+
data: callData,
|
|
26827
|
+
to: tokenAmount.token.address,
|
|
26828
|
+
value: 0,
|
|
26829
|
+
from: ownerAddress,
|
|
26830
|
+
};
|
|
26831
|
+
};
|
|
26832
|
+
const prepareApproval = (tradeType, amountSpecified, amountWithSlippage, routingContracts, secondaryFees) => {
|
|
26833
|
+
const amountOfTokenIn = tradeType === sdkCore.TradeType.EXACT_INPUT ? amountSpecified : amountWithSlippage;
|
|
26834
|
+
const spender = secondaryFees.length === 0
|
|
26835
|
+
? routingContracts.peripheryRouterAddress
|
|
26836
|
+
: routingContracts.secondaryFeeAddress;
|
|
26837
|
+
return { spender, amount: amountOfTokenIn };
|
|
26838
|
+
};
|
|
26839
|
+
/**
|
|
26840
|
+
* Get an unsigned approval transaction if needed
|
|
26841
|
+
*
|
|
26842
|
+
* @param provider The provider to use for the call
|
|
26843
|
+
* @param ownerAddress The address of the owner of the token
|
|
26844
|
+
* @param tokenAddress The address of the token to approve
|
|
26845
|
+
* @param tokenAmount The amount of the token to approve
|
|
26846
|
+
* @param spenderAddress The address of the spender
|
|
26847
|
+
* @returns The unsigned ERC20 approve transaction, or null if no approval is needed
|
|
26848
|
+
*/
|
|
26849
|
+
const getApproveTransaction = async (provider, ownerAddress, tokenAmount, spenderAddress) => {
|
|
26850
|
+
let amountToApprove;
|
|
26851
|
+
try {
|
|
26852
|
+
amountToApprove = await getERC20AmountToApprove(provider, ownerAddress, tokenAmount, spenderAddress);
|
|
26853
|
+
}
|
|
26854
|
+
catch (e) {
|
|
26855
|
+
if (e instanceof AlreadyApprovedError) {
|
|
26856
|
+
// already approved for the required amount, nothing to do
|
|
26857
|
+
return null;
|
|
26858
|
+
}
|
|
26859
|
+
throw e;
|
|
26860
|
+
}
|
|
26861
|
+
return getUnsignedERC20ApproveTransaction(ownerAddress, amountToApprove, spenderAddress);
|
|
26862
|
+
};
|
|
26863
|
+
async function getApproveGasEstimate(provider, ownerAddress, spenderAddress, tokenAddress) {
|
|
26864
|
+
const erc20Contract = ERC20__factory$1.connect(tokenAddress, provider);
|
|
26865
|
+
return await erc20Contract.estimateGas.approve(spenderAddress, ethers.ethers.constants.MaxUint256, {
|
|
26866
|
+
from: ownerAddress,
|
|
26867
|
+
});
|
|
26868
|
+
}
|
|
26869
|
+
const getApproval = async (provider, ownerAddress, preparedApproval, gasPrice) => {
|
|
26870
|
+
const approveTransaction = await getApproveTransaction(provider, ownerAddress, preparedApproval.amount, preparedApproval.spender);
|
|
26871
|
+
if (!approveTransaction) {
|
|
26872
|
+
return null;
|
|
26873
|
+
}
|
|
26874
|
+
const gasEstimate = await getApproveGasEstimate(provider, ownerAddress, preparedApproval.spender, preparedApproval.amount.token.address);
|
|
26875
|
+
const gasFeeEstimate = gasPrice ? calculateGasFee(gasPrice, gasEstimate) : null;
|
|
26876
|
+
return {
|
|
26877
|
+
transaction: approveTransaction,
|
|
26878
|
+
gasFeeEstimate,
|
|
26879
|
+
};
|
|
26880
|
+
};
|
|
26881
|
+
|
|
26882
|
+
// slippageToPercent takes the slippage as a percentage (e.g. 0.1) and
|
|
26883
|
+
// converts it to the Uniswap equivalent type
|
|
26884
|
+
const slippageToFraction = (slippage) => {
|
|
26885
|
+
// If we receive a whole number, we can return slippage/100
|
|
26886
|
+
const noDecimals = slippage.toString().split('.').length === 1;
|
|
26887
|
+
if (noDecimals) {
|
|
26888
|
+
return new sdkCore.Percent(slippage, 100);
|
|
26889
|
+
}
|
|
26890
|
+
// Divide the slippage number by 100 to get the decimal
|
|
26891
|
+
const slippageDecimal = slippage / 100;
|
|
26892
|
+
// Split into two parts by the decimal place
|
|
26893
|
+
const parts = slippageDecimal.toString().split('.');
|
|
26894
|
+
// Get the numerator by adding the two parts together
|
|
26895
|
+
const numerator = parts[0] + parts[1];
|
|
26896
|
+
// Get the denominator by multiplying decimals^10
|
|
26897
|
+
const denominator = 10 ** parts[1].length;
|
|
26898
|
+
return new sdkCore.Percent(numerator, denominator);
|
|
26899
|
+
};
|
|
26900
|
+
|
|
26901
|
+
function getQuoteAmountFromTradeType(tradeInfo) {
|
|
26902
|
+
if (tradeInfo.tradeType === sdkCore.TradeType.EXACT_INPUT) {
|
|
26903
|
+
return tradeInfo.amountOut;
|
|
26904
|
+
}
|
|
26905
|
+
return tradeInfo.amountIn;
|
|
26906
|
+
}
|
|
26907
|
+
function applySlippage(tradeType, amount, slippage) {
|
|
26908
|
+
const slippageTolerance = slippageToFraction(slippage);
|
|
26909
|
+
const slippagePlusOne = slippageTolerance.add(1);
|
|
26910
|
+
const maybeInverted = tradeType === sdkCore.TradeType.EXACT_INPUT ? slippagePlusOne.invert() : slippagePlusOne;
|
|
26911
|
+
const amountWithSlippage = maybeInverted.multiply(amount.toString()).quotient;
|
|
26912
|
+
return ethers.ethers.BigNumber.from(amountWithSlippage.toString());
|
|
26913
|
+
}
|
|
26914
|
+
function prepareUserQuote(otherToken, tradeInfo, slippage, fees) {
|
|
26915
|
+
const quote = getQuoteAmountFromTradeType(tradeInfo);
|
|
26916
|
+
const amountWithSlippage = applySlippage(tradeInfo.tradeType, quote.value, slippage);
|
|
26917
|
+
return {
|
|
26918
|
+
amount: quote,
|
|
26919
|
+
amountWithMaxSlippage: {
|
|
26920
|
+
token: otherToken,
|
|
26921
|
+
value: amountWithSlippage,
|
|
26922
|
+
},
|
|
26923
|
+
slippage,
|
|
26924
|
+
fees: fees.withAmounts(),
|
|
26925
|
+
};
|
|
26926
|
+
}
|
|
26927
|
+
function getOurQuoteReqAmount(amount, fees, tradeType) {
|
|
26928
|
+
if (tradeType === sdkCore.TradeType.EXACT_OUTPUT) {
|
|
26929
|
+
// For an exact output swap, we do not need to subtract fees from the given amount
|
|
26930
|
+
return amount;
|
|
26931
|
+
}
|
|
26932
|
+
fees.addAmount(amount);
|
|
26933
|
+
return fees.amountLessFees();
|
|
26934
|
+
}
|
|
26935
|
+
|
|
26936
|
+
// 0.1% default slippage
|
|
26937
|
+
const DEFAULT_SLIPPAGE = 0.1;
|
|
26938
|
+
// 15 minutes from the current Unix time
|
|
26939
|
+
const DEFAULT_DEADLINE = Math.floor(Date.now() / 1000) + 60 * 15;
|
|
26940
|
+
// most swaps will be able to resolve with 2 hops
|
|
26941
|
+
const DEFAULT_MAX_HOPS = 2;
|
|
26942
|
+
// after 10 hops, it is very unlikely a route will be available
|
|
26943
|
+
const MAX_MAX_HOPS = 10;
|
|
26944
|
+
// a max hop of 1 will require a direct swap with no intermediary pools
|
|
26945
|
+
const MIN_MAX_HOPS = 1;
|
|
26946
|
+
// precision used to calculate percentage from basis points
|
|
26947
|
+
const BASIS_POINT_PRECISION = 10000;
|
|
26948
|
+
// 10% maximum secondary fee
|
|
26949
|
+
const MAX_SECONDARY_FEE_BASIS_POINTS = 10000;
|
|
26950
|
+
|
|
26951
|
+
class Fees {
|
|
26952
|
+
secondaryFees;
|
|
26853
26953
|
amount;
|
|
26854
26954
|
constructor(secondaryFees, token) {
|
|
26855
26955
|
this.secondaryFees = secondaryFees;
|
|
@@ -26995,13 +27095,10 @@ function createSwapParameters(adjustedQuote, fromAddress, slippage, deadline, se
|
|
|
26995
27095
|
}
|
|
26996
27096
|
return createSwapCallParametersWithFees(uncheckedTrade, fromAddress, options, secondaryFees);
|
|
26997
27097
|
}
|
|
26998
|
-
function getSwap(
|
|
27098
|
+
function getSwap(adjustedQuote, fromAddress, slippage, deadline, peripheryRouterAddress, secondaryFeesAddress, gasPrice, secondaryFees) {
|
|
26999
27099
|
const calldata = createSwapParameters(adjustedQuote, fromAddress, slippage, deadline, secondaryFees);
|
|
27000
27100
|
// TODO: Add additional gas fee estimates for secondary fees
|
|
27001
|
-
const gasFeeEstimate = gasPrice ?
|
|
27002
|
-
token: nativeToken,
|
|
27003
|
-
value: calculateGasFee(gasPrice, adjustedQuote.gasEstimate),
|
|
27004
|
-
} : null;
|
|
27101
|
+
const gasFeeEstimate = gasPrice ? calculateGasFee(gasPrice, adjustedQuote.gasEstimate) : null;
|
|
27005
27102
|
return {
|
|
27006
27103
|
transaction: {
|
|
27007
27104
|
data: calldata,
|
|
@@ -27185,14 +27282,14 @@ class Exchange {
|
|
|
27185
27282
|
// get quote and gas details
|
|
27186
27283
|
const [ourQuote, gasPrice] = await Promise.all([
|
|
27187
27284
|
this.router.findOptimalRoute(ourQuoteReqAmount, otherToken, tradeType, maxHops),
|
|
27188
|
-
fetchGasPrice(this.provider),
|
|
27285
|
+
fetchGasPrice(this.provider, this.nativeToken),
|
|
27189
27286
|
]);
|
|
27190
27287
|
const adjustedQuote = prepareSwap(ourQuote, amountSpecified, fees);
|
|
27191
|
-
const swap = getSwap(
|
|
27288
|
+
const swap = getSwap(adjustedQuote, fromAddress, slippagePercent, deadline, this.router.routingContracts.peripheryRouterAddress, this.router.routingContracts.secondaryFeeAddress, gasPrice, secondaryFees);
|
|
27192
27289
|
const userQuote = prepareUserQuote(otherToken, adjustedQuote, slippagePercent, fees);
|
|
27193
|
-
const preparedApproval = prepareApproval(tradeType,
|
|
27194
|
-
//
|
|
27195
|
-
const approval = await getApproval(this.
|
|
27290
|
+
const preparedApproval = prepareApproval(tradeType, amountSpecified, userQuote.amountWithMaxSlippage, this.router.routingContracts, secondaryFees);
|
|
27291
|
+
// preparedApproval always uses the tokenIn address because we are always selling the tokenIn
|
|
27292
|
+
const approval = await getApproval(this.provider, fromAddress, preparedApproval, gasPrice);
|
|
27196
27293
|
return {
|
|
27197
27294
|
approval,
|
|
27198
27295
|
swap,
|
|
@@ -27237,6 +27334,18 @@ class Exchange {
|
|
|
27237
27334
|
|
|
27238
27335
|
|
|
27239
27336
|
|
|
27337
|
+
var $aa144554f9ef124b$export$226b052ecb8ca80;
|
|
27338
|
+
(function(BuyStatusType) {
|
|
27339
|
+
BuyStatusType["SUCCESS"] = "SUCCESS";
|
|
27340
|
+
BuyStatusType["FAILED"] = "FAILED";
|
|
27341
|
+
})($aa144554f9ef124b$export$226b052ecb8ca80 || ($aa144554f9ef124b$export$226b052ecb8ca80 = {}));
|
|
27342
|
+
|
|
27343
|
+
|
|
27344
|
+
var $1e6b81bbd98b3a91$export$c0189a8c30039654;
|
|
27345
|
+
(function(CancelStatusType) {
|
|
27346
|
+
CancelStatusType["SUCCESS"] = "SUCCESS";
|
|
27347
|
+
CancelStatusType["FAILED"] = "FAILED";
|
|
27348
|
+
})($1e6b81bbd98b3a91$export$c0189a8c30039654 || ($1e6b81bbd98b3a91$export$c0189a8c30039654 = {}));
|
|
27240
27349
|
|
|
27241
27350
|
|
|
27242
27351
|
/**
|
|
@@ -27284,6 +27393,13 @@ var $a47e48dd2c04791b$export$1f05a55fe0680cc7;
|
|
|
27284
27393
|
|
|
27285
27394
|
|
|
27286
27395
|
|
|
27396
|
+
var $c2874b006e92b115$export$a9780122aaa0801a;
|
|
27397
|
+
(function(SellStatusType) {
|
|
27398
|
+
SellStatusType["SUCCESS"] = "SUCCESS";
|
|
27399
|
+
SellStatusType["FAILED"] = "FAILED";
|
|
27400
|
+
})($c2874b006e92b115$export$a9780122aaa0801a || ($c2874b006e92b115$export$a9780122aaa0801a = {}));
|
|
27401
|
+
|
|
27402
|
+
|
|
27287
27403
|
var $08d5ddc39acd6833$export$fd9b17d87f4121d2;
|
|
27288
27404
|
(function(TokenFilterTypes) {
|
|
27289
27405
|
TokenFilterTypes["ALL"] = "all";
|
|
@@ -27334,13 +27450,25 @@ const $e768639828688ca3$export$44dde05038008549 = {
|
|
|
27334
27450
|
const $d85ad1457a3f1a83$export$7d3a9eeba384fa59 = "development";
|
|
27335
27451
|
const $d85ad1457a3f1a83$export$b80040cb173ba6e9 = "0x0000000000000000000000000000000000001010";
|
|
27336
27452
|
const $d85ad1457a3f1a83$export$903389470ba9433c = 18;
|
|
27453
|
+
const $d85ad1457a3f1a83$var$ZKEVM_NATIVE_TOKEN = {
|
|
27454
|
+
name: "IMX",
|
|
27455
|
+
symbol: "IMX",
|
|
27456
|
+
decimals: $d85ad1457a3f1a83$export$903389470ba9433c,
|
|
27457
|
+
address: $d85ad1457a3f1a83$export$b80040cb173ba6e9
|
|
27458
|
+
};
|
|
27337
27459
|
const $d85ad1457a3f1a83$export$161d4a74df65fc08 = {
|
|
27338
27460
|
[$d85ad1457a3f1a83$export$7d3a9eeba384fa59]: "https://checkout-api.dev.immutable.com",
|
|
27339
27461
|
[(Environment$1).SANDBOX]: "https://checkout-api.sandbox.immutable.com",
|
|
27340
27462
|
[(Environment$1).PRODUCTION]: "https://checkout-api.immutable.com"
|
|
27341
27463
|
};
|
|
27464
|
+
const $d85ad1457a3f1a83$export$72176e2233d7d5d = true;
|
|
27465
|
+
const $d85ad1457a3f1a83$export$566b5975cc83d6b4 = true;
|
|
27466
|
+
const $d85ad1457a3f1a83$export$261cde2078dba35b = true;
|
|
27342
27467
|
const $d85ad1457a3f1a83$export$fc55ed5a42b458ba = {
|
|
27343
|
-
[($0472f23319457bfb$export$c06e1e7429de6283).IMTBL_ZKEVM_TESTNET]:
|
|
27468
|
+
[($0472f23319457bfb$export$c06e1e7429de6283).IMTBL_ZKEVM_TESTNET]: {
|
|
27469
|
+
url: "https://explorer.testnet.immutable.com",
|
|
27470
|
+
nativeToken: $d85ad1457a3f1a83$var$ZKEVM_NATIVE_TOKEN
|
|
27471
|
+
}
|
|
27344
27472
|
};
|
|
27345
27473
|
const $d85ad1457a3f1a83$export$6f24f3cef7d501c4 = new Map([
|
|
27346
27474
|
[
|
|
@@ -27369,12 +27497,7 @@ const $d85ad1457a3f1a83$export$6f24f3cef7d501c4 = new Map([
|
|
|
27369
27497
|
rpcUrls: [
|
|
27370
27498
|
"https://rpc.immutable.com"
|
|
27371
27499
|
],
|
|
27372
|
-
nativeCurrency:
|
|
27373
|
-
name: "IMX",
|
|
27374
|
-
symbol: "IMX",
|
|
27375
|
-
decimals: 18,
|
|
27376
|
-
address: $d85ad1457a3f1a83$export$b80040cb173ba6e9
|
|
27377
|
-
}
|
|
27500
|
+
nativeCurrency: $d85ad1457a3f1a83$var$ZKEVM_NATIVE_TOKEN
|
|
27378
27501
|
}
|
|
27379
27502
|
]
|
|
27380
27503
|
]);
|
|
@@ -27405,12 +27528,7 @@ const $d85ad1457a3f1a83$export$3e81fc0987227f10 = new Map([
|
|
|
27405
27528
|
rpcUrls: [
|
|
27406
27529
|
"https://rpc.testnet.immutable.com"
|
|
27407
27530
|
],
|
|
27408
|
-
nativeCurrency:
|
|
27409
|
-
name: "IMX",
|
|
27410
|
-
symbol: "IMX",
|
|
27411
|
-
decimals: 18,
|
|
27412
|
-
address: $d85ad1457a3f1a83$export$b80040cb173ba6e9
|
|
27413
|
-
}
|
|
27531
|
+
nativeCurrency: $d85ad1457a3f1a83$var$ZKEVM_NATIVE_TOKEN
|
|
27414
27532
|
}
|
|
27415
27533
|
]
|
|
27416
27534
|
]);
|
|
@@ -27441,12 +27559,7 @@ const $d85ad1457a3f1a83$export$3a9ebede6a150274 = new Map([
|
|
|
27441
27559
|
rpcUrls: [
|
|
27442
27560
|
"https://rpc.dev.immutable.com"
|
|
27443
27561
|
],
|
|
27444
|
-
nativeCurrency:
|
|
27445
|
-
name: "IMX",
|
|
27446
|
-
symbol: "IMX",
|
|
27447
|
-
decimals: 18,
|
|
27448
|
-
address: $d85ad1457a3f1a83$export$b80040cb173ba6e9
|
|
27449
|
-
}
|
|
27562
|
+
nativeCurrency: $d85ad1457a3f1a83$var$ZKEVM_NATIVE_TOKEN
|
|
27450
27563
|
}
|
|
27451
27564
|
]
|
|
27452
27565
|
]);
|
|
@@ -27690,10 +27803,15 @@ var $4b58188d47aafe8d$export$537fa3efd10ed435;
|
|
|
27690
27803
|
CheckoutErrorType["UNSUPPORTED_TOKEN_TYPE_ERROR"] = "UNSUPPORTED_TOKEN_TYPE_ERROR";
|
|
27691
27804
|
CheckoutErrorType["UNSUPPORTED_BALANCE_REQUIREMENT_ERROR"] = "UNSUPPORTED_BALANCE_REQUIREMENT_ERROR";
|
|
27692
27805
|
CheckoutErrorType["GET_ORDER_LISTING_ERROR"] = "GET_ORDER_LISTING_ERROR";
|
|
27806
|
+
CheckoutErrorType["CANCEL_ORDER_LISTING_ERROR"] = "CANCEL_ORDER_LISTING_ERROR";
|
|
27693
27807
|
CheckoutErrorType["PREPARE_ORDER_LISTING_ERROR"] = "PREPARE_ORDER_LISTING_ERROR";
|
|
27808
|
+
CheckoutErrorType["CREATE_ORDER_LISTING_ERROR"] = "CREATE_ORDER_LISTING_ERROR";
|
|
27694
27809
|
CheckoutErrorType["SWITCH_NETWORK_UNSUPPORTED"] = "SWITCH_NETWORK_UNSUPPORTED";
|
|
27695
27810
|
CheckoutErrorType["GET_ERC20_ALLOWANCE_ERROR"] = "GET_ERC20_ALLOWANCE_ERROR";
|
|
27696
27811
|
CheckoutErrorType["GET_ERC721_ALLOWANCE_ERROR"] = "GET_ERC721_ALLOWANCE_ERROR";
|
|
27812
|
+
CheckoutErrorType["EXECUTE_APPROVAL_TRANSACTION_ERROR"] = "EXECUTE_APPROVAL_TRANSACTION_ERROR";
|
|
27813
|
+
CheckoutErrorType["EXECUTE_FULFILMENT_TRANSACTION_ERROR"] = "EXECUTE_FULFILMENT_TRANSACTION_ERROR";
|
|
27814
|
+
CheckoutErrorType["SIGN_MESSAGE_ERROR"] = "SIGN_MESSAGE_ERROR";
|
|
27697
27815
|
})($a8bc256d81a5e2c1$export$e3dc0620abde7f5a || ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a = {}));
|
|
27698
27816
|
class $a8bc256d81a5e2c1$export$b722478a3cbfa3bc extends Error {
|
|
27699
27817
|
message;
|
|
@@ -27899,6 +28017,7 @@ const $efe60cea83bfc4e8$export$473cec51305fdae8 = async (config, { type: type =
|
|
|
27899
28017
|
const $fd8a8472dcc3ec2b$var$CACHE_DATA_TTL = 60; // seconds
|
|
27900
28018
|
class $fd8a8472dcc3ec2b$export$ef140a6b05dfc786 {
|
|
27901
28019
|
url;
|
|
28020
|
+
nativeToken;
|
|
27902
28021
|
ttl;
|
|
27903
28022
|
chainId;
|
|
27904
28023
|
cacheMap;
|
|
@@ -27922,7 +28041,14 @@ class $fd8a8472dcc3ec2b$export$ef140a6b05dfc786 {
|
|
|
27922
28041
|
* @param ttl cache TTL
|
|
27923
28042
|
*/ constructor(params){
|
|
27924
28043
|
this.chainId = params.chainId;
|
|
27925
|
-
this.url = ($d85ad1457a3f1a83$export$fc55ed5a42b458ba)[this.chainId];
|
|
28044
|
+
this.url = ($d85ad1457a3f1a83$export$fc55ed5a42b458ba)[this.chainId].url;
|
|
28045
|
+
const native = ($d85ad1457a3f1a83$export$fc55ed5a42b458ba)[this.chainId].nativeToken;
|
|
28046
|
+
this.nativeToken = {
|
|
28047
|
+
address: native.address ?? "",
|
|
28048
|
+
decimals: native.decimals.toString(),
|
|
28049
|
+
name: native.name,
|
|
28050
|
+
symbol: native.symbol
|
|
28051
|
+
};
|
|
27926
28052
|
this.cacheMap = {};
|
|
27927
28053
|
this.ttl = params.ttl !== undefined ? params.ttl : $fd8a8472dcc3ec2b$var$CACHE_DATA_TTL;
|
|
27928
28054
|
}
|
|
@@ -27935,14 +28061,14 @@ class $fd8a8472dcc3ec2b$export$ef140a6b05dfc786 {
|
|
|
27935
28061
|
* @param err error to evaluate
|
|
27936
28062
|
*/ static isBlockscoutError = (err)=>"code" in err;
|
|
27937
28063
|
/**
|
|
27938
|
-
*
|
|
28064
|
+
* getTokensByWalletAddress fetches the list of tokens (by type) owned by the wallet address.
|
|
27939
28065
|
* @param walletAddress wallet address
|
|
27940
|
-
* @param tokenType token
|
|
27941
|
-
* @param nextPage parameters for the next page, to be provided
|
|
28066
|
+
* @param tokenType token type
|
|
28067
|
+
* @param nextPage parameters for the next page, to be provided alongside walletAddress and tokenType
|
|
27942
28068
|
* @returns list of tokens given the wallet address and the token types
|
|
27943
|
-
*/ async
|
|
28069
|
+
*/ async getTokensByWalletAddress(params) {
|
|
27944
28070
|
try {
|
|
27945
|
-
let url = `${this.url}/api/v2/addresses/${params.walletAddress}/tokens?type=${params.tokenType
|
|
28071
|
+
let url = `${this.url}/api/v2/addresses/${params.walletAddress}/tokens?type=${params.tokenType}`;
|
|
27946
28072
|
if (params.nextPage) url += `&${new URLSearchParams(params.nextPage)}`;
|
|
27947
28073
|
// Cache response data to prevent unnecessary requests
|
|
27948
28074
|
const cached = this.getCache(url);
|
|
@@ -27952,8 +28078,51 @@ class $fd8a8472dcc3ec2b$export$ef140a6b05dfc786 {
|
|
|
27952
28078
|
code: response.status,
|
|
27953
28079
|
message: response.statusText
|
|
27954
28080
|
});
|
|
27955
|
-
|
|
27956
|
-
|
|
28081
|
+
// To get around an issue with native tokens being an ERC-20, there is the need
|
|
28082
|
+
// to remove IMX from `resp` and add it back in using getNativeTokenByWalletAddress.
|
|
28083
|
+
// This has affected some of the early wallets, and it might not be an issue in mainnet
|
|
28084
|
+
// however, let's enforce it.
|
|
28085
|
+
const data = {
|
|
28086
|
+
items: response.data?.items?.filter((token)=>token.token.address && token.token.address !== this.nativeToken.address),
|
|
28087
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
28088
|
+
next_page_params: response.data?.next_page_params
|
|
28089
|
+
};
|
|
28090
|
+
this.setCache(url, data);
|
|
28091
|
+
return Promise.resolve(data);
|
|
28092
|
+
} catch (err) {
|
|
28093
|
+
let code = (globalAxios$1.HttpStatusCode).InternalServerError;
|
|
28094
|
+
let message = "InternalServerError";
|
|
28095
|
+
if ((globalAxios$1).isAxiosError(err)) {
|
|
28096
|
+
code = err.response?.status || code;
|
|
28097
|
+
message = err.message;
|
|
28098
|
+
}
|
|
28099
|
+
return Promise.reject({
|
|
28100
|
+
code: code,
|
|
28101
|
+
message: message
|
|
28102
|
+
});
|
|
28103
|
+
}
|
|
28104
|
+
}
|
|
28105
|
+
/**
|
|
28106
|
+
* getNativeTokenByWalletAddress fetches the native token owned by the wallet address.
|
|
28107
|
+
* @param walletAddress wallet address
|
|
28108
|
+
* @returns list of tokens given the wallet address and the token types
|
|
28109
|
+
*/ async getNativeTokenByWalletAddress(params) {
|
|
28110
|
+
try {
|
|
28111
|
+
const url = `${this.url}/api/v2/addresses/${params.walletAddress}`;
|
|
28112
|
+
// Cache response data to prevent unnecessary requests
|
|
28113
|
+
const cached = this.getCache(url);
|
|
28114
|
+
if (cached && cached.status < 400) return Promise.resolve(cached.data);
|
|
28115
|
+
const response = await $fd8a8472dcc3ec2b$export$ef140a6b05dfc786.makeHttpRequest(url);
|
|
28116
|
+
if (response.status >= 400) return Promise.reject({
|
|
28117
|
+
code: response.status,
|
|
28118
|
+
message: response.statusText
|
|
28119
|
+
});
|
|
28120
|
+
const data = {
|
|
28121
|
+
token: this.nativeToken,
|
|
28122
|
+
value: response.data.coin_balance
|
|
28123
|
+
};
|
|
28124
|
+
this.setCache(url, data);
|
|
28125
|
+
return Promise.resolve(data);
|
|
27957
28126
|
} catch (err) {
|
|
27958
28127
|
let code = (globalAxios$1.HttpStatusCode).InternalServerError;
|
|
27959
28128
|
let message = "InternalServerError";
|
|
@@ -28031,16 +28200,14 @@ const $1564e43dde50bb61$export$8c978679845804d4 = async (walletAddress, chainId,
|
|
|
28031
28200
|
});
|
|
28032
28201
|
// Hold the items in an array for post-fetching processing
|
|
28033
28202
|
const items = [];
|
|
28034
|
-
const tokenType =
|
|
28035
|
-
($887a00f8f72d61f0$export$5bd1ea2b3d18210).ERC20
|
|
28036
|
-
];
|
|
28203
|
+
const tokenType = ($887a00f8f72d61f0$export$5bd1ea2b3d18210).ERC20;
|
|
28037
28204
|
// Given that the widgets aren't yet designed to support pagination,
|
|
28038
28205
|
// fetch all the possible tokens associated to a given wallet address.
|
|
28039
28206
|
let resp;
|
|
28040
28207
|
try {
|
|
28041
28208
|
do {
|
|
28042
28209
|
// eslint-disable-next-line no-await-in-loop
|
|
28043
|
-
resp = await $1564e43dde50bb61$var$blockscoutClient.
|
|
28210
|
+
resp = await $1564e43dde50bb61$var$blockscoutClient.getTokensByWalletAddress({
|
|
28044
28211
|
walletAddress: walletAddress,
|
|
28045
28212
|
tokenType: tokenType,
|
|
28046
28213
|
nextPage: resp?.next_page_params
|
|
@@ -28048,7 +28215,15 @@ const $1564e43dde50bb61$export$8c978679845804d4 = async (walletAddress, chainId,
|
|
|
28048
28215
|
items.push(...resp.items);
|
|
28049
28216
|
}while (resp.next_page_params);
|
|
28050
28217
|
} catch (err) {
|
|
28051
|
-
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)(err.message || "InternalServerError", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_INDEXER_BALANCE_ERROR, err);
|
|
28218
|
+
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)(err.message || "InternalServerError | getTokensByWalletAddress", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_INDEXER_BALANCE_ERROR, err);
|
|
28219
|
+
}
|
|
28220
|
+
try {
|
|
28221
|
+
const respNative = await $1564e43dde50bb61$var$blockscoutClient.getNativeTokenByWalletAddress({
|
|
28222
|
+
walletAddress: walletAddress
|
|
28223
|
+
});
|
|
28224
|
+
items.push(respNative);
|
|
28225
|
+
} catch (err) {
|
|
28226
|
+
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)(err.message || "InternalServerError | getNativeTokenByWalletAddress", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_INDEXER_BALANCE_ERROR, err);
|
|
28052
28227
|
}
|
|
28053
28228
|
return {
|
|
28054
28229
|
balances: items.map((item)=>{
|
|
@@ -28078,7 +28253,7 @@ const $1564e43dde50bb61$export$a3238cee431627c6 = async (config, web3Provider, w
|
|
|
28078
28253
|
else allBalancePromises.push($1564e43dde50bb61$export$60e0fe116a0e6ed0(web3Provider, walletAddress, token.address));
|
|
28079
28254
|
});
|
|
28080
28255
|
const balanceResults = await Promise.allSettled(allBalancePromises);
|
|
28081
|
-
const balances = balanceResults.filter((result)=>result.status === "fulfilled").map((
|
|
28256
|
+
const balances = balanceResults.filter((result)=>result.status === "fulfilled").map((result)=>result.value);
|
|
28082
28257
|
return {
|
|
28083
28258
|
balances: balances
|
|
28084
28259
|
};
|
|
@@ -28099,6 +28274,9 @@ const $1564e43dde50bb61$export$fee49741664a4d7e = async (config, web3Provider, w
|
|
|
28099
28274
|
console.error(err);
|
|
28100
28275
|
}
|
|
28101
28276
|
if (flag && ($fd8a8472dcc3ec2b$export$ef140a6b05dfc786).isChainSupported(chainId)) return await $1564e43dde50bb61$export$8c978679845804d4(walletAddress, chainId, tokens);
|
|
28277
|
+
// This fallback to use ERC20s calls which is a best effort solution
|
|
28278
|
+
// Fails in fetching data from the RCP calls might result in some
|
|
28279
|
+
// missing data.
|
|
28102
28280
|
return await $1564e43dde50bb61$export$a3238cee431627c6(config, web3Provider, walletAddress, tokens);
|
|
28103
28281
|
};
|
|
28104
28282
|
|
|
@@ -28434,6 +28612,9 @@ class $4013c5c91bb535f6$export$4823433c4a67bbc6 {
|
|
|
28434
28612
|
// Environment.DEVELOPMENT
|
|
28435
28613
|
isDevelopment = false;
|
|
28436
28614
|
isProduction;
|
|
28615
|
+
isOnRampEnabled;
|
|
28616
|
+
isSwapEnabled;
|
|
28617
|
+
isBridgeEnabled;
|
|
28437
28618
|
remote;
|
|
28438
28619
|
environment;
|
|
28439
28620
|
networkMap;
|
|
@@ -28442,6 +28623,9 @@ class $4013c5c91bb535f6$export$4823433c4a67bbc6 {
|
|
|
28442
28623
|
this.environment = config.baseConfig.environment;
|
|
28443
28624
|
// Developer mode will super set any environment configuration
|
|
28444
28625
|
this.isProduction = !this.isDevelopment && this.environment === (Environment$1).PRODUCTION;
|
|
28626
|
+
this.isOnRampEnabled = config.isOnRampEnabled ?? ($d85ad1457a3f1a83$export$72176e2233d7d5d);
|
|
28627
|
+
this.isSwapEnabled = config.isSwapEnabled ?? ($d85ad1457a3f1a83$export$566b5975cc83d6b4);
|
|
28628
|
+
this.isBridgeEnabled = config.isBridgeEnabled ?? ($d85ad1457a3f1a83$export$261cde2078dba35b);
|
|
28445
28629
|
this.networkMap = $4013c5c91bb535f6$var$networkMap(this.isProduction, this.isDevelopment);
|
|
28446
28630
|
this.remote = new ($a492ee374ae7b613$export$d902b56530cd5f87)({
|
|
28447
28631
|
isDevelopment: this.isDevelopment,
|
|
@@ -28553,6 +28737,7 @@ async function $2e7bf45a7c9a9570$export$942c8de7174809fc(params, readOnlyProvide
|
|
|
28553
28737
|
|
|
28554
28738
|
|
|
28555
28739
|
|
|
28740
|
+
|
|
28556
28741
|
const $ddc6bcd0896481e5$export$2fbfa41a4de56a89 = (erc20allowances, erc721allowances)=>{
|
|
28557
28742
|
const aggregatedAllowances = [];
|
|
28558
28743
|
if (!erc20allowances.sufficient) {
|
|
@@ -29200,6 +29385,164 @@ const $7d1bfafb81e64d74$export$3a4140bd9e983e4e = async (provider, insufficientI
|
|
|
29200
29385
|
|
|
29201
29386
|
|
|
29202
29387
|
|
|
29388
|
+
const $1fda5c40669a566d$export$1fac8e857d728583 = async ()=>true;
|
|
29389
|
+
const $1fda5c40669a566d$export$2e83e9eeaf217e20 = async ()=>true;
|
|
29390
|
+
|
|
29391
|
+
|
|
29392
|
+
const $7f2e17f026d4fc8d$var$isPassportProvider = (provider)=>(provider.provider?.isPassport === true) ?? false;
|
|
29393
|
+
const $7f2e17f026d4fc8d$export$f1ca3744c025ab81 = async (config, provider)=>{
|
|
29394
|
+
const availableRoutingOptions = {
|
|
29395
|
+
onRamp: config.isOnRampEnabled,
|
|
29396
|
+
swap: config.isSwapEnabled,
|
|
29397
|
+
bridge: config.isBridgeEnabled
|
|
29398
|
+
};
|
|
29399
|
+
// Geo-blocking checks
|
|
29400
|
+
const geoBlockingChecks = [];
|
|
29401
|
+
if (availableRoutingOptions.onRamp) geoBlockingChecks.push({
|
|
29402
|
+
id: "onRamp",
|
|
29403
|
+
promise: ($1fda5c40669a566d$export$1fac8e857d728583)()
|
|
29404
|
+
});
|
|
29405
|
+
if (availableRoutingOptions.swap) geoBlockingChecks.push({
|
|
29406
|
+
id: "swap",
|
|
29407
|
+
promise: ($1fda5c40669a566d$export$2e83e9eeaf217e20)()
|
|
29408
|
+
});
|
|
29409
|
+
if (geoBlockingChecks.length > 0) {
|
|
29410
|
+
const promises = geoBlockingChecks.map((geoBlockingCheck)=>geoBlockingCheck.promise);
|
|
29411
|
+
const geoBlockingStatus = await Promise.allSettled(promises);
|
|
29412
|
+
geoBlockingStatus.forEach((result, index)=>{
|
|
29413
|
+
const statusId = geoBlockingChecks[index].id;
|
|
29414
|
+
availableRoutingOptions[statusId] = availableRoutingOptions[statusId] && result.status === "fulfilled" && !result.value;
|
|
29415
|
+
});
|
|
29416
|
+
}
|
|
29417
|
+
// Bridge not available if passport provider
|
|
29418
|
+
availableRoutingOptions.bridge = availableRoutingOptions.bridge && !$7f2e17f026d4fc8d$var$isPassportProvider(provider);
|
|
29419
|
+
return availableRoutingOptions;
|
|
29420
|
+
};
|
|
29421
|
+
|
|
29422
|
+
|
|
29423
|
+
|
|
29424
|
+
|
|
29425
|
+
|
|
29426
|
+
|
|
29427
|
+
|
|
29428
|
+
|
|
29429
|
+
|
|
29430
|
+
async function $0e0060cb42e136d2$export$339cb2be73677b30(config, existingReadOnlyProviders) {
|
|
29431
|
+
if (config.isProduction && existingReadOnlyProviders?.has(($0472f23319457bfb$export$c06e1e7429de6283).ETHEREUM)) return existingReadOnlyProviders;
|
|
29432
|
+
if (existingReadOnlyProviders?.has(($0472f23319457bfb$export$c06e1e7429de6283).SEPOLIA)) return existingReadOnlyProviders;
|
|
29433
|
+
const readOnlyProviders = new Map();
|
|
29434
|
+
const allowedNetworks = await $de192de6ef100f9f$export$3043f6442a9ef563(config, {
|
|
29435
|
+
type: ($a47e48dd2c04791b$export$1f05a55fe0680cc7).ALL
|
|
29436
|
+
});
|
|
29437
|
+
allowedNetworks.networks.forEach((networkInfo)=>{
|
|
29438
|
+
const rpcUrl = config.networkMap.get(networkInfo.chainId)?.rpcUrls[0];
|
|
29439
|
+
const provider = new (providers.JsonRpcProvider)(rpcUrl);
|
|
29440
|
+
readOnlyProviders.set(networkInfo.chainId, provider);
|
|
29441
|
+
});
|
|
29442
|
+
return readOnlyProviders;
|
|
29443
|
+
}
|
|
29444
|
+
|
|
29445
|
+
|
|
29446
|
+
|
|
29447
|
+
|
|
29448
|
+
const $33acec7b4a26c053$export$23ddeb2642d2f9d = async (config, ownerAddress, availableRoutingOptions)=>{
|
|
29449
|
+
const chainBalances = new Map();
|
|
29450
|
+
const chainBalancePromises = new Map();
|
|
29451
|
+
let readOnlyProviders = new Map();
|
|
29452
|
+
let providerError;
|
|
29453
|
+
try {
|
|
29454
|
+
readOnlyProviders = await (0, $0e0060cb42e136d2$export$339cb2be73677b30)(config);
|
|
29455
|
+
} catch (error) {
|
|
29456
|
+
providerError = error;
|
|
29457
|
+
}
|
|
29458
|
+
if (readOnlyProviders.size === 0) {
|
|
29459
|
+
const noProviderResult = {
|
|
29460
|
+
success: false,
|
|
29461
|
+
error: providerError || new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Provider failed", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).PROVIDER_ERROR),
|
|
29462
|
+
balances: []
|
|
29463
|
+
};
|
|
29464
|
+
chainBalances.set(($4013c5c91bb535f6$export$9b794d067cdd1af6)(config), noProviderResult);
|
|
29465
|
+
chainBalances.set(($4013c5c91bb535f6$export$c9af4e4b001c6476)(config), noProviderResult);
|
|
29466
|
+
return chainBalances;
|
|
29467
|
+
}
|
|
29468
|
+
// Only get L1 Balances if we can bridge
|
|
29469
|
+
if (availableRoutingOptions.bridge) {
|
|
29470
|
+
const chainId = ($4013c5c91bb535f6$export$9b794d067cdd1af6)(config);
|
|
29471
|
+
if (readOnlyProviders.has(chainId)) chainBalancePromises.set(chainId, ($1564e43dde50bb61$export$fee49741664a4d7e)(config, readOnlyProviders.get(chainId), ownerAddress, chainId));
|
|
29472
|
+
else chainBalances.set(($4013c5c91bb535f6$export$9b794d067cdd1af6)(config), {
|
|
29473
|
+
success: false,
|
|
29474
|
+
error: new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)(`No L1 provider available for ${chainId}`, ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).PROVIDER_ERROR),
|
|
29475
|
+
balances: []
|
|
29476
|
+
});
|
|
29477
|
+
}
|
|
29478
|
+
const chainId = ($4013c5c91bb535f6$export$c9af4e4b001c6476)(config);
|
|
29479
|
+
if (readOnlyProviders.has(chainId)) chainBalancePromises.set(chainId, ($1564e43dde50bb61$export$fee49741664a4d7e)(config, readOnlyProviders.get(chainId), ownerAddress, chainId));
|
|
29480
|
+
else chainBalances.set(($4013c5c91bb535f6$export$c9af4e4b001c6476)(config), {
|
|
29481
|
+
success: false,
|
|
29482
|
+
error: new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)(`No L2 provider available for ${chainId}`, ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).PROVIDER_ERROR),
|
|
29483
|
+
balances: []
|
|
29484
|
+
});
|
|
29485
|
+
if (chainBalancePromises.size > 0) {
|
|
29486
|
+
const chainIds = Array.from(chainBalancePromises.keys());
|
|
29487
|
+
const balanceSettledResults = await Promise.allSettled(chainBalancePromises.values());
|
|
29488
|
+
balanceSettledResults.forEach((balanceSettledResult, index)=>{
|
|
29489
|
+
const balanceChainId = chainIds[index];
|
|
29490
|
+
if (balanceSettledResult.status === "fulfilled") chainBalances.set(balanceChainId, {
|
|
29491
|
+
success: true,
|
|
29492
|
+
balances: balanceSettledResult.value.balances
|
|
29493
|
+
});
|
|
29494
|
+
else chainBalances.set(balanceChainId, {
|
|
29495
|
+
success: false,
|
|
29496
|
+
error: new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)(`Error getting ${chainId} balances`, ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_BALANCE_ERROR),
|
|
29497
|
+
balances: []
|
|
29498
|
+
});
|
|
29499
|
+
});
|
|
29500
|
+
}
|
|
29501
|
+
return chainBalances;
|
|
29502
|
+
};
|
|
29503
|
+
|
|
29504
|
+
|
|
29505
|
+
const $c16168a9c28ae4fd$export$92606e71d0a264ff = async (config, ownerAddress, balanceRequirements, availableRoutingOptions)=>{
|
|
29506
|
+
// eslint-disable-next-line no-console
|
|
29507
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29508
|
+
await ($33acec7b4a26c053$export$23ddeb2642d2f9d)(config, ownerAddress, availableRoutingOptions);
|
|
29509
|
+
// Get allowed tokens?
|
|
29510
|
+
// Check bridging routes
|
|
29511
|
+
// Check on-ramp routes
|
|
29512
|
+
// Check swap routes
|
|
29513
|
+
// > Could bridge first
|
|
29514
|
+
// > Could on-ramp first
|
|
29515
|
+
// > Could double swap
|
|
29516
|
+
return {
|
|
29517
|
+
availableOptions: [],
|
|
29518
|
+
response: {
|
|
29519
|
+
type: "ROUTES_FOUND",
|
|
29520
|
+
message: "Routes found"
|
|
29521
|
+
},
|
|
29522
|
+
fundingRoutes: [
|
|
29523
|
+
{
|
|
29524
|
+
priority: 1,
|
|
29525
|
+
steps: [
|
|
29526
|
+
{
|
|
29527
|
+
type: "bridge",
|
|
29528
|
+
chainId: 1,
|
|
29529
|
+
asset: {
|
|
29530
|
+
balance: (ethers.BigNumber).from(0),
|
|
29531
|
+
formattedBalance: "0",
|
|
29532
|
+
token: {
|
|
29533
|
+
name: "ETH",
|
|
29534
|
+
symbol: "ETH",
|
|
29535
|
+
decimals: 18
|
|
29536
|
+
}
|
|
29537
|
+
}
|
|
29538
|
+
}
|
|
29539
|
+
]
|
|
29540
|
+
}
|
|
29541
|
+
]
|
|
29542
|
+
};
|
|
29543
|
+
};
|
|
29544
|
+
|
|
29545
|
+
|
|
29203
29546
|
const $0e7419077c373b24$export$4a2a19d99fef3b1b = (balanceCheckResult)=>{
|
|
29204
29547
|
let sufficient = true;
|
|
29205
29548
|
const transactionRequirements = [];
|
|
@@ -29230,12 +29573,123 @@ const $0e7419077c373b24$export$9e073f9ada8c81e6 = async (config, provider, itemR
|
|
|
29230
29573
|
aggregatedItems = ($074f75878f618031$export$c804c9ade5c28607)(aggregatedItems);
|
|
29231
29574
|
}
|
|
29232
29575
|
const balanceRequirements = await ($beb896e098e41faf$export$ddfc885f43c3cb6e)(config, provider, ownerAddress, aggregatedItems);
|
|
29576
|
+
// Determine which services are available
|
|
29577
|
+
const availableRoutingOptions = await ($7f2e17f026d4fc8d$export$f1ca3744c025ab81)(config, provider);
|
|
29578
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29579
|
+
await ($c16168a9c28ae4fd$export$92606e71d0a264ff)(config, ownerAddress, balanceRequirements, availableRoutingOptions);
|
|
29233
29580
|
return $0e7419077c373b24$export$4a2a19d99fef3b1b(balanceRequirements);
|
|
29234
29581
|
};
|
|
29235
29582
|
|
|
29236
29583
|
|
|
29237
29584
|
|
|
29238
29585
|
|
|
29586
|
+
|
|
29587
|
+
var $d855a5ba32004345$export$f51b97f3aaf2d5a8;
|
|
29588
|
+
(function(SignTransactionStatusType) {
|
|
29589
|
+
SignTransactionStatusType["SUCCESS"] = "SUCCESS";
|
|
29590
|
+
SignTransactionStatusType["FAILED"] = "FAILED";
|
|
29591
|
+
})($d855a5ba32004345$export$f51b97f3aaf2d5a8 || ($d855a5ba32004345$export$f51b97f3aaf2d5a8 = {}));
|
|
29592
|
+
|
|
29593
|
+
|
|
29594
|
+
const $25ac589234c10b67$export$19693ca396db083e = async (provider, approvalTransactions)=>{
|
|
29595
|
+
let receipts = [];
|
|
29596
|
+
try {
|
|
29597
|
+
const response = await Promise.all(approvalTransactions.map((transaction)=>provider.getSigner().sendTransaction(transaction)));
|
|
29598
|
+
receipts = await Promise.all(response.map((transaction)=>transaction.wait()));
|
|
29599
|
+
} catch (err) {
|
|
29600
|
+
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("An error occurred while executing the approval transaction", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).EXECUTE_APPROVAL_TRANSACTION_ERROR, {
|
|
29601
|
+
message: err.message
|
|
29602
|
+
});
|
|
29603
|
+
}
|
|
29604
|
+
for (const receipt of receipts){
|
|
29605
|
+
if (receipt.status === 0) return {
|
|
29606
|
+
type: ($d855a5ba32004345$export$f51b97f3aaf2d5a8).FAILED,
|
|
29607
|
+
transactionHash: receipt.transactionHash,
|
|
29608
|
+
reason: "Approval transaction failed and was reverted"
|
|
29609
|
+
};
|
|
29610
|
+
}
|
|
29611
|
+
return {
|
|
29612
|
+
type: ($d855a5ba32004345$export$f51b97f3aaf2d5a8).SUCCESS
|
|
29613
|
+
};
|
|
29614
|
+
};
|
|
29615
|
+
const $25ac589234c10b67$export$2161274619257102 = async (provider, fulfilmentTransactions)=>{
|
|
29616
|
+
let receipts = [];
|
|
29617
|
+
try {
|
|
29618
|
+
const response = await Promise.all(fulfilmentTransactions.map((transaction)=>provider.getSigner().sendTransaction(transaction)));
|
|
29619
|
+
receipts = await Promise.all(response.map((transaction)=>transaction.wait()));
|
|
29620
|
+
} catch (err) {
|
|
29621
|
+
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("An error occurred while executing the fulfilment transaction", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).EXECUTE_FULFILMENT_TRANSACTION_ERROR, {
|
|
29622
|
+
message: err.message
|
|
29623
|
+
});
|
|
29624
|
+
}
|
|
29625
|
+
for (const receipt of receipts){
|
|
29626
|
+
if (receipt.status === 0) return {
|
|
29627
|
+
type: ($d855a5ba32004345$export$f51b97f3aaf2d5a8).FAILED,
|
|
29628
|
+
transactionHash: receipt.transactionHash,
|
|
29629
|
+
reason: "Fulfilment transaction failed and was reverted"
|
|
29630
|
+
};
|
|
29631
|
+
}
|
|
29632
|
+
return {
|
|
29633
|
+
type: ($d855a5ba32004345$export$f51b97f3aaf2d5a8).SUCCESS
|
|
29634
|
+
};
|
|
29635
|
+
};
|
|
29636
|
+
const $25ac589234c10b67$export$1d9a7a8a40780de = async (provider, unsignedMessage)=>{
|
|
29637
|
+
try {
|
|
29638
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
29639
|
+
const signedMessage = await provider.getSigner()._signTypedData(unsignedMessage.unsignedMessage.domain, unsignedMessage.unsignedMessage.types, unsignedMessage.unsignedMessage.value);
|
|
29640
|
+
return {
|
|
29641
|
+
orderComponents: unsignedMessage.orderComponents,
|
|
29642
|
+
orderHash: unsignedMessage.orderHash,
|
|
29643
|
+
signedMessage: signedMessage
|
|
29644
|
+
};
|
|
29645
|
+
} catch (err) {
|
|
29646
|
+
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("An error occurred while signing the message", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).SIGN_MESSAGE_ERROR, {
|
|
29647
|
+
message: err.message
|
|
29648
|
+
});
|
|
29649
|
+
}
|
|
29650
|
+
};
|
|
29651
|
+
|
|
29652
|
+
|
|
29653
|
+
|
|
29654
|
+
const $a7367d01c6e76b1c$export$b087719c36e0f2dc = async (actions)=>{
|
|
29655
|
+
let approvalTransactions = [];
|
|
29656
|
+
let fulfilmentTransactions = [];
|
|
29657
|
+
const approvalPromises = [];
|
|
29658
|
+
const fulfilmentPromises = [];
|
|
29659
|
+
for (const action of actions){
|
|
29660
|
+
if (action.type !== (ActionType).TRANSACTION) continue;
|
|
29661
|
+
if (action.purpose === (TransactionPurpose).APPROVAL) approvalPromises.push(action.buildTransaction());
|
|
29662
|
+
if (action.purpose === (TransactionPurpose).FULFILL_ORDER) fulfilmentPromises.push(action.buildTransaction());
|
|
29663
|
+
}
|
|
29664
|
+
approvalTransactions = await Promise.all(approvalPromises);
|
|
29665
|
+
fulfilmentTransactions = await Promise.all(fulfilmentPromises);
|
|
29666
|
+
return {
|
|
29667
|
+
approvalTransactions: approvalTransactions,
|
|
29668
|
+
fulfilmentTransactions: fulfilmentTransactions
|
|
29669
|
+
};
|
|
29670
|
+
};
|
|
29671
|
+
const $a7367d01c6e76b1c$export$d62081fac18000c2 = (orderHash, orderComponents, actions)=>{
|
|
29672
|
+
let unsignedMessage;
|
|
29673
|
+
for (const action of actions){
|
|
29674
|
+
if (action.type !== (ActionType).SIGNABLE) continue;
|
|
29675
|
+
if (action.purpose === (SignablePurpose).CREATE_LISTING) unsignedMessage = {
|
|
29676
|
+
domain: action.message.domain,
|
|
29677
|
+
types: action.message.types,
|
|
29678
|
+
value: action.message.value
|
|
29679
|
+
};
|
|
29680
|
+
}
|
|
29681
|
+
if (!unsignedMessage) return undefined;
|
|
29682
|
+
return {
|
|
29683
|
+
orderHash: orderHash,
|
|
29684
|
+
orderComponents: orderComponents,
|
|
29685
|
+
unsignedMessage: unsignedMessage
|
|
29686
|
+
};
|
|
29687
|
+
};
|
|
29688
|
+
|
|
29689
|
+
|
|
29690
|
+
|
|
29691
|
+
|
|
29692
|
+
|
|
29239
29693
|
const $64863c39386de592$export$4249179755829904 = (type, contractAddress, amount, spenderAddress)=>{
|
|
29240
29694
|
switch(type){
|
|
29241
29695
|
case ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC20:
|
|
@@ -29253,17 +29707,10 @@ const $64863c39386de592$export$4249179755829904 = (type, contractAddress, amount
|
|
|
29253
29707
|
};
|
|
29254
29708
|
}
|
|
29255
29709
|
};
|
|
29256
|
-
const $64863c39386de592$export$
|
|
29257
|
-
|
|
29258
|
-
if (action.type === (ActionType).TRANSACTION && action.purpose === (TransactionPurpose).FULFILL_ORDER) // eslint-disable-next-line no-await-in-loop
|
|
29259
|
-
return await action.buildTransaction();
|
|
29260
|
-
}
|
|
29261
|
-
return undefined;
|
|
29262
|
-
};
|
|
29263
|
-
const $64863c39386de592$export$8f2ff92ab8657f0b = (gasLimit, transaction)=>{
|
|
29264
|
-
if (transaction) return {
|
|
29710
|
+
const $64863c39386de592$export$8f2ff92ab8657f0b = (gasLimit, unsignedTransactions)=>{
|
|
29711
|
+
if (unsignedTransactions.fulfilmentTransactions.length > 0) return {
|
|
29265
29712
|
type: ($4b58188d47aafe8d$export$65c64e46348ee3c1).TRANSACTION,
|
|
29266
|
-
transaction:
|
|
29713
|
+
transaction: unsignedTransactions.fulfilmentTransactions[0]
|
|
29267
29714
|
};
|
|
29268
29715
|
return {
|
|
29269
29716
|
type: ($4b58188d47aafe8d$export$65c64e46348ee3c1).GAS,
|
|
@@ -29289,12 +29736,18 @@ const $64863c39386de592$export$7f8e2b98eca5a7f0 = async (config, provider, order
|
|
|
29289
29736
|
message: err.message
|
|
29290
29737
|
});
|
|
29291
29738
|
}
|
|
29292
|
-
let
|
|
29739
|
+
let unsignedTransactions = {
|
|
29740
|
+
approvalTransactions: [],
|
|
29741
|
+
fulfilmentTransactions: []
|
|
29742
|
+
};
|
|
29293
29743
|
try {
|
|
29294
29744
|
const fulfillerAddress = await provider.getSigner().getAddress();
|
|
29295
29745
|
const { actions: actions } = await orderbook.fulfillOrder(orderId, fulfillerAddress);
|
|
29296
|
-
|
|
29297
|
-
} catch {
|
|
29746
|
+
unsignedTransactions = await (0, $a7367d01c6e76b1c$export$b087719c36e0f2dc)(actions);
|
|
29747
|
+
} catch {
|
|
29748
|
+
// Silently ignore error as this is usually thrown if user does not have enough balance
|
|
29749
|
+
// todo: if balance error - can we determine if its the balance error otherwise throw?
|
|
29750
|
+
}
|
|
29298
29751
|
let amount = (ethers.BigNumber).from("0");
|
|
29299
29752
|
let type = ($4b58188d47aafe8d$export$1fc8f52ad1810e52).NATIVE;
|
|
29300
29753
|
let contractAddress = "";
|
|
@@ -29322,12 +29775,78 @@ const $64863c39386de592$export$7f8e2b98eca5a7f0 = async (config, provider, order
|
|
|
29322
29775
|
const itemRequirements = [
|
|
29323
29776
|
$64863c39386de592$export$4249179755829904(type, contractAddress, amount, spenderAddress)
|
|
29324
29777
|
];
|
|
29325
|
-
await ($0e7419077c373b24$export$9e073f9ada8c81e6)(config, provider, itemRequirements, $64863c39386de592$export$8f2ff92ab8657f0b(gasLimit,
|
|
29778
|
+
const smartCheckoutResult = await ($0e7419077c373b24$export$9e073f9ada8c81e6)(config, provider, itemRequirements, $64863c39386de592$export$8f2ff92ab8657f0b(gasLimit, unsignedTransactions));
|
|
29779
|
+
if (smartCheckoutResult.sufficient) {
|
|
29780
|
+
const approvalResult = await ($25ac589234c10b67$export$19693ca396db083e)(provider, unsignedTransactions.approvalTransactions);
|
|
29781
|
+
if (approvalResult.type === ($d855a5ba32004345$export$f51b97f3aaf2d5a8).FAILED) return {
|
|
29782
|
+
smartCheckoutResult: smartCheckoutResult,
|
|
29783
|
+
orderId: orderId,
|
|
29784
|
+
status: {
|
|
29785
|
+
type: ($aa144554f9ef124b$export$226b052ecb8ca80).FAILED,
|
|
29786
|
+
transactionHash: approvalResult.transactionHash,
|
|
29787
|
+
reason: approvalResult.reason
|
|
29788
|
+
}
|
|
29789
|
+
};
|
|
29790
|
+
const fulfilmentResult = await ($25ac589234c10b67$export$2161274619257102)(provider, unsignedTransactions.fulfilmentTransactions);
|
|
29791
|
+
if (fulfilmentResult.type === ($d855a5ba32004345$export$f51b97f3aaf2d5a8).FAILED) return {
|
|
29792
|
+
smartCheckoutResult: smartCheckoutResult,
|
|
29793
|
+
orderId: orderId,
|
|
29794
|
+
status: {
|
|
29795
|
+
type: ($aa144554f9ef124b$export$226b052ecb8ca80).FAILED,
|
|
29796
|
+
transactionHash: fulfilmentResult.transactionHash,
|
|
29797
|
+
reason: fulfilmentResult.reason
|
|
29798
|
+
}
|
|
29799
|
+
};
|
|
29800
|
+
return {
|
|
29801
|
+
smartCheckoutResult: smartCheckoutResult,
|
|
29802
|
+
orderId: orderId,
|
|
29803
|
+
status: {
|
|
29804
|
+
type: ($aa144554f9ef124b$export$226b052ecb8ca80).SUCCESS
|
|
29805
|
+
}
|
|
29806
|
+
};
|
|
29807
|
+
}
|
|
29326
29808
|
return {
|
|
29327
|
-
|
|
29328
|
-
|
|
29329
|
-
|
|
29330
|
-
|
|
29809
|
+
smartCheckoutResult: smartCheckoutResult,
|
|
29810
|
+
orderId: orderId
|
|
29811
|
+
};
|
|
29812
|
+
};
|
|
29813
|
+
|
|
29814
|
+
|
|
29815
|
+
|
|
29816
|
+
|
|
29817
|
+
|
|
29818
|
+
|
|
29819
|
+
|
|
29820
|
+
|
|
29821
|
+
|
|
29822
|
+
const $9c3db1bb9c8b69d3$export$70b61ad426ddbe54 = async (config, provider, orderId)=>{
|
|
29823
|
+
let unsignedCancelOrderTransaction;
|
|
29824
|
+
try {
|
|
29825
|
+
const offererAddress = await provider.getSigner().getAddress();
|
|
29826
|
+
const orderbook = await $67fc622a2b913d5f$export$c60ce6c6a92bc2ff(config);
|
|
29827
|
+
const cancelOrderResponse = await orderbook.cancelOrder(orderId, offererAddress);
|
|
29828
|
+
unsignedCancelOrderTransaction = cancelOrderResponse.unsignedCancelOrderTransaction;
|
|
29829
|
+
} catch (err) {
|
|
29830
|
+
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("An error occurred while cancelling the order listing", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).CANCEL_ORDER_LISTING_ERROR, {
|
|
29831
|
+
orderId: orderId,
|
|
29832
|
+
message: err.message
|
|
29833
|
+
});
|
|
29834
|
+
}
|
|
29835
|
+
const result = await ($25ac589234c10b67$export$2161274619257102)(provider, [
|
|
29836
|
+
unsignedCancelOrderTransaction
|
|
29837
|
+
]);
|
|
29838
|
+
if (result.type === ($d855a5ba32004345$export$f51b97f3aaf2d5a8).FAILED) return {
|
|
29839
|
+
orderId: orderId,
|
|
29840
|
+
status: {
|
|
29841
|
+
type: ($1e6b81bbd98b3a91$export$c0189a8c30039654).FAILED,
|
|
29842
|
+
transactionHash: result.transactionHash,
|
|
29843
|
+
reason: result.reason
|
|
29844
|
+
}
|
|
29845
|
+
};
|
|
29846
|
+
return {
|
|
29847
|
+
orderId: orderId,
|
|
29848
|
+
status: {
|
|
29849
|
+
type: ($1e6b81bbd98b3a91$export$c0189a8c30039654).SUCCESS
|
|
29331
29850
|
}
|
|
29332
29851
|
};
|
|
29333
29852
|
};
|
|
@@ -29341,13 +29860,16 @@ const $64863c39386de592$export$7f8e2b98eca5a7f0 = async (config, provider, order
|
|
|
29341
29860
|
|
|
29342
29861
|
|
|
29343
29862
|
|
|
29863
|
+
|
|
29864
|
+
|
|
29865
|
+
|
|
29344
29866
|
const $9085b221b72ac69e$export$af768ccdf17d5c04 = (id, contractAddress, spenderAddress)=>({
|
|
29345
29867
|
type: ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721,
|
|
29346
29868
|
id: id,
|
|
29347
29869
|
contractAddress: contractAddress,
|
|
29348
29870
|
spenderAddress: spenderAddress
|
|
29349
29871
|
});
|
|
29350
|
-
const $9085b221b72ac69e$export$
|
|
29872
|
+
const $9085b221b72ac69e$export$586d02673c66d423 = (buyToken)=>{
|
|
29351
29873
|
if (buyToken.type === ($4b58188d47aafe8d$export$1fc8f52ad1810e52).NATIVE) return {
|
|
29352
29874
|
type: ($4b58188d47aafe8d$export$1fc8f52ad1810e52).NATIVE,
|
|
29353
29875
|
amount: buyToken.amount.toString()
|
|
@@ -29369,7 +29891,7 @@ const $9085b221b72ac69e$export$e761f9e0703de895 = async (config, provider, id, c
|
|
|
29369
29891
|
spenderAddress = seaportContractAddress;
|
|
29370
29892
|
listing = await orderbook.prepareListing({
|
|
29371
29893
|
makerAddress: walletAddress,
|
|
29372
|
-
buy: $9085b221b72ac69e$export$
|
|
29894
|
+
buy: $9085b221b72ac69e$export$586d02673c66d423(buyToken),
|
|
29373
29895
|
sell: {
|
|
29374
29896
|
type: (0, $4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721,
|
|
29375
29897
|
contractAddress: contractAddress,
|
|
@@ -29386,8 +29908,6 @@ const $9085b221b72ac69e$export$e761f9e0703de895 = async (config, provider, id, c
|
|
|
29386
29908
|
const itemRequirements = [
|
|
29387
29909
|
$9085b221b72ac69e$export$af768ccdf17d5c04(id, contractAddress, spenderAddress)
|
|
29388
29910
|
];
|
|
29389
|
-
// eslint-disable-next-line no-console
|
|
29390
|
-
console.log(listing); // TODO: Get order signature, provider.getSigner()._signTypedData to sign
|
|
29391
29911
|
const smartCheckoutResult = await ($0e7419077c373b24$export$9e073f9ada8c81e6)(config, provider, itemRequirements, {
|
|
29392
29912
|
type: ($4b58188d47aafe8d$export$65c64e46348ee3c1).GAS,
|
|
29393
29913
|
gasToken: {
|
|
@@ -29395,14 +29915,55 @@ const $9085b221b72ac69e$export$e761f9e0703de895 = async (config, provider, id, c
|
|
|
29395
29915
|
limit: (ethers.BigNumber).from((constants).estimatedFulfillmentGasGwei)
|
|
29396
29916
|
}
|
|
29397
29917
|
});
|
|
29398
|
-
|
|
29399
|
-
|
|
29918
|
+
if (smartCheckoutResult.sufficient) {
|
|
29919
|
+
const unsignedMessage = ($a7367d01c6e76b1c$export$d62081fac18000c2)(listing.orderHash, listing.orderComponents, listing.actions);
|
|
29920
|
+
if (!unsignedMessage) // For sell it is expected the orderbook will always return an unsigned message
|
|
29921
|
+
// If for some reason it is missing then we cannot proceed with the create listing
|
|
29922
|
+
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("The unsigned message is missing after preparing the listing", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).SIGN_MESSAGE_ERROR, {
|
|
29923
|
+
id: id,
|
|
29924
|
+
collectionAddress: contractAddress
|
|
29925
|
+
});
|
|
29926
|
+
const signedMessage = await ($25ac589234c10b67$export$1d9a7a8a40780de)(provider, unsignedMessage);
|
|
29927
|
+
const unsignedTransactions = await ($a7367d01c6e76b1c$export$b087719c36e0f2dc)(listing.actions);
|
|
29928
|
+
const approvalResult = await ($25ac589234c10b67$export$19693ca396db083e)(provider, unsignedTransactions.approvalTransactions);
|
|
29929
|
+
if (approvalResult.type === ($d855a5ba32004345$export$f51b97f3aaf2d5a8).FAILED) return {
|
|
29930
|
+
id: id,
|
|
29931
|
+
collectionAddress: contractAddress,
|
|
29932
|
+
smartCheckoutResult: smartCheckoutResult,
|
|
29933
|
+
status: {
|
|
29934
|
+
type: ($c2874b006e92b115$export$a9780122aaa0801a).FAILED,
|
|
29935
|
+
transactionHash: approvalResult.transactionHash,
|
|
29936
|
+
reason: approvalResult.reason
|
|
29937
|
+
}
|
|
29938
|
+
};
|
|
29939
|
+
let orderId = "";
|
|
29940
|
+
try {
|
|
29941
|
+
const order = await orderbook.createListing({
|
|
29942
|
+
orderComponents: signedMessage.orderComponents,
|
|
29943
|
+
orderHash: signedMessage.orderHash,
|
|
29944
|
+
orderSignature: signedMessage.signedMessage
|
|
29945
|
+
});
|
|
29946
|
+
orderId = order.result.id;
|
|
29947
|
+
} catch (err) {
|
|
29948
|
+
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("An error occurred while creating the listing", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).CREATE_ORDER_LISTING_ERROR, {
|
|
29949
|
+
message: err.message,
|
|
29950
|
+
id: id,
|
|
29951
|
+
collectionAddress: contractAddress
|
|
29952
|
+
});
|
|
29953
|
+
}
|
|
29954
|
+
return {
|
|
29955
|
+
id: id,
|
|
29956
|
+
collectionAddress: contractAddress,
|
|
29957
|
+
smartCheckoutResult: smartCheckoutResult,
|
|
29958
|
+
status: {
|
|
29959
|
+
type: ($c2874b006e92b115$export$a9780122aaa0801a).SUCCESS,
|
|
29960
|
+
orderId: orderId
|
|
29961
|
+
}
|
|
29962
|
+
};
|
|
29963
|
+
}
|
|
29400
29964
|
return {
|
|
29401
|
-
|
|
29402
|
-
|
|
29403
|
-
type: ($4b58188d47aafe8d$export$537fa3efd10ed435).NATIVE,
|
|
29404
|
-
limit: (ethers.BigNumber).from((constants).estimatedFulfillmentGasGwei)
|
|
29405
|
-
},
|
|
29965
|
+
id: id,
|
|
29966
|
+
collectionAddress: contractAddress,
|
|
29406
29967
|
smartCheckoutResult: smartCheckoutResult
|
|
29407
29968
|
};
|
|
29408
29969
|
};
|
|
@@ -29413,24 +29974,6 @@ const $9085b221b72ac69e$export$e761f9e0703de895 = async (config, provider, id, c
|
|
|
29413
29974
|
|
|
29414
29975
|
|
|
29415
29976
|
|
|
29416
|
-
|
|
29417
|
-
|
|
29418
|
-
async function $0e0060cb42e136d2$export$339cb2be73677b30(config, existingReadOnlyProviders) {
|
|
29419
|
-
if (config.isProduction && existingReadOnlyProviders?.has(($0472f23319457bfb$export$c06e1e7429de6283).ETHEREUM)) return existingReadOnlyProviders;
|
|
29420
|
-
if (existingReadOnlyProviders?.has(($0472f23319457bfb$export$c06e1e7429de6283).SEPOLIA)) return existingReadOnlyProviders;
|
|
29421
|
-
const readOnlyProviders = new Map();
|
|
29422
|
-
const allowedNetworks = await $de192de6ef100f9f$export$3043f6442a9ef563(config, {
|
|
29423
|
-
type: ($a47e48dd2c04791b$export$1f05a55fe0680cc7).ALL
|
|
29424
|
-
});
|
|
29425
|
-
allowedNetworks.networks.forEach((networkInfo)=>{
|
|
29426
|
-
const rpcUrl = config.networkMap.get(networkInfo.chainId)?.rpcUrls[0];
|
|
29427
|
-
const provider = new (providers.JsonRpcProvider)(rpcUrl);
|
|
29428
|
-
readOnlyProviders.set(networkInfo.chainId, provider);
|
|
29429
|
-
});
|
|
29430
|
-
return readOnlyProviders;
|
|
29431
|
-
}
|
|
29432
|
-
|
|
29433
|
-
|
|
29434
29977
|
const $a8cb37a3fc8eb863$var$SANDBOX_CONFIGURATION = {
|
|
29435
29978
|
baseConfig: {
|
|
29436
29979
|
environment: (Environment$1).SANDBOX
|
|
@@ -29569,6 +30112,16 @@ class $a8cb37a3fc8eb863$export$1f60ba4ec72508a0 {
|
|
|
29569
30112
|
await $9085b221b72ac69e$export$e761f9e0703de895(this.config, web3Provider, params.id, params.collectionAddress, params.buyToken);
|
|
29570
30113
|
}
|
|
29571
30114
|
/**
|
|
30115
|
+
* Cancels a sell.
|
|
30116
|
+
* @param {CancelParams} params - The parameters for the cancel.
|
|
30117
|
+
*/ async cancel(params) {
|
|
30118
|
+
if (this.config.isProduction) throw new Error("This endpoint is not currently available.");
|
|
30119
|
+
// eslint-disable-next-line no-console
|
|
30120
|
+
console.warn("This endpoint is currently under construction.");
|
|
30121
|
+
const web3Provider = await $bb88265fe45a0393$export$9e1fd9cc88c637a0(this.config, params.provider);
|
|
30122
|
+
await $9c3db1bb9c8b69d3$export$70b61ad426ddbe54(this.config, web3Provider, params.orderId);
|
|
30123
|
+
}
|
|
30124
|
+
/**
|
|
29572
30125
|
* Determines the transaction requirements to complete a purchase.
|
|
29573
30126
|
* @params {SmartCheckoutParams} params - The parameters for smart checkout.
|
|
29574
30127
|
*/ async smartCheckout(params) {
|
|
@@ -29576,6 +30129,7 @@ class $a8cb37a3fc8eb863$export$1f60ba4ec72508a0 {
|
|
|
29576
30129
|
// eslint-disable-next-line no-console
|
|
29577
30130
|
console.warn("This endpoint is currently under construction.");
|
|
29578
30131
|
const web3Provider = await $bb88265fe45a0393$export$9e1fd9cc88c637a0(this.config, params.provider);
|
|
30132
|
+
// console.log('Smart Checkout Params ::', params);
|
|
29579
30133
|
await $0e7419077c373b24$export$9e073f9ada8c81e6(this.config, web3Provider, params.itemRequirements, params.transactionOrGasAmount);
|
|
29580
30134
|
}
|
|
29581
30135
|
/**
|
|
@@ -29615,7 +30169,7 @@ var checkout_sdk = /*#__PURE__*/Object.freeze({
|
|
|
29615
30169
|
function $parcel$export(e, n, v, s) {
|
|
29616
30170
|
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
29617
30171
|
}
|
|
29618
|
-
const $d663162fd5a0853f$export$38a083d9fb5551ca = "0.
|
|
30172
|
+
const $d663162fd5a0853f$export$38a083d9fb5551ca = "0.0.0";
|
|
29619
30173
|
const $d663162fd5a0853f$export$83bf90b30cdfd29f = ()=>false;
|
|
29620
30174
|
const $d663162fd5a0853f$export$1169f5475725171b = ()=>$d663162fd5a0853f$export$38a083d9fb5551ca;
|
|
29621
30175
|
|
|
@@ -30392,34 +30946,65 @@ const _abi$2 = [
|
|
|
30392
30946
|
},
|
|
30393
30947
|
{
|
|
30394
30948
|
inputs: [],
|
|
30395
|
-
name: "IImmutableERC721MismatchedTransferLengths",
|
|
30949
|
+
name: "IImmutableERC721MismatchedTransferLengths",
|
|
30950
|
+
type: "error",
|
|
30951
|
+
},
|
|
30952
|
+
{
|
|
30953
|
+
inputs: [
|
|
30954
|
+
{
|
|
30955
|
+
internalType: "uint256",
|
|
30956
|
+
name: "tokenId",
|
|
30957
|
+
type: "uint256",
|
|
30958
|
+
},
|
|
30959
|
+
],
|
|
30960
|
+
name: "IImmutableERC721NotOwnerOrOperator",
|
|
30961
|
+
type: "error",
|
|
30962
|
+
},
|
|
30963
|
+
{
|
|
30964
|
+
inputs: [],
|
|
30965
|
+
name: "IImmutableERC721SendingToZerothAddress",
|
|
30966
|
+
type: "error",
|
|
30967
|
+
},
|
|
30968
|
+
{
|
|
30969
|
+
inputs: [
|
|
30970
|
+
{
|
|
30971
|
+
internalType: "uint256",
|
|
30972
|
+
name: "tokenId",
|
|
30973
|
+
type: "uint256",
|
|
30974
|
+
},
|
|
30975
|
+
],
|
|
30976
|
+
name: "IImmutableERC721TokenAlreadyBurned",
|
|
30977
|
+
type: "error",
|
|
30978
|
+
},
|
|
30979
|
+
{
|
|
30980
|
+
inputs: [],
|
|
30981
|
+
name: "InvalidShortString",
|
|
30982
|
+
type: "error",
|
|
30983
|
+
},
|
|
30984
|
+
{
|
|
30985
|
+
inputs: [],
|
|
30986
|
+
name: "InvalidSignature",
|
|
30396
30987
|
type: "error",
|
|
30397
30988
|
},
|
|
30398
30989
|
{
|
|
30399
|
-
inputs: [
|
|
30400
|
-
|
|
30401
|
-
internalType: "uint256",
|
|
30402
|
-
name: "tokenId",
|
|
30403
|
-
type: "uint256",
|
|
30404
|
-
},
|
|
30405
|
-
],
|
|
30406
|
-
name: "IImmutableERC721NotOwnerOrOperator",
|
|
30990
|
+
inputs: [],
|
|
30991
|
+
name: "PermitExpired",
|
|
30407
30992
|
type: "error",
|
|
30408
30993
|
},
|
|
30409
30994
|
{
|
|
30410
30995
|
inputs: [],
|
|
30411
|
-
name: "
|
|
30996
|
+
name: "SignerCannotBeZerothAddress",
|
|
30412
30997
|
type: "error",
|
|
30413
30998
|
},
|
|
30414
30999
|
{
|
|
30415
31000
|
inputs: [
|
|
30416
31001
|
{
|
|
30417
|
-
internalType: "
|
|
30418
|
-
name: "
|
|
30419
|
-
type: "
|
|
31002
|
+
internalType: "string",
|
|
31003
|
+
name: "str",
|
|
31004
|
+
type: "string",
|
|
30420
31005
|
},
|
|
30421
31006
|
],
|
|
30422
|
-
name: "
|
|
31007
|
+
name: "StringTooLong",
|
|
30423
31008
|
type: "error",
|
|
30424
31009
|
},
|
|
30425
31010
|
{
|
|
@@ -30494,6 +31079,12 @@ const _abi$2 = [
|
|
|
30494
31079
|
name: "ApprovalForAll",
|
|
30495
31080
|
type: "event",
|
|
30496
31081
|
},
|
|
31082
|
+
{
|
|
31083
|
+
anonymous: false,
|
|
31084
|
+
inputs: [],
|
|
31085
|
+
name: "EIP712DomainChanged",
|
|
31086
|
+
type: "event",
|
|
31087
|
+
},
|
|
30497
31088
|
{
|
|
30498
31089
|
anonymous: false,
|
|
30499
31090
|
inputs: [
|
|
@@ -30626,6 +31217,19 @@ const _abi$2 = [
|
|
|
30626
31217
|
stateMutability: "view",
|
|
30627
31218
|
type: "function",
|
|
30628
31219
|
},
|
|
31220
|
+
{
|
|
31221
|
+
inputs: [],
|
|
31222
|
+
name: "DOMAIN_SEPARATOR",
|
|
31223
|
+
outputs: [
|
|
31224
|
+
{
|
|
31225
|
+
internalType: "bytes32",
|
|
31226
|
+
name: "",
|
|
31227
|
+
type: "bytes32",
|
|
31228
|
+
},
|
|
31229
|
+
],
|
|
31230
|
+
stateMutability: "view",
|
|
31231
|
+
type: "function",
|
|
31232
|
+
},
|
|
30629
31233
|
{
|
|
30630
31234
|
inputs: [],
|
|
30631
31235
|
name: "MINTER_ROLE",
|
|
@@ -30741,6 +31345,49 @@ const _abi$2 = [
|
|
|
30741
31345
|
stateMutability: "view",
|
|
30742
31346
|
type: "function",
|
|
30743
31347
|
},
|
|
31348
|
+
{
|
|
31349
|
+
inputs: [],
|
|
31350
|
+
name: "eip712Domain",
|
|
31351
|
+
outputs: [
|
|
31352
|
+
{
|
|
31353
|
+
internalType: "bytes1",
|
|
31354
|
+
name: "fields",
|
|
31355
|
+
type: "bytes1",
|
|
31356
|
+
},
|
|
31357
|
+
{
|
|
31358
|
+
internalType: "string",
|
|
31359
|
+
name: "name",
|
|
31360
|
+
type: "string",
|
|
31361
|
+
},
|
|
31362
|
+
{
|
|
31363
|
+
internalType: "string",
|
|
31364
|
+
name: "version",
|
|
31365
|
+
type: "string",
|
|
31366
|
+
},
|
|
31367
|
+
{
|
|
31368
|
+
internalType: "uint256",
|
|
31369
|
+
name: "chainId",
|
|
31370
|
+
type: "uint256",
|
|
31371
|
+
},
|
|
31372
|
+
{
|
|
31373
|
+
internalType: "address",
|
|
31374
|
+
name: "verifyingContract",
|
|
31375
|
+
type: "address",
|
|
31376
|
+
},
|
|
31377
|
+
{
|
|
31378
|
+
internalType: "bytes32",
|
|
31379
|
+
name: "salt",
|
|
31380
|
+
type: "bytes32",
|
|
31381
|
+
},
|
|
31382
|
+
{
|
|
31383
|
+
internalType: "uint256[]",
|
|
31384
|
+
name: "extensions",
|
|
31385
|
+
type: "uint256[]",
|
|
31386
|
+
},
|
|
31387
|
+
],
|
|
31388
|
+
stateMutability: "view",
|
|
31389
|
+
type: "function",
|
|
31390
|
+
},
|
|
30744
31391
|
{
|
|
30745
31392
|
inputs: [
|
|
30746
31393
|
{
|
|
@@ -31032,6 +31679,25 @@ const _abi$2 = [
|
|
|
31032
31679
|
stateMutability: "view",
|
|
31033
31680
|
type: "function",
|
|
31034
31681
|
},
|
|
31682
|
+
{
|
|
31683
|
+
inputs: [
|
|
31684
|
+
{
|
|
31685
|
+
internalType: "uint256",
|
|
31686
|
+
name: "tokenId",
|
|
31687
|
+
type: "uint256",
|
|
31688
|
+
},
|
|
31689
|
+
],
|
|
31690
|
+
name: "nonces",
|
|
31691
|
+
outputs: [
|
|
31692
|
+
{
|
|
31693
|
+
internalType: "uint256",
|
|
31694
|
+
name: "",
|
|
31695
|
+
type: "uint256",
|
|
31696
|
+
},
|
|
31697
|
+
],
|
|
31698
|
+
stateMutability: "view",
|
|
31699
|
+
type: "function",
|
|
31700
|
+
},
|
|
31035
31701
|
{
|
|
31036
31702
|
inputs: [],
|
|
31037
31703
|
name: "operatorAllowlist",
|
|
@@ -31064,6 +31730,34 @@ const _abi$2 = [
|
|
|
31064
31730
|
stateMutability: "view",
|
|
31065
31731
|
type: "function",
|
|
31066
31732
|
},
|
|
31733
|
+
{
|
|
31734
|
+
inputs: [
|
|
31735
|
+
{
|
|
31736
|
+
internalType: "address",
|
|
31737
|
+
name: "spender",
|
|
31738
|
+
type: "address",
|
|
31739
|
+
},
|
|
31740
|
+
{
|
|
31741
|
+
internalType: "uint256",
|
|
31742
|
+
name: "tokenId",
|
|
31743
|
+
type: "uint256",
|
|
31744
|
+
},
|
|
31745
|
+
{
|
|
31746
|
+
internalType: "uint256",
|
|
31747
|
+
name: "deadline",
|
|
31748
|
+
type: "uint256",
|
|
31749
|
+
},
|
|
31750
|
+
{
|
|
31751
|
+
internalType: "bytes",
|
|
31752
|
+
name: "sig",
|
|
31753
|
+
type: "bytes",
|
|
31754
|
+
},
|
|
31755
|
+
],
|
|
31756
|
+
name: "permit",
|
|
31757
|
+
outputs: [],
|
|
31758
|
+
stateMutability: "nonpayable",
|
|
31759
|
+
type: "function",
|
|
31760
|
+
},
|
|
31067
31761
|
{
|
|
31068
31762
|
inputs: [
|
|
31069
31763
|
{
|
|
@@ -31561,7 +32255,7 @@ const _abi$2 = [
|
|
|
31561
32255
|
type: "function",
|
|
31562
32256
|
},
|
|
31563
32257
|
];
|
|
31564
|
-
const _bytecode$2 = "0x608060405260006013553480156200001657600080fd5b50604051620052f1380380620052f18339810160408190526200003991620007cd565b8787878787878787868681818181600662000055838262000960565b50600762000064828262000960565b50506801000000000000000060095550600d62000082838262000960565b50600e62000091828262000960565b50620000a69350600092508b915050620000f1565b620000b2828262000134565b620000bd8362000239565b6016620000cb868262000960565b506015620000da858262000960565b505050505050505050505050505050505062000b74565b6200010882826200025560201b620011e11760201c565b60008281526001602090815260409091206200012f91839062001265620002f5821b17901c565b505050565b6127106001600160601b0382161115620001a85760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002005760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016200019f565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000620002468162000315565b620002518262000324565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000251576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002b13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006200030c836001600160a01b0384166200041d565b90505b92915050565b6200032181336200046f565b50565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801562000370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000396919062000a2c565b620003b45760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b600081815260018301602052604081205462000466575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200030f565b5060006200030f565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200025157620004ae81620004ff60201b6200127a1760201c565b620004c48360206200128c62000512821b17811c565b604051602001620004d792919062000a50565b60408051601f198184030181529082905262461bcd60e51b82526200019f9160040162000ac9565b60606200030f6001600160a01b03831660145b606060006200052383600262000b14565b6200053090600262000b2e565b6001600160401b038111156200054a576200054a620006e8565b6040519080825280601f01601f19166020018201604052801562000575576020820181803683370190505b509050600360fc1b8160008151811062000593576200059362000b44565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620005c557620005c562000b44565b60200101906001600160f81b031916908160001a9053506000620005eb84600262000b14565b620005f890600162000b2e565b90505b60018111156200067a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062000630576200063062000b44565b1a60f81b82828151811062000649576200064962000b44565b60200101906001600160f81b031916908160001a90535060049490941c93620006728162000b5a565b9050620005fb565b5083156200030c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016200019f565b80516001600160a01b0381168114620006e357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200071b57818101518382015260200162000701565b50506000910152565b600082601f8301126200073657600080fd5b81516001600160401b0380821115620007535762000753620006e8565b604051601f8301601f19908116603f011681019082821181831017156200077e576200077e620006e8565b816040528381528660208588010111156200079857600080fd5b620007ab846020830160208901620006fe565b9695505050505050565b80516001600160601b0381168114620006e357600080fd5b600080600080600080600080610100898b031215620007eb57600080fd5b620007f689620006cb565b60208a01519098506001600160401b03808211156200081457600080fd5b620008228c838d0162000724565b985060408b01519150808211156200083957600080fd5b620008478c838d0162000724565b975060608b01519150808211156200085e57600080fd5b6200086c8c838d0162000724565b965060808b01519150808211156200088357600080fd5b50620008928b828c0162000724565b945050620008a360a08a01620006cb565b9250620008b360c08a01620006cb565b9150620008c360e08a01620007b5565b90509295985092959890939650565b600181811c90821680620008e757607f821691505b6020821081036200090857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012f57600081815260208120601f850160051c81016020861015620009375750805b601f850160051c820191505b81811015620009585782815560010162000943565b505050505050565b81516001600160401b038111156200097c576200097c620006e8565b62000994816200098d8454620008d2565b846200090e565b602080601f831160018114620009cc5760008415620009b35750858301515b600019600386901b1c1916600185901b17855562000958565b600085815260208120601f198616915b82811015620009fd57888601518255948401946001909101908401620009dc565b508582101562000a1c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a3f57600080fd5b815180151581146200030c57600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162000a8a816017850160208801620006fe565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162000abd816028840160208801620006fe565b01602801949350505050565b602081526000825180602084015262000aea816040850160208701620006fe565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200030f576200030f62000afe565b808201808211156200030f576200030f62000afe565b634e487b7160e01b600052603260045260246000fd5b60008162000b6c5762000b6c62000afe565b506000190190565b61476d8062000b846000396000f3fe608060405234801561001057600080fd5b50600436106102f05760003560e01c806369e2f0fb1161019d578063a22cb465116100e9578063d547741f116100a2578063e4e18f6d1161007c578063e4e18f6d146106af578063e8a3d485146106c2578063e985e9c5146106ca578063eea98768146106dd57600080fd5b8063d547741f14610676578063e192785914610689578063e4623c1b1461069c57600080fd5b8063a22cb46514610602578063a701281614610615578063b88d4fde14610628578063c87b56dd1461063b578063ca15c8731461064e578063d53913931461066157600080fd5b806391d14854116101565780639e2641a3116101305780639e2641a3146105c15780639f15d700146105d4578063a1448194146105e7578063a217fddf146105fa57600080fd5b806391d1485414610593578063938e3d7b146105a657806395d89b41146105b957600080fd5b806369e2f0fb1461052c5780636c0360eb1461053f57806370a082311461054757806374f16a811461055a578063885e7a081461056d5780639010d07c1461058057600080fd5b80632d2c5a8b1161025c57806342842e0e116102155780634f558e79116101ef5780634f558e79146104e057806355f804b3146104f3578063567e4075146105065780636352211e1461051957600080fd5b806342842e0e146104a757806342966c68146104ba578063439aed34146104cd57600080fd5b80632d2c5a8b146104335780632f2ff15d1461044657806331ae450b1461045957806336568abe1461046e5780633dd1eb611461048157806340c10f191461049457600080fd5b80631f8ebbd1116102ae5780631f8ebbd11461039b578063234af046146103a557806323b872dd146103b8578063248a9ca3146103cb57806329326f29146103ee5780632a55205a1461040157600080fd5b80628ad946146102f557806301ffc9a71461030a57806306fdde0314610332578063081812fc14610347578063095ea7b31461037257806318160ddd14610385575b600080fd5b61030861030336600461391b565b6106f0565b005b61031d61031836600461396b565b6107c6565b60405190151581526020015b60405180910390f35b61033a6107d7565b60405161032991906139d8565b61035a6103553660046139eb565b6107e6565b6040516001600160a01b039091168152602001610329565b610308610380366004613a1b565b610806565b61038d610961565b604051908152602001610329565b600160401b61038d565b6103086103b3366004613be7565b610978565b6103086103c6366004613c2f565b610999565b61038d6103d93660046139eb565b60009081526020819052604090206001015490565b60025461035a906001600160a01b031681565b61041461040f366004613c6b565b6109bb565b604080516001600160a01b039093168352602083019190915201610329565b610308610441366004613c8d565b610a69565b610308610454366004613d49565b610a8a565b610461610aaf565b6040516103299190613d75565b61030861047c366004613d49565b610b5d565b61030861048f366004613dc2565b610bd7565b6103086104a2366004613a1b565b610bfa565b6103086104b5366004613c2f565b610c1c565b6103086104c83660046139eb565b610c37565b6103086104db366004613df4565b610c6e565b61031d6104ee3660046139eb565b610c97565b610308610501366004613e87565b610ca2565b610308610514366004613a1b565b610cb9565b61035a6105273660046139eb565b610cdb565b61030861053a366004613dc2565b610cfb565b61033a610d1e565b61038d610555366004613dc2565b610dac565b610308610568366004613be7565b610dca565b61030861057b366004613ecf565b610dd3565b61035a61058e366004613c6b565b610de8565b61031d6105a1366004613d49565b610e07565b6103086105b4366004613e87565b610e30565b61033a610e47565b6103086105cf366004613be7565b610e51565b6103086105e2366004613a1b565b610e72565b6103086105f5366004613a1b565b610ecc565b61038d600081565b610308610610366004613f07565b610eee565b610308610623366004613f82565b61103f565b610308610636366004613fe6565b61109f565b61033a6106493660046139eb565b6110c8565b61038d61065c3660046139eb565b6110d3565b61038d6a4d494e5445525f524f4c4560a81b81565b610308610684366004613d49565b6110ea565b610308610697366004613c8d565b61110f565b6103086106aa366004614061565b611130565b6103086106bd366004613dc2565b61116e565b61033a611182565b61031d6106d83660046140a2565b61118f565b6103086106eb366004613a1b565b6111bf565b6106fd60208201826140cc565b905061070c60408301836140cc565b90501461072c5760405163359a1bc360e01b815260040160405180910390fd5b60005b61073c60408301836140cc565b90508110156107c2576107b06107556020840184613dc2565b61076260208501856140cc565b8481811061077257610772614115565b90506020020160208101906107879190613dc2565b61079460408601866140cc565b858181106107a4576107a4614115565b90506020020135610c1c565b806107ba81614141565b91505061072f565b5050565b60006107d182611427565b92915050565b60606107e1611432565b905090565b6000600160401b8210156107fd576107d1826114c4565b6107d1826114eb565b81333b1580159061088057506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e919061415a565b155b156108a55760405163f6fa4cbd60e01b81523360048201526024015b60405180910390fd5b6001600160a01b0381163b1580159061092957506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610927919061415a565b155b15610952576040516341b8d58160e11b81526001600160a01b038216600482015260240161089c565b61095c8383611576565b505050565b600060135461096e611596565b6107e19190614177565b6a4d494e5445525f524f4c4560a81b610990816115b2565b6107c2826115bc565b600160401b8110156109b05761095c83838361160b565b61095c83838361163b565b60008281526004602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a305750604080518082019091526003546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610a4f906001600160601b03168761418a565b610a5991906141a1565b91519350909150505b9250929050565b6a4d494e5445525f524f4c4560a81b610a81816115b2565b6107c282611660565b600082815260208190526040902060010154610aa5816115b2565b61095c83836116af565b60606000610abc816110d3565b90506000816001600160401b03811115610ad857610ad8613a45565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50905060005b82811015610b5657610b1a600082610de8565b828281518110610b2c57610b2c614115565b6001600160a01b039092166020928302919091019091015280610b4e81614141565b915050610b07565b5092915050565b6001600160a01b0381163314610bcd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161089c565b6107c282826116d1565b6000610be2816115b2565b6107c26a4d494e5445525f524f4c4560a81b83610a8a565b6a4d494e5445525f524f4c4560a81b610c12816115b2565b61095c83836116f3565b61095c8383836040518060200160405280600081525061109f565b610c42335b8261177a565b610c6257604051630247e3a960e01b81526004810182905260240161089c565b610c6b816117a3565b50565b6a4d494e5445525f524f4c4560a81b610c86816115b2565b610c918484846117f6565b50505050565b60006107d1826118c1565b6000610cad816115b2565b601661095c8382614243565b6a4d494e5445525f524f4c4560a81b610cd1816115b2565b61095c838361191e565b6000600160401b821015610cf2576107d182611928565b6107d182611988565b6000610d06816115b2565b6107c26a4d494e5445525f524f4c4560a81b836110ea565b60168054610d2b906141c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610d57906141c3565b8015610da45780601f10610d7957610100808354040283529160200191610da4565b820191906000526020600020905b815481529060010190602001808311610d8757829003601f168201915b505050505081565b6000610db78261199c565b610dc083611a67565b6107d19190614177565b610c6b81611aed565b6000610dde816115b2565b61095c8383611b79565b6000828152600160205260408120610e009083611c33565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610e3b816115b2565b601561095c8382614243565b60606107e1611c3f565b6a4d494e5445525f524f4c4560a81b610e69816115b2565b6107c282611c4e565b6000610e7d82610cdb565b9050826001600160a01b0316816001600160a01b031614610ec357604051634fefd56160e01b8152600481018390526001600160a01b038216602482015260440161089c565b61095c82610c37565b6a4d494e5445525f524f4c4560a81b610ee4816115b2565b61095c8383611c9d565b81333b15801590610f6857506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610f42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f66919061415a565b155b15610f885760405163f6fa4cbd60e01b815233600482015260240161089c565b6001600160a01b0381163b1580159061100c57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100a919061415a565b155b15611035576040516341b8d58160e11b81526001600160a01b038216600482015260240161089c565b61095c8383611d0b565b6a4d494e5445525f524f4c4560a81b611057816115b2565b60005b848110156110975761108586868381811061107757611077614115565b9050602002013585856117f6565b8061108f81614141565b91505061105a565b505050505050565b600160401b8210156110bc576110b784848484611d15565b610c91565b610c9184848484611d48565b60606107d182611d6d565b60008181526001602052604081206107d190611dd3565b600082815260208190526040902060010154611105816115b2565b61095c83836116d1565b6a4d494e5445525f524f4c4560a81b611127816115b2565b6107c282611ddd565b60005b8181101561095c5761115c83838381811061115057611150614115565b90506020020135610c37565b8061116681614141565b915050611133565b6000611179816115b2565b6107c282611e2c565b60158054610d2b906141c3565b6001600160a01b03808316600090815260126020908152604080832093851683529290529081205460ff16610e00565b6a4d494e5445525f524f4c4560a81b6111d7816115b2565b61095c8383611f21565b6111eb8282610e07565b6107c2576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556112213390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e00836001600160a01b038416611f2b565b60606107d16001600160a01b03831660145b6060600061129b83600261418a565b6112a6906002614177565b6001600160401b038111156112bd576112bd613a45565b6040519080825280601f01601f1916602001820160405280156112e7576020820181803683370190505b509050600360fc1b8160008151811061130257611302614115565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061133157611331614115565b60200101906001600160f81b031916908160001a905350600061135584600261418a565b611360906001614177565b90505b60018111156113d8576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061139457611394614115565b1a60f81b8282815181106113aa576113aa614115565b60200101906001600160f81b031916908160001a90535060049490941c936113d181614302565b9050611363565b508315610e005760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161089c565b60006107d182611f7a565b6060600d8054611441906141c3565b80601f016020809104026020016040519081016040528092919081815260200182805461146d906141c3565b80156114ba5780601f1061148f576101008083540402835291602001916114ba565b820191906000526020600020905b81548152906001019060200180831161149d57829003601f168201915b5050505050905090565b60006114cf82611fba565b506000908152601160205260409020546001600160a01b031690565b60006114f6826118c1565b61155a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a20617070726f76656420717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161089c565b506000908152600a60205260409020546001600160a01b031690565b600160401b81101561158c576107c2828261200a565b6107c2828261211a565b60006115a0612222565b6115a861228c565b6107e19190614319565b610c6b81336122a0565b60005b81518110156107c25760008282815181106115dc576115dc614115565b602002602001015190506115f8816000015182602001516122f9565b508061160381614141565b9150506115bf565b61161433610c3c565b6116305760405162461bcd60e51b815260040161089c9061432c565b61095c83838361233a565b61164433610c3c565b6116305760405162461bcd60e51b815260040161089c90614379565b60005b81518110156107c257600082828151811061168057611680614115565b6020026020010151905061169c8160000151826020015161191e565b50806116a781614141565b915050611663565b6116b982826111e1565b600082815260016020526040902061095c9082611265565b6116db8282612541565b600082815260016020526040902061095c90826125a6565b600160401b811061171a5760405163b73c99f560e01b81526004810182905260240161089c565b600881901c600090815260146020526040902054600160ff83161b1615611757576040516305dcda1160e51b81526004810182905260240161089c565b61176182826125bb565b6013805490600061177183614141565b91905055505050565b6000600160401b821015611799576117928383612716565b90506107d1565b610e008383612775565b600160401b8110156117ed576117b88161283a565b600881901c60009081526014602052604081208054600160ff85161b17905560138054916117e583614302565b919050555050565b610c6b816128bd565b6127106001600160601b03821611156118215760405162461bcd60e51b815260040161089c906143cd565b6001600160a01b0382166118775760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d65746572730000000000604482015260640161089c565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600490529190942093519051909116600160a01b029116179055565b6000600160401b821015611915576000828152600f60205260409020546001600160a01b0316158015906107d15750600882901c600090815260146020526040902054600160ff84161b1615151592915050565b6107d1826128ff565b6107c28282612934565b6000818152600f60205260408120546001600160a01b0316806107d15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161089c565b6000806119948361294e565b509392505050565b60006001600160a01b038216611a0a5760405162461bcd60e51b815260206004820152602d60248201527f4552433732315073693a2062616c616e636520717565727920666f722074686560448201526c207a65726f206164647265737360981b606482015260840161089c565b6000600160401b5b600954811015610b5657611a25816118c1565b15611a5757611a3381610cdb565b6001600160a01b0316846001600160a01b031603611a5757611a5482614141565b91505b611a6081614141565b9050611a12565b60006001600160a01b038216611ad15760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161089c565b506001600160a01b031660009081526010602052604090205490565b60005b81518110156107c2576000828281518110611b0d57611b0d614115565b6020026020010151905060005b816020015151811015611b6457611b52826000015183602001518381518110611b4557611b45614115565b6020026020010151610e72565b80611b5c81614141565b915050611b1a565b50508080611b7190614141565b915050611af0565b6127106001600160601b0382161115611ba45760405162461bcd60e51b815260040161089c906143cd565b6001600160a01b038216611bfa5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640161089c565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000610e0083836129e5565b6060600e8054611441906141c3565b60005b81518110156107c2576000828281518110611c6e57611c6e614115565b60200260200101519050611c8a81600001518260200151612a0f565b5080611c9581614141565b915050611c51565b600160401b8110611cc45760405163b73c99f560e01b81526004810182905260240161089c565b600881901c600090815260146020526040902054600160ff83161b1615611d01576040516305dcda1160e51b81526004810182905260240161089c565b6117618282612a50565b6107c28282612a6a565b611d20335b8361177a565b611d3c5760405162461bcd60e51b815260040161089c9061432c565b610c9184848484612a75565b611d5133611d1a565b611d3c5760405162461bcd60e51b815260040161089c90614379565b6060611d7882611fba565b6000611d82612a99565b90506000815111611da25760405180602001604052806000815250610e00565b80611dac84612aa8565b604051602001611dbd929190614417565b6040516020818303038152906040529392505050565b60006107d1825490565b60005b81518110156107c2576000828281518110611dfd57611dfd614115565b60200260200101519050611e1981600001518260200151611f21565b5080611e2481614141565b915050611de0565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015611e77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9b919061415a565b611eb85760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b6107c28282612b3a565b6000818152600183016020526040812054611f72575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107d1565b5060006107d1565b60006001600160e01b031982166380ac58cd60e01b1480611fab57506001600160e01b03198216635b5e139f60e01b145b806107d157506107d182612cb3565b611fc3816118c1565b610c6b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161089c565b600061201582611928565b9050806001600160a01b0316836001600160a01b0316036120825760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161089c565b336001600160a01b038216148061209e575061209e813361118f565b6121105760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161089c565b61095c8383612cf3565b600061212582610cdb565b9050806001600160a01b0316836001600160a01b0316036121945760405162461bcd60e51b8152602060048201526024808201527f4552433732315073693a20617070726f76616c20746f2063757272656e74206f6044820152633bb732b960e11b606482015260840161089c565b336001600160a01b03821614806121b057506121b0813361118f565b6121105760405162461bcd60e51b815260206004820152603b60248201527f4552433732315073693a20617070726f76652063616c6c6572206973206e6f7460448201527f206f776e6572206e6f7220617070726f76656420666f7220616c6c0000000000606482015260840161089c565b6009546000906701000000000000009082906122429060081c6001614177565b9050815b81811015612286576000818152600c602052604090205461226681612d13565b6122709086614177565b945050808061227e90614141565b915050612246565b50505090565b6000600160401b6009546107e19190614319565b6122aa8282610e07565b6107c2576122b78161127a565b6122c283602061128c565b6040516020016122d3929190614446565b60408051601f198184030181529082905262461bcd60e51b825261089c916004016139d8565b60005b815181101561095c576123288383838151811061231b5761231b614115565b6020026020010151611c9d565b8061233281614141565b9150506122fc565b82823332148015906123b557506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561238f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b3919061415a565b155b156123d55760405163937db65f60e01b815233600482015260240161089c565b6001600160a01b0382163b1580159061245957506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa158015612433573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612457919061415a565b155b156124825760405163f934453160e01b81526001600160a01b038316600482015260240161089c565b6001600160a01b0381163b1580159061250657506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa1580156124e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612504919061415a565b155b1561252f57604051632a67242160e11b81526001600160a01b038216600482015260240161089c565b61253a858585612d32565b5050505050565b61254b8282610e07565b156107c2576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e00836001600160a01b038416612d54565b6001600160a01b0382166126115760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161089c565b61261a816118c1565b156126675760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161089c565b612670816118c1565b156126bd5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161089c565b6001600160a01b038216600081815260106020908152604080832080546001019055848352600f90915280822080546001600160a01b031916841790555183929190600080516020614618833981519152908290a45050565b60008061272283611928565b9050806001600160a01b0316846001600160a01b031614806127495750612749818561118f565b8061276d5750836001600160a01b0316612762846107e6565b6001600160a01b0316145b949350505050565b6000612780826118c1565b6127e45760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a206f70657261746f7220717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161089c565b60006127ef83610cdb565b9050806001600160a01b0316846001600160a01b0316148061282a5750836001600160a01b031661281f846107e6565b6001600160a01b0316145b8061276d575061276d818561118f565b600061284582611928565b905061285082611928565b600083815260116020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552601084528285208054600019019055878552600f90935281842080549091169055519293508492600080516020614618833981519152908390a45050565b60006128c882610cdb565b90506128d5600c83612e47565b60405182906000906001600160a01b03841690600080516020614618833981519152908390a45050565b600881901c6000908152600c6020526040812054600160ff1b60ff84161c161561292b57506000919050565b6107d182612e73565b6107c2828260405180602001604052806000815250612e92565b60008061295a836118c1565b6129bb5760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a206f776e657220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161089c565b6129c483612ed3565b6000818152600860205260409020546001600160a01b031694909350915050565b60008260000182815481106129fc576129fc614115565b9060005260206000200154905092915050565b60005b815181101561095c57612a3e83838381518110612a3157612a31614115565b60200260200101516116f3565b80612a4881614141565b915050612a12565b6107c2828260405180602001604052806000815250612ee0565b6107c2338383612eeb565b600160401b821015612a8d576110b784848484612fb9565b610c9184848484612fec565b606060168054611441906141c3565b60606000612ab583613005565b60010190506000816001600160401b03811115612ad457612ad4613a45565b6040519080825280601f01601f191660200182016040528015612afe576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612b0857509392505050565b6000612b4560095490565b905060008211612ba55760405162461bcd60e51b815260206004820152602560248201527f4552433732315073693a207175616e74697479206d7573742062652067726561604482015264074657220360dc1b606482015260840161089c565b6001600160a01b038316612c075760405162461bcd60e51b815260206004820152602360248201527f4552433732315073693a206d696e7420746f20746865207a65726f206164647260448201526265737360e81b606482015260840161089c565b8160096000828254612c199190614177565b9091555050600081815260086020526040902080546001600160a01b0319166001600160a01b038516179055612c50600582612e47565b600080612c5d8484614177565b90506001600160a01b038516915082826000600080516020614618833981519152600080a4600183015b818114612cad5780836000600080516020614618833981519152600080a4600101612c87565b5061253a565b60006001600160e01b031982166380ac58cd60e01b1480612ce457506001600160e01b03198216635b5e139f60e01b145b806107d157506107d1826130dd565b600160401b811015612d09576107c28282613102565b6107c28282613170565b60005b8115612d2d57600019820190911690600101612d16565b919050565b600160401b811015612d495761095c8383836131a5565b61095c8383836132f7565b60008181526001830160205260408120548015612e3d576000612d78600183614319565b8554909150600090612d8c90600190614319565b9050818114612df1576000866000018281548110612dac57612dac614115565b9060005260206000200154905080876000018481548110612dcf57612dcf614115565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612e0257612e026144bb565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107d1565b60009150506107d1565b600881901c600090815260209290925260409091208054600160ff1b60ff9093169290921c9091179055565b6000612e7e60095490565b821080156107d1575050600160401b111590565b6000612e9d60095490565b9050612ea98484612b3a565b612eb76000858386866134cf565b610c915760405162461bcd60e51b815260040161089c906144d1565b60006107d1600583613606565b61095c8383836136fe565b816001600160a01b0316836001600160a01b031603612f4c5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161089c565b6001600160a01b03838116600081815260126020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612fc484848461233a565b612fd084848484613731565b610c915760405162461bcd60e51b815260040161089c90614526565b612ff784848461233a565b612eb78484846001856134cf565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106130445772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613070576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061308e57662386f26fc10000830492506010015b6305f5e10083106130a6576305f5e100830492506008015b61271083106130ba57612710830492506004015b606483106130cc576064830492506002015b600a83106107d15760010192915050565b60006001600160e01b0319821663152a902d60e11b14806107d157506107d18261382a565b600081815260116020526040902080546001600160a01b0319166001600160a01b038416908117909155819061313782611928565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061313782610cdb565b826001600160a01b03166131b882611928565b6001600160a01b0316146131de5760405162461bcd60e51b815260040161089c90614578565b6001600160a01b0382166132405760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161089c565b826001600160a01b031661325382611928565b6001600160a01b0316146132795760405162461bcd60e51b815260040161089c90614578565b600081815260116020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260108552838620805460001901905590871680865283862080546001019055868652600f909452828520805490921684179091559051849360008051602061461883398151915291a4505050565b6000806133038361294e565b91509150846001600160a01b0316826001600160a01b03161461337d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a207472616e73666572206f6620746f6b656e2074686160448201526b3a1034b9903737ba1037bbb760a11b606482015260840161089c565b6001600160a01b0384166133e35760405162461bcd60e51b815260206004820152602760248201527f4552433732315073693a207472616e7366657220746f20746865207a65726f206044820152666164647265737360c81b606482015260840161089c565b6133ee600084612cf3565b60006133fb846001614177565b600881901c600090815260056020526040902054909150600160ff1b60ff83161c1615801561342b575060095481105b1561346257600081815260086020526040902080546001600160a01b0319166001600160a01b038816179055613462600582612e47565b600084815260086020526040902080546001600160a01b0319166001600160a01b03871617905581841461349b5761349b600585612e47565b83856001600160a01b0316876001600160a01b031660008051602061461883398151915260405160405180910390a4611097565b60006001600160a01b0385163b156135f957506001835b6134f08486614177565b8110156135f357604051630a85bd0160e11b81526001600160a01b0387169063150b7a02906135299033908b90869089906004016145bd565b6020604051808303816000875af1925050508015613564575060408051601f3d908101601f19168201909252613561918101906145fa565b60015b6135c1573d808015613592576040519150601f19603f3d011682016040523d82523d6000602084013e613597565b606091505b5080516000036135b95760405162461bcd60e51b815260040161089c906144d1565b805181602001fd5b8280156135de57506001600160e01b03198116630a85bd0160e11b145b925050806135eb81614141565b9150506134e6565b506135fd565b5060015b95945050505050565b600881901c60008181526020849052604081205490919060ff808516919082181c80156136485761363681613835565b60ff168203600884901b1793506136f5565b600083116136b55760405162461bcd60e51b815260206004820152603460248201527f4269744d6170733a205468652073657420626974206265666f7265207468652060448201527334b73232bc103237b2b9b713ba1032bc34b9ba1760611b606482015260840161089c565b5060001990910160008181526020869052604090205490919080156136f0576136dd81613835565b60ff0360ff16600884901b1793506136f5565b613648565b50505092915050565b613708838361389f565b6137156000848484613731565b61095c5760405162461bcd60e51b815260040161089c90614526565b60006001600160a01b0384163b1561381f57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906137759033908990889088906004016145bd565b6020604051808303816000875af19250505080156137b0575060408051601f3d908101601f191682019092526137ad918101906145fa565b60015b613805573d8080156137de576040519150601f19603f3d011682016040523d82523d6000602084013e6137e3565b606091505b5080516000036135b95760405162461bcd60e51b815260040161089c90614526565b6001600160e01b031916630a85bd0160e11b14905061276d565b506001949350505050565b60006107d1826138a9565b60006040518061012001604052806101008152602001614638610100913960f87e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff61387e856138ce565b02901c8151811061389157613891614115565b016020015160f81c92915050565b6107c282826125bb565b60006001600160e01b03198216635a05180f60e01b14806107d157506107d1826138e6565b60008082116138dc57600080fd5b5060008190031690565b60006001600160e01b03198216637965db0b60e01b14806107d157506301ffc9a760e01b6001600160e01b03198316146107d1565b60006020828403121561392d57600080fd5b81356001600160401b0381111561394357600080fd5b820160608185031215610e0057600080fd5b6001600160e01b031981168114610c6b57600080fd5b60006020828403121561397d57600080fd5b8135610e0081613955565b60005b838110156139a357818101518382015260200161398b565b50506000910152565b600081518084526139c4816020860160208601613988565b601f01601f19169290920160200192915050565b602081526000610e0060208301846139ac565b6000602082840312156139fd57600080fd5b5035919050565b80356001600160a01b0381168114612d2d57600080fd5b60008060408385031215613a2e57600080fd5b613a3783613a04565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613a7d57613a7d613a45565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613aab57613aab613a45565b604052919050565b60006001600160401b03821115613acc57613acc613a45565b5060051b60200190565b6000613ae9613ae484613ab3565b613a83565b8381529050602080820190600585811b850187811115613b0857600080fd5b855b81811015613bdb5780356001600160401b0380821115613b2a5760008081fd5b908801906040828c031215613b3f5760008081fd5b613b47613a5b565b613b5083613a04565b81528683013582811115613b645760008081fd5b8084019350508b601f840112613b7c57600091508182fd5b82359150613b8c613ae483613ab3565b82815291861b8301870191878101908d841115613ba95760008081fd5b938801935b83851015613bc757843582529388019390880190613bae565b828901525087525050938301938301613b0a565b50505050509392505050565b600060208284031215613bf957600080fd5b81356001600160401b03811115613c0f57600080fd5b8201601f81018413613c2057600080fd5b61276d84823560208401613ad6565b600080600060608486031215613c4457600080fd5b613c4d84613a04565b9250613c5b60208501613a04565b9150604084013590509250925092565b60008060408385031215613c7e57600080fd5b50508035926020909101359150565b60006020808385031215613ca057600080fd5b82356001600160401b03811115613cb657600080fd5b8301601f81018513613cc757600080fd5b8035613cd5613ae482613ab3565b81815260069190911b82018301908381019087831115613cf457600080fd5b928401925b82841015613d3e5760408489031215613d125760008081fd5b613d1a613a5b565b613d2385613a04565b81528486013586820152825260409093019290840190613cf9565b979650505050505050565b60008060408385031215613d5c57600080fd5b82359150613d6c60208401613a04565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015613db65783516001600160a01b031683529284019291840191600101613d91565b50909695505050505050565b600060208284031215613dd457600080fd5b610e0082613a04565b80356001600160601b0381168114612d2d57600080fd5b600080600060608486031215613e0957600080fd5b83359250613e1960208501613a04565b9150613e2760408501613ddd565b90509250925092565b60006001600160401b03831115613e4957613e49613a45565b613e5c601f8401601f1916602001613a83565b9050828152838383011115613e7057600080fd5b828260208301376000602084830101529392505050565b600060208284031215613e9957600080fd5b81356001600160401b03811115613eaf57600080fd5b8201601f81018413613ec057600080fd5b61276d84823560208401613e30565b60008060408385031215613ee257600080fd5b613eeb83613a04565b9150613d6c60208401613ddd565b8015158114610c6b57600080fd5b60008060408385031215613f1a57600080fd5b613f2383613a04565b91506020830135613f3381613ef9565b809150509250929050565b60008083601f840112613f5057600080fd5b5081356001600160401b03811115613f6757600080fd5b6020830191508360208260051b8501011115610a6257600080fd5b60008060008060608587031215613f9857600080fd5b84356001600160401b03811115613fae57600080fd5b613fba87828801613f3e565b9095509350613fcd905060208601613a04565b9150613fdb60408601613ddd565b905092959194509250565b60008060008060808587031215613ffc57600080fd5b61400585613a04565b935061401360208601613a04565b92506040850135915060608501356001600160401b0381111561403557600080fd5b8501601f8101871361404657600080fd5b61405587823560208401613e30565b91505092959194509250565b6000806020838503121561407457600080fd5b82356001600160401b0381111561408a57600080fd5b61409685828601613f3e565b90969095509350505050565b600080604083850312156140b557600080fd5b6140be83613a04565b9150613d6c60208401613a04565b6000808335601e198436030181126140e357600080fd5b8301803591506001600160401b038211156140fd57600080fd5b6020019150600581901b3603821315610a6257600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016141535761415361412b565b5060010190565b60006020828403121561416c57600080fd5b8151610e0081613ef9565b808201808211156107d1576107d161412b565b80820281158282048414176107d1576107d161412b565b6000826141be57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806141d757607f821691505b6020821081036141f757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561095c57600081815260208120601f850160051c810160208610156142245750805b601f850160051c820191505b8181101561109757828155600101614230565b81516001600160401b0381111561425c5761425c613a45565b6142708161426a84546141c3565b846141fd565b602080601f8311600181146142a5576000841561428d5750858301515b600019600386901b1c1916600185901b178555611097565b600085815260208120601f198616915b828110156142d4578886015182559484019460019091019084016142b5565b50858210156142f25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000816143115761431161412b565b506000190190565b818103818111156107d1576107d161412b565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526034908201527f4552433732315073693a207472616e736665722063616c6c6572206973206e6f6040820152731d081bdddb995c881b9bdc88185c1c1c9bdd995960621b606082015260800190565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60008351614429818460208801613988565b83519083019061443d818360208801613988565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161447e816017850160208801613988565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516144af816028840160208801613988565b01602801949350505050565b634e487b7160e01b600052603160045260246000fd5b60208082526035908201527f4552433732315073693a207472616e7366657220746f206e6f6e20455243373260408201527418a932b1b2b4bb32b91034b6b83632b6b2b73a32b960591b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906145f0908301846139ac565b9695505050505050565b60006020828403121561460c57600080fd5b8151610e008161395556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0001020903110a19042112290b311a3905412245134d2a550c5d32651b6d3a7506264262237d468514804e8d2b95569d0d495ea533a966b11c886eb93bc176c9071727374353637324837e9b47af86c7155181ad4fd18ed32c9096db57d59ee30e2e4a6a5f92a6be3498aae067ddb2eb1d5989b56fd7baf33ca0c2ee77e5caf7ff0810182028303840444c545c646c7425617c847f8c949c48a4a8b087b8c0c816365272829aaec650acd0d28fdad4e22d6991bd97dfdcea58b4d6f29fede4f6fe0f1f2f3f4b5b6b607b8b93a3a7b7bf357199c5abcfd9e168bcdee9b3f1ecf5fd1e3e5a7a8aa2b670c4ced8bbe8f0f4fc3d79a1c3cde7effb78cce6facbf9f8a264697066735822122069f1e7de30c125031cf14dee918b767ccf0b99363cb74ee4a00c68cea975db1b64736f6c63430008110033";
|
|
32258
|
+
const _bytecode$2 = "0x61016060405260006013553480156200001757600080fd5b5060405162005dfc38038062005dfc8339810160408190526200003a91620006cb565b8787878787878787868681604051806040016040528060018152602001603160f81b81525083838181838381600690816200007691906200085e565b5060076200008582826200085e565b50506801000000000000000060095550600d620000a383826200085e565b50600e620000b282826200085e565b5050505050620000d2601583620001e160201b620012111790919060201c565b61012052620000ef816016620001e1602090811b6200121117901c565b61014052815160208084019190912060e052815190820120610100524660a0526200017d60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0525062000196905060008962000231565b620001a2828262000274565b620001ad8362000379565b6019620001bb86826200085e565b506018620001ca85826200085e565b5050505050505050505050505050505050620009a8565b60006020835110156200020157620001f98362000472565b90506200022b565b826200021883620004b560201b620012421760201c565b906200022590826200085e565b5060ff90505b92915050565b620002488282620004b860201b620012451760201c565b60008281526001602090815260409091206200026f918390620012c962000559821b17901c565b505050565b6127106001600160601b0382161115620002e85760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620003405760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401620002df565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015620003c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003eb91906200092a565b620004095760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080829050601f81511115620004a0578260405163305a27a960e01b8152600401620002df91906200094e565b8051620004ad8262000983565b179392505050565b90565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000555576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620005143390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000570836001600160a01b03841662000577565b9392505050565b6000818152600183016020526040812054620005c0575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200022b565b5060006200022b565b80516001600160a01b0381168114620005e157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101562000619578181015183820152602001620005ff565b50506000910152565b600082601f8301126200063457600080fd5b81516001600160401b0380821115620006515762000651620005e6565b604051601f8301601f19908116603f011681019082821181831017156200067c576200067c620005e6565b816040528381528660208588010111156200069657600080fd5b620006a9846020830160208901620005fc565b9695505050505050565b80516001600160601b0381168114620005e157600080fd5b600080600080600080600080610100898b031215620006e957600080fd5b620006f489620005c9565b60208a01519098506001600160401b03808211156200071257600080fd5b620007208c838d0162000622565b985060408b01519150808211156200073757600080fd5b620007458c838d0162000622565b975060608b01519150808211156200075c57600080fd5b6200076a8c838d0162000622565b965060808b01519150808211156200078157600080fd5b50620007908b828c0162000622565b945050620007a160a08a01620005c9565b9250620007b160c08a01620005c9565b9150620007c160e08a01620006b3565b90509295985092959890939650565b600181811c90821680620007e557607f821691505b6020821081036200080657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026f57600081815260208120601f850160051c81016020861015620008355750805b601f850160051c820191505b81811015620008565782815560010162000841565b505050505050565b81516001600160401b038111156200087a576200087a620005e6565b62000892816200088b8454620007d0565b846200080c565b602080601f831160018114620008ca5760008415620008b15750858301515b600019600386901b1c1916600185901b17855562000856565b600085815260208120601f198616915b82811015620008fb57888601518255948401946001909101908401620008da565b50858210156200091a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200093d57600080fd5b815180151581146200057057600080fd5b60208152600082518060208401526200096f816040850160208701620005fc565b601f01601f19169190910160400192915050565b80516020808301519190811015620008065760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516153f962000a036000396000610db301526000610d88015260006118740152600061184c015260006117a7015260006117d1015260006117fb01526153f96000f3fe608060405234801561001057600080fd5b506004361061035c5760003560e01c806369e2f0fb116101d3578063a217fddf11610104578063d547741f116100a2578063e4e18f6d1161007c578063e4e18f6d14610771578063e8a3d48514610784578063e985e9c51461078c578063eea987681461079f57600080fd5b8063d547741f14610738578063e19278591461074b578063e4623c1b1461075e57600080fd5b8063b88d4fde116100de578063b88d4fde146106ea578063c87b56dd146106fd578063ca15c87314610710578063d53913931461072357600080fd5b8063a217fddf146106bc578063a22cb465146106c4578063a7012816146106d757600080fd5b80639010d07c1161017157806395d89b411161014b57806395d89b411461067b5780639e2641a3146106835780639f15d70014610696578063a1448194146106a957600080fd5b80639010d07c1461064257806391d1485414610655578063938e3d7b1461066857600080fd5b8063745a41bc116101ad578063745a41bc146105ee57806374f16a811461060157806384b0196e14610614578063885e7a081461062f57600080fd5b806369e2f0fb146105c05780636c0360eb146105d357806370a08231146105db57600080fd5b80632d2c5a8b116102ad57806342842e0e1161024b5780634f558e79116102255780634f558e791461057457806355f804b314610587578063567e40751461059a5780636352211e146105ad57600080fd5b806342842e0e1461053b57806342966c681461054e578063439aed341461056157600080fd5b80633644e515116102875780633644e515146104fa57806336568abe146105025780633dd1eb611461051557806340c10f191461052857600080fd5b80632d2c5a8b146104bf5780632f2ff15d146104d257806331ae450b146104e557600080fd5b806318160ddd1161031a57806323b872dd116102f457806323b872dd14610444578063248a9ca31461045757806329326f291461047a5780632a55205a1461048d57600080fd5b806318160ddd1461041f5780631f8ebbd114610427578063234af0461461043157600080fd5b80628ad9461461036157806301ffc9a71461037657806306fdde031461039e578063081812fc146103b3578063095ea7b3146103de578063141a468c146103f1575b600080fd5b61037461036f36600461444e565b6107b2565b005b61038961038436600461449e565b610888565b60405190151581526020015b60405180910390f35b6103a6610899565b604051610395919061450b565b6103c66103c136600461451e565b6108a8565b6040516001600160a01b039091168152602001610395565b6103746103ec36600461454e565b6108c8565b6104116103ff36600461451e565b60009081526017602052604090205490565b604051908152602001610395565b6104116108e8565b600160401b610411565b61037461043f36600461471a565b6108ff565b610374610452366004614762565b610920565b61041161046536600461451e565b60009081526020819052604090206001015490565b6002546103c6906001600160a01b031681565b6104a061049b36600461479e565b610947565b604080516001600160a01b039093168352602083019190915201610395565b6103746104cd3660046147c0565b6109f5565b6103746104e036600461487c565b610a16565b6104ed610a3b565b60405161039591906148a8565b610411610ae9565b61037461051036600461487c565b610af3565b6103746105233660046148f5565b610b72565b61037461053636600461454e565b610b95565b610374610549366004614762565b610bb7565b61037461055c36600461451e565b610bd2565b61037461056f366004614927565b610c09565b61038961058236600461451e565b610c32565b6103746105953660046149ba565b610c3d565b6103746105a836600461454e565b610c54565b6103c66105bb36600461451e565b610c76565b6103746105ce3660046148f5565b610c96565b6103a6610cb9565b6104116105e93660046148f5565b610d47565b6103746105fc366004614a22565b610d65565b61037461060f36600461471a565b610d71565b61061c610d7a565b6040516103959796959493929190614a82565b61037461063d366004614b18565b610e03565b6103c661065036600461479e565b610e18565b61038961066336600461487c565b610e37565b6103746106763660046149ba565b610e60565b6103a6610e77565b61037461069136600461471a565b610e81565b6103746106a436600461454e565b610ea2565b6103746106b736600461454e565b610efc565b610411600081565b6103746106d2366004614b50565b610f1e565b6103746106e5366004614bcb565b61106f565b6103746106f8366004614c2f565b6110cf565b6103a661070b36600461451e565b6110f8565b61041161071e36600461451e565b611103565b6104116a4d494e5445525f524f4c4560a81b81565b61037461074636600461487c565b61111a565b6103746107593660046147c0565b61113f565b61037461076c366004614c7e565b611160565b61037461077f3660046148f5565b61119e565b6103a66111b2565b61038961079a366004614cbf565b6111bf565b6103746107ad36600461454e565b6111ef565b6107bf6020820182614ce9565b90506107ce6040830183614ce9565b9050146107ee5760405163359a1bc360e01b815260040160405180910390fd5b60005b6107fe6040830183614ce9565b90508110156108845761087261081760208401846148f5565b6108246020850185614ce9565b8481811061083457610834614d32565b905060200201602081019061084991906148f5565b6108566040860186614ce9565b8581811061086657610866614d32565b90506020020135610bb7565b8061087c81614d5e565b9150506107f1565b5050565b6000610893826112de565b92915050565b60606108a3611303565b905090565b6000600160401b8210156108bf5761089382611395565b610893826113bc565b600160401b8110156108de576108848282611447565b6108848282611557565b60006013546108f561165f565b6108a39190614d77565b6a4d494e5445525f524f4c4560a81b6109178161167b565b61088482611685565b600160401b81101561093c576109378383836116d4565b505050565b610937838383611704565b60008281526004602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b03169282019290925282916109bc5750604080518082019091526003546001600160a01b0381168252600160a01b90046001600160601b031660208201525b6020810151600090612710906109db906001600160601b031687614d8a565b6109e59190614da1565b91519350909150505b9250929050565b6a4d494e5445525f524f4c4560a81b610a0d8161167b565b61088482611729565b600082815260208190526040902060010154610a318161167b565b6109378383611778565b60606000610a4881611103565b90506000816001600160401b03811115610a6457610a64614578565b604051908082528060200260200182016040528015610a8d578160200160208202803683370190505b50905060005b82811015610ae257610aa6600082610e18565b828281518110610ab857610ab8614d32565b6001600160a01b039092166020928302919091019091015280610ada81614d5e565b915050610a93565b5092915050565b60006108a361179a565b6001600160a01b0381163314610b685760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61088482826118c5565b6000610b7d8161167b565b6108846a4d494e5445525f524f4c4560a81b83610a16565b6a4d494e5445525f524f4c4560a81b610bad8161167b565b61093783836118e7565b610937838383604051806020016040528060008152506110cf565b610bdd335b8261196e565b610bfd57604051630247e3a960e01b815260048101829052602401610b5f565b610c0681611990565b50565b6a4d494e5445525f524f4c4560a81b610c218161167b565b610c2c8484846119e3565b50505050565b600061089382611aae565b6000610c488161167b565b60196109378382614e43565b6a4d494e5445525f524f4c4560a81b610c6c8161167b565b6109378383611b0b565b6000600160401b821015610c8d5761089382611b15565b61089382611b75565b6000610ca18161167b565b6108846a4d494e5445525f524f4c4560a81b8361111a565b60198054610cc690614dc3565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf290614dc3565b8015610d3f5780601f10610d1457610100808354040283529160200191610d3f565b820191906000526020600020905b815481529060010190602001808311610d2257829003601f168201915b505050505081565b6000610d5282611b89565b610d5b83611c54565b6108939190614d77565b610c2c84848484611cda565b610c0681611dc3565b600060608082808083610dae7f00000000000000000000000000000000000000000000000000000000000000006015611e4f565b610dd97f00000000000000000000000000000000000000000000000000000000000000006016611e4f565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610e0e8161167b565b6109378383611ef3565b6000828152600160205260408120610e309083611fad565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610e6b8161167b565b60186109378382614e43565b60606108a3611fb9565b6a4d494e5445525f524f4c4560a81b610e998161167b565b61088482611fc8565b6000610ead82610c76565b9050826001600160a01b0316816001600160a01b031614610ef357604051634fefd56160e01b8152600481018390526001600160a01b0382166024820152604401610b5f565b61093782610bd2565b6a4d494e5445525f524f4c4560a81b610f148161167b565b6109378383612017565b81333b15801590610f9857506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f969190614f02565b155b15610fb85760405163f6fa4cbd60e01b8152336004820152602401610b5f565b6001600160a01b0381163b1580159061103c57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190614f02565b155b15611065576040516341b8d58160e11b81526001600160a01b0382166004820152602401610b5f565b6109378383612085565b6a4d494e5445525f524f4c4560a81b6110878161167b565b60005b848110156110c7576110b58686838181106110a7576110a7614d32565b9050602002013585856119e3565b806110bf81614d5e565b91505061108a565b505050505050565b600160401b8210156110ec576110e78484848461208f565b610c2c565b610c2c848484846120c2565b6060610893826120e7565b60008181526001602052604081206108939061214d565b6000828152602081905260409020600101546111358161167b565b61093783836118c5565b6a4d494e5445525f524f4c4560a81b6111578161167b565b61088482612157565b60005b818110156109375761118c83838381811061118057611180614d32565b90506020020135610bd2565b8061119681614d5e565b915050611163565b60006111a98161167b565b610884826121a6565b60188054610cc690614dc3565b6001600160a01b03808316600090815260126020908152604080832093851683529290529081205460ff16610e30565b6a4d494e5445525f524f4c4560a81b6112078161167b565b610937838361229b565b600060208351101561122d57611226836122a5565b9050610893565b816112388482614e43565b5060ff9050610893565b90565b61124f8282610e37565b610884576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556112853390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e30836001600160a01b0384166122e3565b60006001600160e01b03198216635604e22560e01b1480610893575061089382612332565b6060600d805461131290614dc3565b80601f016020809104026020016040519081016040528092919081815260200182805461133e90614dc3565b801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b5050505050905090565b60006113a08261233d565b506000908152601160205260409020546001600160a01b031690565b60006113c782611aae565b61142b5760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a20617070726f76656420717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610b5f565b506000908152600a60205260409020546001600160a01b031690565b600061145282611b15565b9050806001600160a01b0316836001600160a01b0316036114bf5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610b5f565b336001600160a01b03821614806114db57506114db81336111bf565b61154d5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610b5f565b610937838361238d565b600061156282610c76565b9050806001600160a01b0316836001600160a01b0316036115d15760405162461bcd60e51b8152602060048201526024808201527f4552433732315073693a20617070726f76616c20746f2063757272656e74206f6044820152633bb732b960e11b6064820152608401610b5f565b336001600160a01b03821614806115ed57506115ed81336111bf565b61154d5760405162461bcd60e51b815260206004820152603b60248201527f4552433732315073693a20617070726f76652063616c6c6572206973206e6f7460448201527f206f776e6572206e6f7220617070726f76656420666f7220616c6c00000000006064820152608401610b5f565b60006116696124de565b611671612548565b6108a39190614f1f565b610c06813361255c565b60005b81518110156108845760008282815181106116a5576116a5614d32565b602002602001015190506116c1816000015182602001516125b5565b50806116cc81614d5e565b915050611688565b6116dd33610bd7565b6116f95760405162461bcd60e51b8152600401610b5f90614f32565b6109378383836125f6565b61170d33610bd7565b6116f95760405162461bcd60e51b8152600401610b5f90614f7f565b60005b815181101561088457600082828151811061174957611749614d32565b6020026020010151905061176581600001518260200151611b0b565b508061177081614d5e565b91505061172c565b6117828282611245565b600082815260016020526040902061093790826112c9565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156117f357507f000000000000000000000000000000000000000000000000000000000000000046145b1561181d57507f000000000000000000000000000000000000000000000000000000000000000090565b6108a3604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6118cf82826127fd565b60008281526001602052604090206109379082612862565b600160401b811061190e5760405163b73c99f560e01b815260048101829052602401610b5f565b600881901c600090815260146020526040902054600160ff83161b161561194b576040516305dcda1160e51b815260048101829052602401610b5f565b6119558282612877565b6013805490600061196583614d5e565b91905055505050565b6000600160401b8210156119865761122683836129d2565b610e308383612a31565b600160401b8110156119da576119a581612af6565b600881901c60009081526014602052604081208054600160ff85161b17905560138054916119d283614fd3565b919050555050565b610c0681612b79565b6127106001600160601b0382161115611a0e5760405162461bcd60e51b8152600401610b5f90614fea565b6001600160a01b038216611a645760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610b5f565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600490529190942093519051909116600160a01b029116179055565b6000600160401b821015611b02576000828152600f60205260409020546001600160a01b0316158015906108935750600882901c600090815260146020526040902054600160ff84161b1615151592915050565b61089382612bbb565b6108848282612bf0565b6000818152600f60205260408120546001600160a01b0316806108935760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610b5f565b600080611b8183612c0a565b509392505050565b60006001600160a01b038216611bf75760405162461bcd60e51b815260206004820152602d60248201527f4552433732315073693a2062616c616e636520717565727920666f722074686560448201526c207a65726f206164647265737360981b6064820152608401610b5f565b6000600160401b5b600954811015610ae257611c1281611aae565b15611c4457611c2081610c76565b6001600160a01b0316846001600160a01b031603611c4457611c4182614d5e565b91505b611c4d81614d5e565b9050611bff565b60006001600160a01b038216611cbe5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610b5f565b506001600160a01b031660009081526010602052604090205490565b42821015611cfb5760405163068568f360e21b815260040160405180910390fd5b6000611d08858585612ca1565b9050611d1d611d1685610c76565b8284612d7a565b15611d3257611d2c858561238d565b50610c2c565b60008251604003611d7957611d7282611d4e8560006020612e84565b611d5790615034565b611d648660206040612e84565b611d6d90615034565b612f91565b9050611da5565b8251604103611d8c57611d728284612fae565b604051638baa579f60e01b815260040160405180910390fd5b611daf8186612fca565b15611d8c57611dbe868661238d565b6110c7565b60005b8151811015610884576000828281518110611de357611de3614d32565b6020026020010151905060005b816020015151811015611e3a57611e28826000015183602001518381518110611e1b57611e1b614d32565b6020026020010151610ea2565b80611e3281614d5e565b915050611df0565b50508080611e4790614d5e565b915050611dc6565b606060ff8314611e625761122683612fe9565b818054611e6e90614dc3565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9a90614dc3565b8015611ee75780601f10611ebc57610100808354040283529160200191611ee7565b820191906000526020600020905b815481529060010190602001808311611eca57829003601f168201915b50505050509050610893565b6127106001600160601b0382161115611f1e5760405162461bcd60e51b8152600401610b5f90614fea565b6001600160a01b038216611f745760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610b5f565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000610e308383613028565b6060600e805461131290614dc3565b60005b8151811015610884576000828281518110611fe857611fe8614d32565b6020026020010151905061200481600001518260200151613052565b508061200f81614d5e565b915050611fcb565b600160401b811061203e5760405163b73c99f560e01b815260048101829052602401610b5f565b600881901c600090815260146020526040902054600160ff83161b161561207b576040516305dcda1160e51b815260048101829052602401610b5f565b6119558282613093565b61088482826130ad565b61209a335b8361196e565b6120b65760405162461bcd60e51b8152600401610b5f90614f32565b610c2c848484846130b8565b6120cb33612094565b6120b65760405162461bcd60e51b8152600401610b5f90614f7f565b60606120f28261233d565b60006120fc6130dc565b9050600081511161211c5760405180602001604052806000815250610e30565b80612126846130eb565b604051602001612137929190615058565b6040516020818303038152906040529392505050565b6000610893825490565b60005b815181101561088457600082828151811061217757612177614d32565b602002602001015190506121938160000151826020015161229b565b508061219e81614d5e565b91505061215a565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156121f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122159190614f02565b6122325760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b610884828261317d565b600080829050601f815111156122d0578260405163305a27a960e01b8152600401610b5f919061450b565b80516122db82615034565b179392505050565b600081815260018301602052604081205461232a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610893565b506000610893565b6000610893826132f6565b61234681611aae565b610c065760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610b5f565b81333b1580159061240757506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156123e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124059190614f02565b155b156124275760405163f6fa4cbd60e01b8152336004820152602401610b5f565b6001600160a01b0381163b158015906124ab57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015612485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a99190614f02565b155b156124d4576040516341b8d58160e11b81526001600160a01b0382166004820152602401610b5f565b6109378383613336565b6009546000906701000000000000009082906124fe9060081c6001614d77565b9050815b81811015612542576000818152600c602052604090205461252281613356565b61252c9086614d77565b945050808061253a90614d5e565b915050612502565b50505090565b6000600160401b6009546108a39190614f1f565b6125668282610e37565b6108845761257381613375565b61257e836020613387565b60405160200161258f929190615087565b60408051601f198184030181529082905262461bcd60e51b8252610b5f9160040161450b565b60005b8151811015610937576125e4838383815181106125d7576125d7614d32565b6020026020010151612017565b806125ee81614d5e565b9150506125b8565b828233321480159061267157506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561264b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266f9190614f02565b155b156126915760405163937db65f60e01b8152336004820152602401610b5f565b6001600160a01b0382163b1580159061271557506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa1580156126ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127139190614f02565b155b1561273e5760405163f934453160e01b81526001600160a01b0383166004820152602401610b5f565b6001600160a01b0381163b158015906127c257506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa15801561279c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c09190614f02565b155b156127eb57604051632a67242160e11b81526001600160a01b0382166004820152602401610b5f565b6127f6858585613522565b5050505050565b6128078282610e37565b15610884576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e30836001600160a01b03841661354c565b6001600160a01b0382166128cd5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610b5f565b6128d681611aae565b156129235760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610b5f565b61292c81611aae565b156129795760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610b5f565b6001600160a01b038216600081815260106020908152604080832080546001019055848352600f90915280822080546001600160a01b0319168417905551839291906000805160206152a4833981519152908290a45050565b6000806129de83611b15565b9050806001600160a01b0316846001600160a01b03161480612a055750612a0581856111bf565b80612a295750836001600160a01b0316612a1e846108a8565b6001600160a01b0316145b949350505050565b6000612a3c82611aae565b612aa05760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a206f70657261746f7220717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610b5f565b6000612aab83610c76565b9050806001600160a01b0316846001600160a01b03161480612ae65750836001600160a01b0316612adb846108a8565b6001600160a01b0316145b80612a295750612a2981856111bf565b6000612b0182611b15565b9050612b0c82611b15565b600083815260116020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552601084528285208054600019019055878552600f909352818420805490911690555192935084926000805160206152a4833981519152908390a45050565b6000612b8482610c76565b9050612b91600c8361363f565b60405182906000906001600160a01b038416906000805160206152a4833981519152908390a45050565b600881901c6000908152600c6020526040812054600160ff1b60ff84161c1615612be757506000919050565b6108938261366b565b61088482826040518060200160405280600081525061368a565b600080612c1683611aae565b612c775760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a206f776e657220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b5f565b612c80836136cb565b6000818152600860205260409020546001600160a01b031694909350915050565b6000612a29604051602001612d0f90660a0cae4dad2e8560cb1b81527f61646472657373207370656e6465722c75696e7432353620746f6b656e49642c60078201527f75696e74323536206e6f6e63652c75696e7432353620646561646c696e652900602782015260460190565b60408051808303601f19018152828252805160209182012060008881526017835283902054918401526001600160a01b0388169183019190915260608201869052608082015260a0810184905260c001604051602081830303815290604052805190602001206136d8565b6000806000856001600160a01b0316631626ba7e60e01b8686604051602401612da49291906150fc565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612de29190615115565b600060405180830381855afa9150503d8060008114612e1d576040519150601f19603f3d011682016040523d82523d6000602084013e612e22565b606091505b5091509150818015612e35575080516020145b15612e7857600081806020019051810190612e509190615131565b90506374eca2c160e11b6001600160e01b0319821601612e765760019350505050610e30565b505b50600095945050505050565b606081612e9281601f614d77565b1015612ed15760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610b5f565b612edb8284614d77565b84511015612f1f5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610b5f565b606082158015612f3e5760405191506000825260208201604052612f88565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612f77578051835260209283019201612f5f565b5050858452601f01601f1916604052505b50949350505050565b6000806000612fa1868686613705565b91509150612f888161373e565b6000806000612fbd8585613888565b91509150611b818161373e565b60006001600160a01b03831615801590610e305750610e30838361196e565b60606000612ff6836138ca565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600082600001828154811061303f5761303f614d32565b9060005260206000200154905092915050565b60005b8151811015610937576130818383838151811061307457613074614d32565b60200260200101516118e7565b8061308b81614d5e565b915050613055565b6108848282604051806020016040528060008152506138f2565b6108843383836138fd565b600160401b8210156130d0576110e7848484846139cb565b610c2c848484846139fe565b60606019805461131290614dc3565b606060006130f883613a17565b60010190506000816001600160401b0381111561311757613117614578565b6040519080825280601f01601f191660200182016040528015613141576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461314b57509392505050565b600061318860095490565b9050600082116131e85760405162461bcd60e51b815260206004820152602560248201527f4552433732315073693a207175616e74697479206d7573742062652067726561604482015264074657220360dc1b6064820152608401610b5f565b6001600160a01b03831661324a5760405162461bcd60e51b815260206004820152602360248201527f4552433732315073693a206d696e7420746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b5f565b816009600082825461325c9190614d77565b9091555050600081815260086020526040902080546001600160a01b0319166001600160a01b03851617905561329360058261363f565b6000806132a08484614d77565b90506001600160a01b0385169150828260006000805160206152a4833981519152600080a4600183015b8181146132f057808360006000805160206152a4833981519152600080a46001016132ca565b506127f6565b60006001600160e01b031982166380ac58cd60e01b148061332757506001600160e01b03198216635b5e139f60e01b145b80610893575061089382613aef565b600160401b81101561334c576108848282613b2f565b6108848282613b9d565b60005b811561337057600019820190911690600101613359565b919050565b60606108936001600160a01b03831660145b60606000613396836002614d8a565b6133a1906002614d77565b6001600160401b038111156133b8576133b8614578565b6040519080825280601f01601f1916602001820160405280156133e2576020820181803683370190505b509050600360fc1b816000815181106133fd576133fd614d32565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061342c5761342c614d32565b60200101906001600160f81b031916908160001a9053506000613450846002614d8a565b61345b906001614d77565b90505b60018111156134d3576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061348f5761348f614d32565b1a60f81b8282815181106134a5576134a5614d32565b60200101906001600160f81b031916908160001a90535060049490941c936134cc81614fd3565b905061345e565b508315610e305760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610b5f565b600081815260176020526040812080549161353c83614d5e565b9190505550610937838383613bd2565b60008181526001830160205260408120548015613635576000613570600183614f1f565b855490915060009061358490600190614f1f565b90508181146135e95760008660000182815481106135a4576135a4614d32565b90600052602060002001549050808760000184815481106135c7576135c7614d32565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806135fa576135fa61514e565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610893565b6000915050610893565b600881901c600090815260209290925260409091208054600160ff1b60ff9093169290921c9091179055565b600061367660095490565b82108015610893575050600160401b111590565b600061369560095490565b90506136a1848461317d565b6136af600085838686613bf4565b610c2c5760405162461bcd60e51b8152600401610b5f90615164565b6000610893600583613d2b565b60006108936136e561179a565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806001600160ff1b0383168161372260ff86901c601b614d77565b905061373087828885613e23565b935093505050935093915050565b6000816004811115613752576137526151b9565b0361375a5750565b600181600481111561376e5761376e6151b9565b036137bb5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610b5f565b60028160048111156137cf576137cf6151b9565b0361381c5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610b5f565b6003816004811115613830576138306151b9565b03610c065760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610b5f565b60008082516041036138be5760208301516040840151606085015160001a6138b287828585613e23565b945094505050506109ee565b506000905060026109ee565b600060ff8216601f81111561089357604051632cd44ac360e21b815260040160405180910390fd5b610937838383613ee7565b816001600160a01b0316836001600160a01b03160361395e5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610b5f565b6001600160a01b03838116600081815260126020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6139d68484846125f6565b6139e284848484613f1a565b610c2c5760405162461bcd60e51b8152600401610b5f906151cf565b613a098484846125f6565b6136af848484600185613bf4565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310613a565772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613a82576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310613aa057662386f26fc10000830492506010015b6305f5e1008310613ab8576305f5e100830492506008015b6127108310613acc57612710830492506004015b60648310613ade576064830492506002015b600a83106108935760010192915050565b60006001600160e01b031982166380ac58cd60e01b1480613b2057506001600160e01b03198216635b5e139f60e01b145b80610893575061089382614013565b600081815260116020526040902080546001600160a01b0319166001600160a01b0384169081179091558190613b6482611b15565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190613b6482610c76565b600160401b811015613be957610937838383614038565b61093783838361418a565b60006001600160a01b0385163b15613d1e57506001835b613c158486614d77565b811015613d1857604051630a85bd0160e11b81526001600160a01b0387169063150b7a0290613c4e9033908b9086908990600401615221565b6020604051808303816000875af1925050508015613c89575060408051601f3d908101601f19168201909252613c8691810190615131565b60015b613ce6573d808015613cb7576040519150601f19603f3d011682016040523d82523d6000602084013e613cbc565b606091505b508051600003613cde5760405162461bcd60e51b8152600401610b5f90615164565b805181602001fd5b828015613d0357506001600160e01b03198116630a85bd0160e11b145b92505080613d1081614d5e565b915050613c0b565b50613d22565b5060015b95945050505050565b600881901c60008181526020849052604081205490919060ff808516919082181c8015613d6d57613d5b81614362565b60ff168203600884901b179350613e1a565b60008311613dda5760405162461bcd60e51b815260206004820152603460248201527f4269744d6170733a205468652073657420626974206265666f7265207468652060448201527334b73232bc103237b2b9b713ba1032bc34b9ba1760611b6064820152608401610b5f565b506000199091016000818152602086905260409020549091908015613e1557613e0281614362565b60ff0360ff16600884901b179350613e1a565b613d6d565b50505092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613e5a5750600090506003613ede565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613eae573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613ed757600060019250925050613ede565b9150600090505b94509492505050565b613ef183836143cc565b613efe6000848484613f1a565b6109375760405162461bcd60e51b8152600401610b5f906151cf565b60006001600160a01b0384163b1561400857604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613f5e903390899088908890600401615221565b6020604051808303816000875af1925050508015613f99575060408051601f3d908101601f19168201909252613f9691810190615131565b60015b613fee573d808015613fc7576040519150601f19603f3d011682016040523d82523d6000602084013e613fcc565b606091505b508051600003613cde5760405162461bcd60e51b8152600401610b5f906151cf565b6001600160e01b031916630a85bd0160e11b149050612a29565b506001949350505050565b60006001600160e01b0319821663152a902d60e11b14806108935750610893826143d6565b826001600160a01b031661404b82611b15565b6001600160a01b0316146140715760405162461bcd60e51b8152600401610b5f9061525e565b6001600160a01b0382166140d35760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610b5f565b826001600160a01b03166140e682611b15565b6001600160a01b03161461410c5760405162461bcd60e51b8152600401610b5f9061525e565b600081815260116020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260108552838620805460001901905590871680865283862080546001019055868652600f90945282852080549092168417909155905184936000805160206152a483398151915291a4505050565b60008061419683612c0a565b91509150846001600160a01b0316826001600160a01b0316146142105760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a207472616e73666572206f6620746f6b656e2074686160448201526b3a1034b9903737ba1037bbb760a11b6064820152608401610b5f565b6001600160a01b0384166142765760405162461bcd60e51b815260206004820152602760248201527f4552433732315073693a207472616e7366657220746f20746865207a65726f206044820152666164647265737360c81b6064820152608401610b5f565b61428160008461238d565b600061428e846001614d77565b600881901c600090815260056020526040902054909150600160ff1b60ff83161c161580156142be575060095481105b156142f557600081815260086020526040902080546001600160a01b0319166001600160a01b0388161790556142f560058261363f565b600084815260086020526040902080546001600160a01b0319166001600160a01b03871617905581841461432e5761432e60058561363f565b83856001600160a01b0316876001600160a01b03166000805160206152a483398151915260405160405180910390a46110c7565b600060405180610120016040528061010081526020016152c4610100913960f87e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff6143ab856143e1565b02901c815181106143be576143be614d32565b016020015160f81c92915050565b6108848282612877565b6000610893826143f9565b60008082116143ef57600080fd5b5060008190031690565b60006001600160e01b03198216635a05180f60e01b148061089357506108938260006001600160e01b03198216637965db0b60e01b148061089357506301ffc9a760e01b6001600160e01b0319831614610893565b60006020828403121561446057600080fd5b81356001600160401b0381111561447657600080fd5b820160608185031215610e3057600080fd5b6001600160e01b031981168114610c0657600080fd5b6000602082840312156144b057600080fd5b8135610e3081614488565b60005b838110156144d65781810151838201526020016144be565b50506000910152565b600081518084526144f78160208601602086016144bb565b601f01601f19169290920160200192915050565b602081526000610e3060208301846144df565b60006020828403121561453057600080fd5b5035919050565b80356001600160a01b038116811461337057600080fd5b6000806040838503121561456157600080fd5b61456a83614537565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156145b0576145b0614578565b60405290565b604051601f8201601f191681016001600160401b03811182821017156145de576145de614578565b604052919050565b60006001600160401b038211156145ff576145ff614578565b5060051b60200190565b600061461c614617846145e6565b6145b6565b8381529050602080820190600585811b85018781111561463b57600080fd5b855b8181101561470e5780356001600160401b038082111561465d5760008081fd5b908801906040828c0312156146725760008081fd5b61467a61458e565b61468383614537565b815286830135828111156146975760008081fd5b8084019350508b601f8401126146af57600091508182fd5b823591506146bf614617836145e6565b82815291861b8301870191878101908d8411156146dc5760008081fd5b938801935b838510156146fa578435825293880193908801906146e1565b82890152508752505093830193830161463d565b50505050509392505050565b60006020828403121561472c57600080fd5b81356001600160401b0381111561474257600080fd5b8201601f8101841361475357600080fd5b612a2984823560208401614609565b60008060006060848603121561477757600080fd5b61478084614537565b925061478e60208501614537565b9150604084013590509250925092565b600080604083850312156147b157600080fd5b50508035926020909101359150565b600060208083850312156147d357600080fd5b82356001600160401b038111156147e957600080fd5b8301601f810185136147fa57600080fd5b8035614808614617826145e6565b81815260069190911b8201830190838101908783111561482757600080fd5b928401925b8284101561487157604084890312156148455760008081fd5b61484d61458e565b61485685614537565b8152848601358682015282526040909301929084019061482c565b979650505050505050565b6000806040838503121561488f57600080fd5b8235915061489f60208401614537565b90509250929050565b6020808252825182820181905260009190848201906040850190845b818110156148e95783516001600160a01b0316835292840192918401916001016148c4565b50909695505050505050565b60006020828403121561490757600080fd5b610e3082614537565b80356001600160601b038116811461337057600080fd5b60008060006060848603121561493c57600080fd5b8335925061494c60208501614537565b915061495a60408501614910565b90509250925092565b60006001600160401b0383111561497c5761497c614578565b61498f601f8401601f19166020016145b6565b90508281528383830111156149a357600080fd5b828260208301376000602084830101529392505050565b6000602082840312156149cc57600080fd5b81356001600160401b038111156149e257600080fd5b8201601f810184136149f357600080fd5b612a2984823560208401614963565b600082601f830112614a1357600080fd5b610e3083833560208501614963565b60008060008060808587031215614a3857600080fd5b614a4185614537565b9350602085013592506040850135915060608501356001600160401b03811115614a6a57600080fd5b614a7687828801614a02565b91505092959194509250565b60ff60f81b881681526000602060e081840152614aa260e084018a6144df565b8381036040850152614ab4818a6144df565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015614b0657835183529284019291840191600101614aea565b50909c9b505050505050505050505050565b60008060408385031215614b2b57600080fd5b614b3483614537565b915061489f60208401614910565b8015158114610c0657600080fd5b60008060408385031215614b6357600080fd5b614b6c83614537565b91506020830135614b7c81614b42565b809150509250929050565b60008083601f840112614b9957600080fd5b5081356001600160401b03811115614bb057600080fd5b6020830191508360208260051b85010111156109ee57600080fd5b60008060008060608587031215614be157600080fd5b84356001600160401b03811115614bf757600080fd5b614c0387828801614b87565b9095509350614c16905060208601614537565b9150614c2460408601614910565b905092959194509250565b60008060008060808587031215614c4557600080fd5b614c4e85614537565b9350614c5c60208601614537565b92506040850135915060608501356001600160401b03811115614a6a57600080fd5b60008060208385031215614c9157600080fd5b82356001600160401b03811115614ca757600080fd5b614cb385828601614b87565b90969095509350505050565b60008060408385031215614cd257600080fd5b614cdb83614537565b915061489f60208401614537565b6000808335601e19843603018112614d0057600080fd5b8301803591506001600160401b03821115614d1a57600080fd5b6020019150600581901b36038213156109ee57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201614d7057614d70614d48565b5060010190565b8082018082111561089357610893614d48565b808202811582820484141761089357610893614d48565b600082614dbe57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680614dd757607f821691505b602082108103614df757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561093757600081815260208120601f850160051c81016020861015614e245750805b601f850160051c820191505b818110156110c757828155600101614e30565b81516001600160401b03811115614e5c57614e5c614578565b614e7081614e6a8454614dc3565b84614dfd565b602080601f831160018114614ea55760008415614e8d5750858301515b600019600386901b1c1916600185901b1785556110c7565b600085815260208120601f198616915b82811015614ed457888601518255948401946001909101908401614eb5565b5085821015614ef25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215614f1457600080fd5b8151610e3081614b42565b8181038181111561089357610893614d48565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526034908201527f4552433732315073693a207472616e736665722063616c6c6572206973206e6f6040820152731d081bdddb995c881b9bdc88185c1c1c9bdd995960621b606082015260800190565b600081614fe257614fe2614d48565b506000190190565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b80516020808301519190811015614df75760001960209190910360031b1b16919050565b6000835161506a8184602088016144bb565b83519083019061507e8183602088016144bb565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516150bf8160178501602088016144bb565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516150f08160288401602088016144bb565b01602801949350505050565b828152604060208201526000612a2960408301846144df565b600082516151278184602087016144bb565b9190910192915050565b60006020828403121561514357600080fd5b8151610e3081614488565b634e487b7160e01b600052603160045260246000fd5b60208082526035908201527f4552433732315073693a207472616e7366657220746f206e6f6e20455243373260408201527418a932b1b2b4bb32b91034b6b83632b6b2b73a32b960591b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615254908301846144df565b9695505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b60608201526080019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0001020903110a19042112290b311a3905412245134d2a550c5d32651b6d3a7506264262237d468514804e8d2b95569d0d495ea533a966b11c886eb93bc176c9071727374353637324837e9b47af86c7155181ad4fd18ed32c9096db57d59ee30e2e4a6a5f92a6be3498aae067ddb2eb1d5989b56fd7baf33ca0c2ee77e5caf7ff0810182028303840444c545c646c7425617c847f8c949c48a4a8b087b8c0c816365272829aaec650acd0d28fdad4e22d6991bd97dfdcea58b4d6f29fede4f6fe0f1f2f3f4b5b6b607b8b93a3a7b7bf357199c5abcfd9e168bcdee9b3f1ecf5fd1e3e5a7a8aa2b670c4ced8bbe8f0f4fc3d79a1c3cde7effb78cce6facbf9f8a26469706673582212207c1340e2d1c7a6af058cbb35c7f1065a255bd81a470929fa89ee68ccabc5922664736f6c63430008110033";
|
|
31565
32259
|
const isSuperArgs$2 = (xs) => xs.length > 1;
|
|
31566
32260
|
class ImmutableERC721__factory extends ethers.ContractFactory {
|
|
31567
32261
|
constructor(...args) {
|
|
@@ -31741,6 +32435,37 @@ const _abi$1 = [
|
|
|
31741
32435
|
name: "IImmutableERC721TokenAlreadyBurned",
|
|
31742
32436
|
type: "error",
|
|
31743
32437
|
},
|
|
32438
|
+
{
|
|
32439
|
+
inputs: [],
|
|
32440
|
+
name: "InvalidShortString",
|
|
32441
|
+
type: "error",
|
|
32442
|
+
},
|
|
32443
|
+
{
|
|
32444
|
+
inputs: [],
|
|
32445
|
+
name: "InvalidSignature",
|
|
32446
|
+
type: "error",
|
|
32447
|
+
},
|
|
32448
|
+
{
|
|
32449
|
+
inputs: [],
|
|
32450
|
+
name: "PermitExpired",
|
|
32451
|
+
type: "error",
|
|
32452
|
+
},
|
|
32453
|
+
{
|
|
32454
|
+
inputs: [],
|
|
32455
|
+
name: "SignerCannotBeZerothAddress",
|
|
32456
|
+
type: "error",
|
|
32457
|
+
},
|
|
32458
|
+
{
|
|
32459
|
+
inputs: [
|
|
32460
|
+
{
|
|
32461
|
+
internalType: "string",
|
|
32462
|
+
name: "str",
|
|
32463
|
+
type: "string",
|
|
32464
|
+
},
|
|
32465
|
+
],
|
|
32466
|
+
name: "StringTooLong",
|
|
32467
|
+
type: "error",
|
|
32468
|
+
},
|
|
31744
32469
|
{
|
|
31745
32470
|
inputs: [
|
|
31746
32471
|
{
|
|
@@ -31813,6 +32538,12 @@ const _abi$1 = [
|
|
|
31813
32538
|
name: "ApprovalForAll",
|
|
31814
32539
|
type: "event",
|
|
31815
32540
|
},
|
|
32541
|
+
{
|
|
32542
|
+
anonymous: false,
|
|
32543
|
+
inputs: [],
|
|
32544
|
+
name: "EIP712DomainChanged",
|
|
32545
|
+
type: "event",
|
|
32546
|
+
},
|
|
31816
32547
|
{
|
|
31817
32548
|
anonymous: false,
|
|
31818
32549
|
inputs: [
|
|
@@ -31945,6 +32676,19 @@ const _abi$1 = [
|
|
|
31945
32676
|
stateMutability: "view",
|
|
31946
32677
|
type: "function",
|
|
31947
32678
|
},
|
|
32679
|
+
{
|
|
32680
|
+
inputs: [],
|
|
32681
|
+
name: "DOMAIN_SEPARATOR",
|
|
32682
|
+
outputs: [
|
|
32683
|
+
{
|
|
32684
|
+
internalType: "bytes32",
|
|
32685
|
+
name: "",
|
|
32686
|
+
type: "bytes32",
|
|
32687
|
+
},
|
|
32688
|
+
],
|
|
32689
|
+
stateMutability: "view",
|
|
32690
|
+
type: "function",
|
|
32691
|
+
},
|
|
31948
32692
|
{
|
|
31949
32693
|
inputs: [],
|
|
31950
32694
|
name: "MINTER_ROLE",
|
|
@@ -32085,6 +32829,49 @@ const _abi$1 = [
|
|
|
32085
32829
|
stateMutability: "view",
|
|
32086
32830
|
type: "function",
|
|
32087
32831
|
},
|
|
32832
|
+
{
|
|
32833
|
+
inputs: [],
|
|
32834
|
+
name: "eip712Domain",
|
|
32835
|
+
outputs: [
|
|
32836
|
+
{
|
|
32837
|
+
internalType: "bytes1",
|
|
32838
|
+
name: "fields",
|
|
32839
|
+
type: "bytes1",
|
|
32840
|
+
},
|
|
32841
|
+
{
|
|
32842
|
+
internalType: "string",
|
|
32843
|
+
name: "name",
|
|
32844
|
+
type: "string",
|
|
32845
|
+
},
|
|
32846
|
+
{
|
|
32847
|
+
internalType: "string",
|
|
32848
|
+
name: "version",
|
|
32849
|
+
type: "string",
|
|
32850
|
+
},
|
|
32851
|
+
{
|
|
32852
|
+
internalType: "uint256",
|
|
32853
|
+
name: "chainId",
|
|
32854
|
+
type: "uint256",
|
|
32855
|
+
},
|
|
32856
|
+
{
|
|
32857
|
+
internalType: "address",
|
|
32858
|
+
name: "verifyingContract",
|
|
32859
|
+
type: "address",
|
|
32860
|
+
},
|
|
32861
|
+
{
|
|
32862
|
+
internalType: "bytes32",
|
|
32863
|
+
name: "salt",
|
|
32864
|
+
type: "bytes32",
|
|
32865
|
+
},
|
|
32866
|
+
{
|
|
32867
|
+
internalType: "uint256[]",
|
|
32868
|
+
name: "extensions",
|
|
32869
|
+
type: "uint256[]",
|
|
32870
|
+
},
|
|
32871
|
+
],
|
|
32872
|
+
stateMutability: "view",
|
|
32873
|
+
type: "function",
|
|
32874
|
+
},
|
|
32088
32875
|
{
|
|
32089
32876
|
inputs: [],
|
|
32090
32877
|
name: "getAdmins",
|
|
@@ -32314,6 +33101,25 @@ const _abi$1 = [
|
|
|
32314
33101
|
stateMutability: "view",
|
|
32315
33102
|
type: "function",
|
|
32316
33103
|
},
|
|
33104
|
+
{
|
|
33105
|
+
inputs: [
|
|
33106
|
+
{
|
|
33107
|
+
internalType: "uint256",
|
|
33108
|
+
name: "tokenId",
|
|
33109
|
+
type: "uint256",
|
|
33110
|
+
},
|
|
33111
|
+
],
|
|
33112
|
+
name: "nonces",
|
|
33113
|
+
outputs: [
|
|
33114
|
+
{
|
|
33115
|
+
internalType: "uint256",
|
|
33116
|
+
name: "",
|
|
33117
|
+
type: "uint256",
|
|
33118
|
+
},
|
|
33119
|
+
],
|
|
33120
|
+
stateMutability: "view",
|
|
33121
|
+
type: "function",
|
|
33122
|
+
},
|
|
32317
33123
|
{
|
|
32318
33124
|
inputs: [],
|
|
32319
33125
|
name: "operatorAllowlist",
|
|
@@ -32346,6 +33152,34 @@ const _abi$1 = [
|
|
|
32346
33152
|
stateMutability: "view",
|
|
32347
33153
|
type: "function",
|
|
32348
33154
|
},
|
|
33155
|
+
{
|
|
33156
|
+
inputs: [
|
|
33157
|
+
{
|
|
33158
|
+
internalType: "address",
|
|
33159
|
+
name: "spender",
|
|
33160
|
+
type: "address",
|
|
33161
|
+
},
|
|
33162
|
+
{
|
|
33163
|
+
internalType: "uint256",
|
|
33164
|
+
name: "tokenId",
|
|
33165
|
+
type: "uint256",
|
|
33166
|
+
},
|
|
33167
|
+
{
|
|
33168
|
+
internalType: "uint256",
|
|
33169
|
+
name: "deadline",
|
|
33170
|
+
type: "uint256",
|
|
33171
|
+
},
|
|
33172
|
+
{
|
|
33173
|
+
internalType: "bytes",
|
|
33174
|
+
name: "sig",
|
|
33175
|
+
type: "bytes",
|
|
33176
|
+
},
|
|
33177
|
+
],
|
|
33178
|
+
name: "permit",
|
|
33179
|
+
outputs: [],
|
|
33180
|
+
stateMutability: "nonpayable",
|
|
33181
|
+
type: "function",
|
|
33182
|
+
},
|
|
32349
33183
|
{
|
|
32350
33184
|
inputs: [
|
|
32351
33185
|
{
|
|
@@ -32800,7 +33634,7 @@ const _abi$1 = [
|
|
|
32800
33634
|
type: "function",
|
|
32801
33635
|
},
|
|
32802
33636
|
];
|
|
32803
|
-
const _bytecode$1 = "0x60806040523480156200001157600080fd5b5060405162003c7338038062003c73833981016040819052620000349162000506565b8787878787878787868660036200004c838262000699565b5060046200005b828262000699565b506200006d91506000905089620000b8565b620000798282620000fb565b620000848362000200565b600c62000092868262000699565b50600b620000a1858262000699565b505050505050505050505050505050505062000790565b620000cf8282620002f960201b6200135e1760201c565b6000828152600160209081526040909120620000f6918390620013e26200039a821b17901c565b505050565b6127106001600160601b03821611156200016f5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001c75760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000166565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000272919062000765565b620002905760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000396576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003553390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620003b1836001600160a01b038416620003ba565b90505b92915050565b60008181526001830160205260408120546200040357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003b4565b506000620003b4565b80516001600160a01b03811681146200042457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200045157600080fd5b81516001600160401b03808211156200046e576200046e62000429565b604051601f8301601f19908116603f0116810190828211818310171562000499576200049962000429565b81604052838152602092508683858801011115620004b657600080fd5b600091505b83821015620004da5785820183015181830184015290820190620004bb565b600093810190920192909252949350505050565b80516001600160601b03811681146200042457600080fd5b600080600080600080600080610100898b0312156200052457600080fd5b6200052f896200040c565b60208a01519098506001600160401b03808211156200054d57600080fd5b6200055b8c838d016200043f565b985060408b01519150808211156200057257600080fd5b620005808c838d016200043f565b975060608b01519150808211156200059757600080fd5b620005a58c838d016200043f565b965060808b0151915080821115620005bc57600080fd5b50620005cb8b828c016200043f565b945050620005dc60a08a016200040c565b9250620005ec60c08a016200040c565b9150620005fc60e08a01620004ee565b90509295985092959890939650565b600181811c908216806200062057607f821691505b6020821081036200064157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000f657600081815260208120601f850160051c81016020861015620006705750805b601f850160051c820191505b8181101562000691578281556001016200067c565b505050505050565b81516001600160401b03811115620006b557620006b562000429565b620006cd81620006c684546200060b565b8462000647565b602080601f831160018114620007055760008415620006ec5750858301515b600019600386901b1c1916600185901b17855562000691565b600085815260208120601f198616915b82811015620007365788860151825594840194600190910190840162000715565b5085821015620007555787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200077857600080fd5b815180151581146200078957600080fd5b9392505050565b6134d380620007a06000396000f3fe608060405234801561001057600080fd5b50600436106102945760003560e01c806369e2f0fb11610167578063a217fddf116100ce578063d539139311610087578063d5391393146105da578063d547741f146105ef578063e4623c1b14610602578063e4e18f6d14610615578063e8a3d48514610628578063e985e9c51461063057600080fd5b8063a217fddf14610573578063a22cb4651461057b578063a70128161461058e578063b88d4fde146105a1578063c87b56dd146105b4578063ca15c873146105c757600080fd5b806391d148541161012057806391d148541461050c578063938e3d7b1461051f57806395d89b41146105325780639e2641a31461053a5780639f15d7001461054d578063a14481941461056057600080fd5b806369e2f0fb146104a55780636c0360eb146104b857806370a08231146104c057806374f16a81146104d3578063885e7a08146104e65780639010d07c146104f957600080fd5b80632f2ff15d1161020b57806340c10f19116101c457806340c10f191461043357806342842e0e1461044657806342966c6814610459578063439aed341461046c57806355f804b31461047f5780636352211e1461049257600080fd5b80632f2ff15d146103c957806331ae450b146103dc57806336568abe146103f15780633dd1eb61146104045780633e769acd146104175780633eaaf86b1461042a57600080fd5b806318160ddd1161025d57806318160ddd14610329578063234af0461461033b57806323b872dd1461034e578063248a9ca31461036157806329326f29146103845780632a55205a1461039757600080fd5b80628ad9461461029957806301ffc9a7146102ae57806306fdde03146102d6578063081812fc146102eb578063095ea7b314610316575b600080fd5b6102ac6102a7366004612901565b61066c565b005b6102c16102bc366004612951565b610742565b60405190151581526020015b60405180910390f35b6102de610753565b6040516102cd91906129be565b6102fe6102f93660046129d1565b6107e5565b6040516001600160a01b0390911681526020016102cd565b6102ac610324366004612a06565b61080c565b600d545b6040519081526020016102cd565b6102ac610349366004612bd2565b610967565b6102ac61035c366004612c1a565b6109bf565b61032d61036f3660046129d1565b60009081526020819052604090206001015490565b6002546102fe906001600160a01b031681565b6103aa6103a5366004612c56565b6109f1565b604080516001600160a01b0390931683526020830191909152016102cd565b6102ac6103d7366004612c78565b610a9f565b6103e4610ac4565b6040516102cd9190612ca4565b6102ac6103ff366004612c78565b610b72565b6102ac610412366004612cf1565b610bec565b6102ac610425366004612bd2565b610c0f565b61032d600d5481565b6102ac610441366004612a06565b610c9b565b6102ac610454366004612c1a565b610cd7565b6102ac6104673660046129d1565b610cf2565b6102ac61047a366004612d23565b610d30565b6102ac61048d366004612db6565b610d59565b6102fe6104a03660046129d1565b610d70565b6102ac6104b3366004612cf1565b610dd0565b6102de610df3565b61032d6104ce366004612cf1565b610e81565b6102ac6104e1366004612bd2565b610f07565b6102ac6104f4366004612dfe565b610f13565b6102fe610507366004612c56565b610f28565b6102c161051a366004612c78565b610f47565b6102ac61052d366004612db6565b610f70565b6102de610f87565b6102ac610548366004612bd2565b610f96565b6102ac61055b366004612a06565b610fee565b6102ac61056e366004612a06565b611048565b61032d600081565b6102ac610589366004612e36565b61107a565b6102ac61059c366004612eb1565b6111cb565b6102ac6105af366004612f15565b61122b565b6102de6105c23660046129d1565b61125d565b61032d6105d53660046129d1565b6112c3565b61032d6a4d494e5445525f524f4c4560a81b81565b6102ac6105fd366004612c78565b6112da565b6102ac610610366004612f90565b6112ff565b6102ac610623366004612cf1565b61133d565b6102de611351565b6102c161063e366004612fd1565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b6106796020820182612ffb565b90506106886040830183612ffb565b9050146106a85760405163359a1bc360e01b815260040160405180910390fd5b60005b6106b86040830183612ffb565b905081101561073e5761072c6106d16020840184612cf1565b6106de6020850185612ffb565b848181106106ee576106ee613044565b90506020020160208101906107039190612cf1565b6107106040860186612ffb565b8581811061072057610720613044565b90506020020135610cd7565b8061073681613070565b9150506106ab565b5050565b600061074d826113f7565b92915050565b60606003805461076290613089565b80601f016020809104026020016040519081016040528092919081815260200182805461078e90613089565b80156107db5780601f106107b0576101008083540402835291602001916107db565b820191906000526020600020905b8154815290600101906020018083116107be57829003601f168201915b5050505050905090565b60006107f08261141c565b506000908152600760205260409020546001600160a01b031690565b81333b1580159061088657506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088491906130c3565b155b156108ab5760405163f6fa4cbd60e01b81523360048201526024015b60405180910390fd5b6001600160a01b0381163b1580159061092f57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092d91906130c3565b155b15610958576040516341b8d58160e11b81526001600160a01b03821660048201526024016108a2565b610962838361147b565b505050565b6a4d494e5445525f524f4c4560a81b61097f8161158b565b60005b8251811015610962576109ad8382815181106109a0576109a0613044565b6020026020010151611595565b806109b781613070565b915050610982565b6109ca335b82611624565b6109e65760405162461bcd60e51b81526004016108a2906130e0565b6109628383836116a3565b6000828152600a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a665750604080518082019091526009546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610a85906001600160601b03168761312d565b610a8f9190613144565b91519350909150505b9250929050565b600082815260208190526040902060010154610aba8161158b565b61096283836118aa565b60606000610ad1816112c3565b90506000816001600160401b03811115610aed57610aed612a30565b604051908082528060200260200182016040528015610b16578160200160208202803683370190505b50905060005b82811015610b6b57610b2f600082610f28565b828281518110610b4157610b41613044565b6001600160a01b039092166020928302919091019091015280610b6381613070565b915050610b1c565b5092915050565b6001600160a01b0381163314610be25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108a2565b61073e82826118cc565b6000610bf78161158b565b61073e6a4d494e5445525f524f4c4560a81b83610a9f565b60005b815181101561073e576000828281518110610c2f57610c2f613044565b6020026020010151905060005b816020015151811015610c8657610c74826000015183602001518381518110610c6757610c67613044565b6020026020010151610fee565b80610c7e81613070565b915050610c3c565b50508080610c9390613070565b915050610c12565b6a4d494e5445525f524f4c4560a81b610cb38161158b565b610cbd83836118ee565b600d8054906000610ccd83613070565b9190505550505050565b6109628383836040518060200160405280600081525061122b565b610cfb81611935565b600881901c6000908152600e602052604081208054600160ff85161b179055600d805491610d2883613166565b919050555050565b6a4d494e5445525f524f4c4560a81b610d488161158b565b610d53848484611963565b50505050565b6000610d648161158b565b600c61096283826131c3565b6000818152600560205260408120546001600160a01b03168061074d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108a2565b6000610ddb8161158b565b61073e6a4d494e5445525f524f4c4560a81b836112da565b600c8054610e0090613089565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2c90613089565b8015610e795780601f10610e4e57610100808354040283529160200191610e79565b820191906000526020600020905b815481529060010190602001808311610e5c57829003601f168201915b505050505081565b60006001600160a01b038216610eeb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016108a2565b506001600160a01b031660009081526006602052604090205490565b610f1081610c0f565b50565b6000610f1e8161158b565b6109628383611a2e565b6000828152600160205260408120610f409083611ae8565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610f7b8161158b565b600b61096283826131c3565b60606004805461076290613089565b6a4d494e5445525f524f4c4560a81b610fae8161158b565b60005b825181101561096257610fdc838281518110610fcf57610fcf613044565b6020026020010151611af4565b80610fe681613070565b915050610fb1565b6000610ff982610d70565b9050826001600160a01b0316816001600160a01b03161461103f57604051634fefd56160e01b8152600481018390526001600160a01b03821660248201526044016108a2565b61096282610cf2565b6a4d494e5445525f524f4c4560a81b6110608161158b565b610cbd838360405180602001604052806000815250611b6a565b81333b158015906110f457506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156110ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f291906130c3565b155b156111145760405163f6fa4cbd60e01b81523360048201526024016108a2565b6001600160a01b0381163b1580159061119857506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611172573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119691906130c3565b155b156111c1576040516341b8d58160e11b81526001600160a01b03821660048201526024016108a2565b6109628383611b9d565b6a4d494e5445525f524f4c4560a81b6111e38161158b565b60005b848110156112235761121186868381811061120357611203613044565b905060200201358585611963565b8061121b81613070565b9150506111e6565b505050505050565b6112353383611624565b6112515760405162461bcd60e51b81526004016108a2906130e0565b610d5384848484611ba8565b60606112688261141c565b6000611272611bdb565b905060008151116112925760405180602001604052806000815250610f40565b8061129c84611bea565b6040516020016112ad929190613282565b6040516020818303038152906040529392505050565b600081815260016020526040812061074d90611c7c565b6000828152602081905260409020600101546112f58161158b565b61096283836118cc565b60005b818110156109625761132b83838381811061131f5761131f613044565b90506020020135610cf2565b8061133581613070565b915050611302565b60006113488161158b565b61073e82611c86565b600b8054610e0090613089565b6113688282610f47565b61073e576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561139e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610f40836001600160a01b038416611d7b565b60006001600160e01b0319821663152a902d60e11b148061074d575061074d82611dca565b6000818152600560205260409020546001600160a01b0316610f105760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108a2565b600061148682610d70565b9050806001600160a01b0316836001600160a01b0316036114f35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016108a2565b336001600160a01b038216148061150f575061150f813361063e565b6115815760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016108a2565b6109628383611e0a565b610f108133611e78565b80516001600160a01b03166115bd576040516331c3e52960e11b815260040160405180910390fd5b60005b81602001515181101561160a576115f88260000151836020015183815181106115eb576115eb613044565b6020026020010151611ed1565b8061160281613070565b9150506115c0565b50806020015151600d5461161e91906132b1565b600d5550565b60008061163083610d70565b9050806001600160a01b0316846001600160a01b0316148061167757506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b8061169b5750836001600160a01b0316611690846107e5565b6001600160a01b0316145b949350505050565b828233321480159061171e57506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156116f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171c91906130c3565b155b1561173e5760405163937db65f60e01b81523360048201526024016108a2565b6001600160a01b0382163b158015906117c257506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c091906130c3565b155b156117eb5760405163f934453160e01b81526001600160a01b03831660048201526024016108a2565b6001600160a01b0381163b1580159061186f57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d91906130c3565b155b1561189857604051632a67242160e11b81526001600160a01b03821660048201526024016108a2565b6118a3858585611f18565b5050505050565b6118b4828261135e565b600082815260016020526040902061096290826113e2565b6118d6828261207c565b600082815260016020526040902061096290826120e1565b600881901c6000908152600e6020526040902054600160ff83161b161561192b576040516305dcda1160e51b8152600481018290526024016108a2565b61073e82826120f6565b61193e336109c4565b61195a5760405162461bcd60e51b81526004016108a2906130e0565b610f1081612281565b6127106001600160601b038216111561198e5760405162461bcd60e51b81526004016108a2906132c4565b6001600160a01b0382166119e45760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d6574657273000000000060448201526064016108a2565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600a90529190942093519051909116600160a01b029116179055565b6127106001600160601b0382161115611a595760405162461bcd60e51b81526004016108a2906132c4565b6001600160a01b038216611aaf5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016108a2565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b6000610f408383612316565b80516001600160a01b031615611b1d576040516331c3e52960e11b815260040160405180910390fd5b60005b81602001515181101561160a57611b58826000015183602001518381518110611b4b57611b4b613044565b60200260200101516118ee565b80611b6281613070565b915050611b20565b611b7483836118ee565b611b816000848484612340565b6109625760405162461bcd60e51b81526004016108a29061330e565b61073e338383612441565b611bb38484846116a3565b611bbf84848484612340565b610d535760405162461bcd60e51b81526004016108a29061330e565b6060600c805461076290613089565b60606000611bf78361250f565b60010190506000816001600160401b03811115611c1657611c16612a30565b6040519080825280601f01601f191660200182016040528015611c40576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611c4a57509392505050565b600061074d825490565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015611cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf591906130c3565b611d125760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152600183016020526040812054611dc25750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561074d565b50600061074d565b60006001600160e01b031982166380ac58cd60e01b1480611dfb57506001600160e01b03198216635b5e139f60e01b145b8061074d575061074d826125e7565b600081815260076020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611e3f82610d70565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611e828282610f47565b61073e57611e8f816125f2565b611e9a836020612604565b604051602001611eab929190613360565b60408051601f198184030181529082905262461bcd60e51b82526108a2916004016129be565b600881901c6000908152600e6020526040902054600160ff83161b1615611f0e576040516305dcda1160e51b8152600481018290526024016108a2565b61073e828261279f565b826001600160a01b0316611f2b82610d70565b6001600160a01b031614611f515760405162461bcd60e51b81526004016108a2906133d5565b6001600160a01b038216611fb35760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108a2565b826001600160a01b0316611fc682610d70565b6001600160a01b031614611fec5760405162461bcd60e51b81526004016108a2906133d5565b600081815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260068552838620805460001901905590871680865283862080546001019055868652600590945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6120868282610f47565b1561073e576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610f40836001600160a01b0384166127b9565b6001600160a01b03821661214c5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108a2565b6000818152600560205260409020546001600160a01b0316156121b15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108a2565b6000818152600560205260409020546001600160a01b0316156122165760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108a2565b6001600160a01b038216600081815260066020908152604080832080546001019055848352600590915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600061228c82610d70565b905061229782610d70565b600083815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526006845282852080546000190190558785526005909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600082600001828154811061232d5761232d613044565b9060005260206000200154905092915050565b60006001600160a01b0384163b1561243657604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061238490339089908890889060040161341a565b6020604051808303816000875af19250505080156123bf575060408051601f3d908101601f191682019092526123bc91810190613457565b60015b61241c573d8080156123ed576040519150601f19603f3d011682016040523d82523d6000602084013e6123f2565b606091505b5080516000036124145760405162461bcd60e51b81526004016108a29061330e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061169b565b506001949350505050565b816001600160a01b0316836001600160a01b0316036124a25760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108a2565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061254e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061257a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061259857662386f26fc10000830492506010015b6305f5e10083106125b0576305f5e100830492506008015b61271083106125c457612710830492506004015b606483106125d6576064830492506002015b600a831061074d5760010192915050565b600061074d826128ac565b606061074d6001600160a01b03831660145b6060600061261383600261312d565b61261e9060026132b1565b6001600160401b0381111561263557612635612a30565b6040519080825280601f01601f19166020018201604052801561265f576020820181803683370190505b509050600360fc1b8160008151811061267a5761267a613044565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126a9576126a9613044565b60200101906001600160f81b031916908160001a90535060006126cd84600261312d565b6126d89060016132b1565b90505b6001811115612750576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061270c5761270c613044565b1a60f81b82828151811061272257612722613044565b60200101906001600160f81b031916908160001a90535060049490941c9361274981613166565b90506126db565b508315610f405760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108a2565b61073e828260405180602001604052806000815250611b6a565b600081815260018301602052604081205480156128a25760006127dd600183613474565b85549091506000906127f190600190613474565b905081811461285657600086600001828154811061281157612811613044565b906000526020600020015490508087600001848154811061283457612834613044565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061286757612867613487565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061074d565b600091505061074d565b60006001600160e01b03198216635a05180f60e01b148061074d575061074d8260006001600160e01b03198216637965db0b60e01b148061074d57506301ffc9a760e01b6001600160e01b031983161461074d565b60006020828403121561291357600080fd5b81356001600160401b0381111561292957600080fd5b820160608185031215610f4057600080fd5b6001600160e01b031981168114610f1057600080fd5b60006020828403121561296357600080fd5b8135610f408161293b565b60005b83811015612989578181015183820152602001612971565b50506000910152565b600081518084526129aa81602086016020860161296e565b601f01601f19169290920160200192915050565b602081526000610f406020830184612992565b6000602082840312156129e357600080fd5b5035919050565b80356001600160a01b0381168114612a0157600080fd5b919050565b60008060408385031215612a1957600080fd5b612a22836129ea565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612a6857612a68612a30565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612a9657612a96612a30565b604052919050565b60006001600160401b03821115612ab757612ab7612a30565b5060051b60200190565b6000612ad4612acf84612a9e565b612a6e565b8381529050602080820190600585811b850187811115612af357600080fd5b855b81811015612bc65780356001600160401b0380821115612b155760008081fd5b908801906040828c031215612b2a5760008081fd5b612b32612a46565b612b3b836129ea565b81528683013582811115612b4f5760008081fd5b8084019350508b601f840112612b6757600091508182fd5b82359150612b77612acf83612a9e565b82815291861b8301870191878101908d841115612b945760008081fd5b938801935b83851015612bb257843582529388019390880190612b99565b828901525087525050938301938301612af5565b50505050509392505050565b600060208284031215612be457600080fd5b81356001600160401b03811115612bfa57600080fd5b8201601f81018413612c0b57600080fd5b61169b84823560208401612ac1565b600080600060608486031215612c2f57600080fd5b612c38846129ea565b9250612c46602085016129ea565b9150604084013590509250925092565b60008060408385031215612c6957600080fd5b50508035926020909101359150565b60008060408385031215612c8b57600080fd5b82359150612c9b602084016129ea565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ce55783516001600160a01b031683529284019291840191600101612cc0565b50909695505050505050565b600060208284031215612d0357600080fd5b610f40826129ea565b80356001600160601b0381168114612a0157600080fd5b600080600060608486031215612d3857600080fd5b83359250612d48602085016129ea565b9150612d5660408501612d0c565b90509250925092565b60006001600160401b03831115612d7857612d78612a30565b612d8b601f8401601f1916602001612a6e565b9050828152838383011115612d9f57600080fd5b828260208301376000602084830101529392505050565b600060208284031215612dc857600080fd5b81356001600160401b03811115612dde57600080fd5b8201601f81018413612def57600080fd5b61169b84823560208401612d5f565b60008060408385031215612e1157600080fd5b612e1a836129ea565b9150612c9b60208401612d0c565b8015158114610f1057600080fd5b60008060408385031215612e4957600080fd5b612e52836129ea565b91506020830135612e6281612e28565b809150509250929050565b60008083601f840112612e7f57600080fd5b5081356001600160401b03811115612e9657600080fd5b6020830191508360208260051b8501011115610a9857600080fd5b60008060008060608587031215612ec757600080fd5b84356001600160401b03811115612edd57600080fd5b612ee987828801612e6d565b9095509350612efc9050602086016129ea565b9150612f0a60408601612d0c565b905092959194509250565b60008060008060808587031215612f2b57600080fd5b612f34856129ea565b9350612f42602086016129ea565b92506040850135915060608501356001600160401b03811115612f6457600080fd5b8501601f81018713612f7557600080fd5b612f8487823560208401612d5f565b91505092959194509250565b60008060208385031215612fa357600080fd5b82356001600160401b03811115612fb957600080fd5b612fc585828601612e6d565b90969095509350505050565b60008060408385031215612fe457600080fd5b612fed836129ea565b9150612c9b602084016129ea565b6000808335601e1984360301811261301257600080fd5b8301803591506001600160401b0382111561302c57600080fd5b6020019150600581901b3603821315610a9857600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016130825761308261305a565b5060010190565b600181811c9082168061309d57607f821691505b6020821081036130bd57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156130d557600080fd5b8151610f4081612e28565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b808202811582820484141761074d5761074d61305a565b60008261316157634e487b7160e01b600052601260045260246000fd5b500490565b6000816131755761317561305a565b506000190190565b601f82111561096257600081815260208120601f850160051c810160208610156131a45750805b601f850160051c820191505b81811015611223578281556001016131b0565b81516001600160401b038111156131dc576131dc612a30565b6131f0816131ea8454613089565b8461317d565b602080601f831160018114613225576000841561320d5750858301515b600019600386901b1c1916600185901b178555611223565b600085815260208120601f198616915b8281101561325457888601518255948401946001909101908401613235565b50858210156132725787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000835161329481846020880161296e565b8351908301906132a881836020880161296e565b01949350505050565b8082018082111561074d5761074d61305a565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161339881601785016020880161296e565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516133c981602884016020880161296e565b01602801949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061344d90830184612992565b9695505050505050565b60006020828403121561346957600080fd5b8151610f408161293b565b8181038181111561074d5761074d61305a565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220db78f674a75be30e896244d83179c8c4f1b45519e52de44c0f337b384795efbc64736f6c63430008110033";
|
|
33637
|
+
const _bytecode$1 = "0x6101606040523480156200001257600080fd5b5060405162004b3738038062004b37833981016040819052620000359162000693565b8787878787878787868681604051806040016040528060018152602001603160f81b815250838381600390816200006d919062000826565b5060046200007c828262000826565b5050506200009a600983620001a960201b620014771790919060201c565b61012052620000b781600a620001a9602090811b6200147717901c565b61014052815160208084019190912060e052815190820120610100524660a0526200014560e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052506200015e9050600089620001f9565b6200016a82826200023c565b620001758362000341565b600f62000183868262000826565b50600e62000192858262000826565b505050505050505050505050505050505062000970565b6000602083511015620001c957620001c1836200043a565b9050620001f3565b82620001e0836200047d60201b620014a81760201c565b90620001ed908262000826565b5060ff90505b92915050565b6200021082826200048060201b620014ab1760201c565b6000828152600160209081526040909120620002379183906200152f62000521821b17901c565b505050565b6127106001600160601b0382161115620002b05760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620003085760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401620002a7565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600c55565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156200038d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b39190620008f2565b620003d15760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080829050601f8151111562000468578260405163305a27a960e01b8152600401620002a7919062000916565b805162000475826200094b565b179392505050565b90565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200051d576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620004dc3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000538836001600160a01b0384166200053f565b9392505050565b60008181526001830160205260408120546200058857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001f3565b506000620001f3565b80516001600160a01b0381168114620005a957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620005e1578181015183820152602001620005c7565b50506000910152565b600082601f830112620005fc57600080fd5b81516001600160401b0380821115620006195762000619620005ae565b604051601f8301601f19908116603f01168101908282118183101715620006445762000644620005ae565b816040528381528660208588010111156200065e57600080fd5b62000671846020830160208901620005c4565b9695505050505050565b80516001600160601b0381168114620005a957600080fd5b600080600080600080600080610100898b031215620006b157600080fd5b620006bc8962000591565b60208a01519098506001600160401b0380821115620006da57600080fd5b620006e88c838d01620005ea565b985060408b0151915080821115620006ff57600080fd5b6200070d8c838d01620005ea565b975060608b01519150808211156200072457600080fd5b620007328c838d01620005ea565b965060808b01519150808211156200074957600080fd5b50620007588b828c01620005ea565b9450506200076960a08a0162000591565b92506200077960c08a0162000591565b91506200078960e08a016200067b565b90509295985092959890939650565b600181811c90821680620007ad57607f821691505b602082108103620007ce57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200023757600081815260208120601f850160051c81016020861015620007fd5750805b601f850160051c820191505b818110156200081e5782815560010162000809565b505050505050565b81516001600160401b03811115620008425762000842620005ae565b6200085a8162000853845462000798565b84620007d4565b602080601f831160018114620008925760008415620008795750858301515b600019600386901b1c1916600185901b1785556200081e565b600085815260208120601f198616915b82811015620008c357888601518255948401946001909101908401620008a2565b5085821015620008e25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200090557600080fd5b815180151581146200053857600080fd5b602081526000825180602084015262000937816040850160208701620005c4565b601f01601f19169190910160400192915050565b80516020808301519190811015620007ce5760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161416c620009cb6000396000610fdc01526000610fb101526000611b3401526000611b0c01526000611a6701526000611a9101526000611abb015261416c6000f3fe608060405234801561001057600080fd5b50600436106102f05760003560e01c806369e2f0fb1161019d578063a1448194116100e9578063ca15c873116100a2578063e4623c1b1161007c578063e4623c1b146106b8578063e4e18f6d146106cb578063e8a3d485146106de578063e985e9c5146106e657600080fd5b8063ca15c8731461067d578063d539139314610690578063d547741f146106a557600080fd5b8063a144819414610616578063a217fddf14610629578063a22cb46514610631578063a701281614610644578063b88d4fde14610657578063c87b56dd1461066a57600080fd5b8063885e7a0811610156578063938e3d7b11610130578063938e3d7b146105d557806395d89b41146105e85780639e2641a3146105f05780639f15d7001461060357600080fd5b8063885e7a081461059c5780639010d07c146105af57806391d14854146105c257600080fd5b806369e2f0fb1461052d5780636c0360eb1461054057806370a0823114610548578063745a41bc1461055b57806374f16a811461056e57806384b0196e1461058157600080fd5b80632f2ff15d1161025c5780633eaaf86b1161021557806342966c68116101ef57806342966c68146104e1578063439aed34146104f457806355f804b3146105075780636352211e1461051a57600080fd5b80633eaaf86b146104b257806340c10f19146104bb57806342842e0e146104ce57600080fd5b80632f2ff15d1461044957806331ae450b1461045c5780633644e5151461047157806336568abe146104795780633dd1eb611461048c5780633e769acd1461049f57600080fd5b806318160ddd116102ae57806318160ddd146103b3578063234af046146103bb57806323b872dd146103ce578063248a9ca3146103e157806329326f29146104045780632a55205a1461041757600080fd5b80628ad946146102f557806301ffc9a71461030a57806306fdde0314610332578063081812fc14610347578063095ea7b314610372578063141a468c14610385575b600080fd5b610308610303366004613441565b610722565b005b61031d610318366004613491565b6107f8565b60405190151581526020015b60405180910390f35b61033a610809565b60405161032991906134fe565b61035a610355366004613511565b61089b565b6040516001600160a01b039091168152602001610329565b610308610380366004613546565b6108c2565b6103a5610393366004613511565b6000908152600b602052604090205490565b604051908152602001610329565b6010546103a5565b6103086103c9366004613712565b6109dc565b6103086103dc36600461375a565b610a34565b6103a56103ef366004613511565b60009081526020819052604090206001015490565b60025461035a906001600160a01b031681565b61042a610425366004613796565b610a66565b604080516001600160a01b039093168352602083019190915201610329565b6103086104573660046137b8565b610b14565b610464610b39565b60405161032991906137e4565b6103a5610be7565b6103086104873660046137b8565b610bf6565b61030861049a366004613831565b610c70565b6103086104ad366004613712565b610c93565b6103a560105481565b6103086104c9366004613546565b610d1f565b6103086104dc36600461375a565b610d5b565b6103086104ef366004613511565b610d76565b610308610502366004613863565b610db4565b6103086105153660046138f6565b610ddd565b61035a610528366004613511565b610df4565b61030861053b366004613831565b610e54565b61033a610e77565b6103a5610556366004613831565b610f05565b61030861056936600461395e565b610f8b565b61030861057c366004613712565b610f97565b610589610fa3565b60405161032997969594939291906139be565b6103086105aa366004613a54565b61102c565b61035a6105bd366004613796565b611041565b61031d6105d03660046137b8565b611060565b6103086105e33660046138f6565b611089565b61033a6110a0565b6103086105fe366004613712565b6110af565b610308610611366004613546565b611107565b610308610624366004613546565b611161565b6103a5600081565b61030861063f366004613a8c565b611193565b610308610652366004613b07565b6112e4565b610308610665366004613b6b565b611344565b61033a610678366004613511565b611376565b6103a561068b366004613511565b6113dc565b6103a56a4d494e5445525f524f4c4560a81b81565b6103086106b33660046137b8565b6113f3565b6103086106c6366004613bba565b611418565b6103086106d9366004613831565b611456565b61033a61146a565b61031d6106f4366004613bfb565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b61072f6020820182613c25565b905061073e6040830183613c25565b90501461075e5760405163359a1bc360e01b815260040160405180910390fd5b60005b61076e6040830183613c25565b90508110156107f4576107e26107876020840184613831565b6107946020850185613c25565b848181106107a4576107a4613c6e565b90506020020160208101906107b99190613831565b6107c66040860186613c25565b858181106107d6576107d6613c6e565b90506020020135610d5b565b806107ec81613c9a565b915050610761565b5050565b600061080382611544565b92915050565b60606003805461081890613cb3565b80601f016020809104026020016040519081016040528092919081815260200182805461084490613cb3565b80156108915780601f1061086657610100808354040283529160200191610891565b820191906000526020600020905b81548152906001019060200180831161087457829003601f168201915b5050505050905090565b60006108a682611569565b506000908152600760205260409020546001600160a01b031690565b60006108cd82610df4565b9050806001600160a01b0316836001600160a01b03160361093f5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061095b575061095b81336106f4565b6109cd5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610936565b6109d783836115c8565b505050565b6a4d494e5445525f524f4c4560a81b6109f481611719565b60005b82518110156109d757610a22838281518110610a1557610a15613c6e565b6020026020010151611723565b80610a2c81613c9a565b9150506109f7565b610a3f335b826117b2565b610a5b5760405162461bcd60e51b815260040161093690613ced565b6109d7838383611831565b6000828152600d602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610adb575060408051808201909152600c546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610afa906001600160601b031687613d3a565b610b049190613d51565b91519350909150505b9250929050565b600082815260208190526040902060010154610b2f81611719565b6109d78383611a38565b60606000610b46816113dc565b90506000816001600160401b03811115610b6257610b62613570565b604051908082528060200260200182016040528015610b8b578160200160208202803683370190505b50905060005b82811015610be057610ba4600082611041565b828281518110610bb657610bb6613c6e565b6001600160a01b039092166020928302919091019091015280610bd881613c9a565b915050610b91565b5092915050565b6000610bf1611a5a565b905090565b6001600160a01b0381163314610c665760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610936565b6107f48282611b85565b6000610c7b81611719565b6107f46a4d494e5445525f524f4c4560a81b83610b14565b60005b81518110156107f4576000828281518110610cb357610cb3613c6e565b6020026020010151905060005b816020015151811015610d0a57610cf8826000015183602001518381518110610ceb57610ceb613c6e565b6020026020010151611107565b80610d0281613c9a565b915050610cc0565b50508080610d1790613c9a565b915050610c96565b6a4d494e5445525f524f4c4560a81b610d3781611719565b610d418383611ba7565b60108054906000610d5183613c9a565b9190505550505050565b6109d783838360405180602001604052806000815250611344565b610d7f81611bee565b600881901c60009081526011602052604081208054600160ff85161b1790556010805491610dac83613d73565b919050555050565b6a4d494e5445525f524f4c4560a81b610dcc81611719565b610dd7848484611c1c565b50505050565b6000610de881611719565b600f6109d78382613dd0565b6000818152600560205260408120546001600160a01b0316806108035760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610936565b6000610e5f81611719565b6107f46a4d494e5445525f524f4c4560a81b836113f3565b600f8054610e8490613cb3565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb090613cb3565b8015610efd5780601f10610ed257610100808354040283529160200191610efd565b820191906000526020600020905b815481529060010190602001808311610ee057829003601f168201915b505050505081565b60006001600160a01b038216610f6f5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610936565b506001600160a01b031660009081526006602052604090205490565b610dd784848484611ce7565b610fa081610c93565b50565b600060608082808083610fd77f00000000000000000000000000000000000000000000000000000000000000006009611dd0565b6110027f0000000000000000000000000000000000000000000000000000000000000000600a611dd0565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b600061103781611719565b6109d78383611e74565b60008281526001602052604081206110599083611f2e565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600061109481611719565b600e6109d78382613dd0565b60606004805461081890613cb3565b6a4d494e5445525f524f4c4560a81b6110c781611719565b60005b82518110156109d7576110f58382815181106110e8576110e8613c6e565b6020026020010151611f3a565b806110ff81613c9a565b9150506110ca565b600061111282610df4565b9050826001600160a01b0316816001600160a01b03161461115857604051634fefd56160e01b8152600481018390526001600160a01b0382166024820152604401610936565b6109d782610d76565b6a4d494e5445525f524f4c4560a81b61117981611719565b610d41838360405180602001604052806000815250611fb0565b81333b1580159061120d57506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156111e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120b9190613e8f565b155b1561122d5760405163f6fa4cbd60e01b8152336004820152602401610936565b6001600160a01b0381163b158015906112b157506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa15801561128b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112af9190613e8f565b155b156112da576040516341b8d58160e11b81526001600160a01b0382166004820152602401610936565b6109d78383611fe3565b6a4d494e5445525f524f4c4560a81b6112fc81611719565b60005b8481101561133c5761132a86868381811061131c5761131c613c6e565b905060200201358585611c1c565b8061133481613c9a565b9150506112ff565b505050505050565b61134e33836117b2565b61136a5760405162461bcd60e51b815260040161093690613ced565b610dd784848484611fee565b606061138182611569565b600061138b612021565b905060008151116113ab5760405180602001604052806000815250611059565b806113b584612030565b6040516020016113c6929190613eac565b6040516020818303038152906040529392505050565b6000818152600160205260408120610803906120c2565b60008281526020819052604090206001015461140e81611719565b6109d78383611b85565b60005b818110156109d75761144483838381811061143857611438613c6e565b90506020020135610d76565b8061144e81613c9a565b91505061141b565b600061146181611719565b6107f4826120cc565b600e8054610e8490613cb3565b60006020835110156114935761148c836121c1565b9050610803565b8161149e8482613dd0565b5060ff9050610803565b90565b6114b58282611060565b6107f4576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556114eb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611059836001600160a01b0384166121ff565b60006001600160e01b0319821663152a902d60e11b148061080357506108038261224e565b6000818152600560205260409020546001600160a01b0316610fa05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610936565b81333b1580159061164257506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561161c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116409190613e8f565b155b156116625760405163f6fa4cbd60e01b8152336004820152602401610936565b6001600160a01b0381163b158015906116e657506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa1580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e49190613e8f565b155b1561170f576040516341b8d58160e11b81526001600160a01b0382166004820152602401610936565b6109d78383612273565b610fa081336122e1565b80516001600160a01b031661174b576040516331c3e52960e11b815260040160405180910390fd5b60005b8160200151518110156117985761178682600001518360200151838151811061177957611779613c6e565b602002602001015161233a565b8061179081613c9a565b91505061174e565b508060200151516010546117ac9190613edb565b60105550565b6000806117be83610df4565b9050806001600160a01b0316846001600160a01b0316148061180557506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b806118295750836001600160a01b031661181e8461089b565b6001600160a01b0316145b949350505050565b82823332148015906118ac57506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015611886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118aa9190613e8f565b155b156118cc5760405163937db65f60e01b8152336004820152602401610936565b6001600160a01b0382163b1580159061195057506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190613e8f565b155b156119795760405163f934453160e01b81526001600160a01b0383166004820152602401610936565b6001600160a01b0381163b158015906119fd57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa1580156119d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fb9190613e8f565b155b15611a2657604051632a67242160e11b81526001600160a01b0382166004820152602401610936565b611a31858585612381565b5050505050565b611a4282826114ab565b60008281526001602052604090206109d7908261152f565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611ab357507f000000000000000000000000000000000000000000000000000000000000000046145b15611add57507f000000000000000000000000000000000000000000000000000000000000000090565b610bf1604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b611b8f82826123ab565b60008281526001602052604090206109d79082612410565b600881901c600090815260116020526040902054600160ff83161b1615611be4576040516305dcda1160e51b815260048101829052602401610936565b6107f48282612425565b611bf733610a39565b611c135760405162461bcd60e51b815260040161093690613ced565b610fa0816125b0565b6127106001600160601b0382161115611c475760405162461bcd60e51b815260040161093690613eee565b6001600160a01b038216611c9d5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610936565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600d90529190942093519051909116600160a01b029116179055565b42821015611d085760405163068568f360e21b815260040160405180910390fd5b6000611d15858585612645565b9050611d2a611d2385610df4565b828461271e565b15611d3f57611d3985856115c8565b50610dd7565b60008251604003611d8657611d7f82611d5b8560006020612828565b611d6490613f38565b611d718660206040612828565b611d7a90613f38565b612935565b9050611db2565b8251604103611d9957611d7f8284612952565b604051638baa579f60e01b815260040160405180910390fd5b611dbc8186612976565b15611d9957611dcb86866115c8565b61133c565b606060ff8314611de35761148c83612995565b818054611def90613cb3565b80601f0160208091040260200160405190810160405280929190818152602001828054611e1b90613cb3565b8015611e685780601f10611e3d57610100808354040283529160200191611e68565b820191906000526020600020905b815481529060010190602001808311611e4b57829003601f168201915b50505050509050610803565b6127106001600160601b0382161115611e9f5760405162461bcd60e51b815260040161093690613eee565b6001600160a01b038216611ef55760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610936565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600c55565b600061105983836129d4565b80516001600160a01b031615611f63576040516331c3e52960e11b815260040160405180910390fd5b60005b81602001515181101561179857611f9e826000015183602001518381518110611f9157611f91613c6e565b6020026020010151611ba7565b80611fa881613c9a565b915050611f66565b611fba8383611ba7565b611fc760008484846129fe565b6109d75760405162461bcd60e51b815260040161093690613f5c565b6107f4338383612aff565b611ff9848484611831565b612005848484846129fe565b610dd75760405162461bcd60e51b815260040161093690613f5c565b6060600f805461081890613cb3565b6060600061203d83612bcd565b60010190506000816001600160401b0381111561205c5761205c613570565b6040519080825280601f01601f191660200182016040528015612086576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461209057509392505050565b6000610803825490565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213b9190613e8f565b6121585760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080829050601f815111156121ec578260405163305a27a960e01b815260040161093691906134fe565b80516121f782613f38565b179392505050565b600081815260018301602052604081205461224657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610803565b506000610803565b60006001600160e01b03198216635604e22560e01b1480610803575061080382612ca5565b600081815260076020526040902080546001600160a01b0319166001600160a01b03841690811790915581906122a882610df4565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6122eb8282611060565b6107f4576122f881612ce5565b612303836020612cf7565b604051602001612314929190613fae565b60408051601f198184030181529082905262461bcd60e51b8252610936916004016134fe565b600881901c600090815260116020526040902054600160ff83161b1615612377576040516305dcda1160e51b815260048101829052602401610936565b6107f48282612e92565b6000818152600b6020526040812080549161239b83613c9a565b91905055506109d7838383612eac565b6123b58282611060565b156107f4576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611059836001600160a01b038416613010565b6001600160a01b03821661247b5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610936565b6000818152600560205260409020546001600160a01b0316156124e05760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610936565b6000818152600560205260409020546001600160a01b0316156125455760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610936565b6001600160a01b038216600081815260066020908152604080832080546001019055848352600590915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006125bb82610df4565b90506125c682610df4565b600083815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526006845282852080546000190190558785526005909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60006118296040516020016126b390660a0cae4dad2e8560cb1b81527f61646472657373207370656e6465722c75696e7432353620746f6b656e49642c60078201527f75696e74323536206e6f6e63652c75696e7432353620646561646c696e652900602782015260460190565b60408051808303601f1901815282825280516020918201206000888152600b835283902054918401526001600160a01b0388169183019190915260608201869052608082015260a0810184905260c00160405160208183030381529060405280519060200120613103565b6000806000856001600160a01b0316631626ba7e60e01b8686604051602401612748929190614023565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612786919061403c565b600060405180830381855afa9150503d80600081146127c1576040519150601f19603f3d011682016040523d82523d6000602084013e6127c6565b606091505b50915091508180156127d9575080516020145b1561281c576000818060200190518101906127f49190614058565b90506374eca2c160e11b6001600160e01b031982160161281a5760019350505050611059565b505b50600095945050505050565b60608161283681601f613edb565b10156128755760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610936565b61287f8284613edb565b845110156128c35760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610936565b6060821580156128e2576040519150600082526020820160405261292c565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561291b578051835260209283019201612903565b5050858452601f01601f1916604052505b50949350505050565b6000806000612945868686613130565b9150915061292c81613169565b600080600061296185856132b3565b9150915061296e81613169565b509392505050565b60006001600160a01b03831615801590611059575061105983836117b2565b606060006129a2836132f5565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60008260000182815481106129eb576129eb613c6e565b9060005260206000200154905092915050565b60006001600160a01b0384163b15612af457604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612a42903390899088908890600401614075565b6020604051808303816000875af1925050508015612a7d575060408051601f3d908101601f19168201909252612a7a91810190614058565b60015b612ada573d808015612aab576040519150601f19603f3d011682016040523d82523d6000602084013e612ab0565b606091505b508051600003612ad25760405162461bcd60e51b815260040161093690613f5c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611829565b506001949350505050565b816001600160a01b0316836001600160a01b031603612b605760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610936565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612c0c5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612c38576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612c5657662386f26fc10000830492506010015b6305f5e1008310612c6e576305f5e100830492506008015b6127108310612c8257612710830492506004015b60648310612c94576064830492506002015b600a83106108035760010192915050565b60006001600160e01b031982166380ac58cd60e01b1480612cd657506001600160e01b03198216635b5e139f60e01b145b8061080357506108038261331d565b60606108036001600160a01b03831660145b60606000612d06836002613d3a565b612d11906002613edb565b6001600160401b03811115612d2857612d28613570565b6040519080825280601f01601f191660200182016040528015612d52576020820181803683370190505b509050600360fc1b81600081518110612d6d57612d6d613c6e565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612d9c57612d9c613c6e565b60200101906001600160f81b031916908160001a9053506000612dc0846002613d3a565b612dcb906001613edb565b90505b6001811115612e43576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612dff57612dff613c6e565b1a60f81b828281518110612e1557612e15613c6e565b60200101906001600160f81b031916908160001a90535060049490941c93612e3c81613d73565b9050612dce565b5083156110595760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610936565b6107f4828260405180602001604052806000815250611fb0565b826001600160a01b0316612ebf82610df4565b6001600160a01b031614612ee55760405162461bcd60e51b8152600401610936906140b2565b6001600160a01b038216612f475760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610936565b826001600160a01b0316612f5a82610df4565b6001600160a01b031614612f805760405162461bcd60e51b8152600401610936906140b2565b600081815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260068552838620805460001901905590871680865283862080546001019055868652600590945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600081815260018301602052604081205480156130f95760006130346001836140f7565b8554909150600090613048906001906140f7565b90508181146130ad57600086600001828154811061306857613068613c6e565b906000526020600020015490508087600001848154811061308b5761308b613c6e565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806130be576130be61410a565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610803565b6000915050610803565b6000610803613110611a5a565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806001600160ff1b0383168161314d60ff86901c601b613edb565b905061315b87828885613328565b935093505050935093915050565b600081600481111561317d5761317d614120565b036131855750565b600181600481111561319957613199614120565b036131e65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610936565b60028160048111156131fa576131fa614120565b036132475760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610936565b600381600481111561325b5761325b614120565b03610fa05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610936565b60008082516041036132e95760208301516040840151606085015160001a6132dd87828585613328565b94509450505050610b0d565b50600090506002610b0d565b600060ff8216601f81111561080357604051632cd44ac360e21b815260040160405180910390fd5b6000610803826133ec565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561335f57506000905060036133e3565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156133b3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166133dc576000600192509250506133e3565b9150600090505b94509492505050565b60006001600160e01b03198216635a05180f60e01b148061080357506108038260006001600160e01b03198216637965db0b60e01b148061080357506301ffc9a760e01b6001600160e01b0319831614610803565b60006020828403121561345357600080fd5b81356001600160401b0381111561346957600080fd5b82016060818503121561105957600080fd5b6001600160e01b031981168114610fa057600080fd5b6000602082840312156134a357600080fd5b81356110598161347b565b60005b838110156134c95781810151838201526020016134b1565b50506000910152565b600081518084526134ea8160208601602086016134ae565b601f01601f19169290920160200192915050565b60208152600061105960208301846134d2565b60006020828403121561352357600080fd5b5035919050565b80356001600160a01b038116811461354157600080fd5b919050565b6000806040838503121561355957600080fd5b6135628361352a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156135a8576135a8613570565b60405290565b604051601f8201601f191681016001600160401b03811182821017156135d6576135d6613570565b604052919050565b60006001600160401b038211156135f7576135f7613570565b5060051b60200190565b600061361461360f846135de565b6135ae565b8381529050602080820190600585811b85018781111561363357600080fd5b855b818110156137065780356001600160401b03808211156136555760008081fd5b908801906040828c03121561366a5760008081fd5b613672613586565b61367b8361352a565b8152868301358281111561368f5760008081fd5b8084019350508b601f8401126136a757600091508182fd5b823591506136b761360f836135de565b82815291861b8301870191878101908d8411156136d45760008081fd5b938801935b838510156136f2578435825293880193908801906136d9565b828901525087525050938301938301613635565b50505050509392505050565b60006020828403121561372457600080fd5b81356001600160401b0381111561373a57600080fd5b8201601f8101841361374b57600080fd5b61182984823560208401613601565b60008060006060848603121561376f57600080fd5b6137788461352a565b92506137866020850161352a565b9150604084013590509250925092565b600080604083850312156137a957600080fd5b50508035926020909101359150565b600080604083850312156137cb57600080fd5b823591506137db6020840161352a565b90509250929050565b6020808252825182820181905260009190848201906040850190845b818110156138255783516001600160a01b031683529284019291840191600101613800565b50909695505050505050565b60006020828403121561384357600080fd5b6110598261352a565b80356001600160601b038116811461354157600080fd5b60008060006060848603121561387857600080fd5b833592506138886020850161352a565b91506138966040850161384c565b90509250925092565b60006001600160401b038311156138b8576138b8613570565b6138cb601f8401601f19166020016135ae565b90508281528383830111156138df57600080fd5b828260208301376000602084830101529392505050565b60006020828403121561390857600080fd5b81356001600160401b0381111561391e57600080fd5b8201601f8101841361392f57600080fd5b6118298482356020840161389f565b600082601f83011261394f57600080fd5b6110598383356020850161389f565b6000806000806080858703121561397457600080fd5b61397d8561352a565b9350602085013592506040850135915060608501356001600160401b038111156139a657600080fd5b6139b28782880161393e565b91505092959194509250565b60ff60f81b881681526000602060e0818401526139de60e084018a6134d2565b83810360408501526139f0818a6134d2565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015613a4257835183529284019291840191600101613a26565b50909c9b505050505050505050505050565b60008060408385031215613a6757600080fd5b613a708361352a565b91506137db6020840161384c565b8015158114610fa057600080fd5b60008060408385031215613a9f57600080fd5b613aa88361352a565b91506020830135613ab881613a7e565b809150509250929050565b60008083601f840112613ad557600080fd5b5081356001600160401b03811115613aec57600080fd5b6020830191508360208260051b8501011115610b0d57600080fd5b60008060008060608587031215613b1d57600080fd5b84356001600160401b03811115613b3357600080fd5b613b3f87828801613ac3565b9095509350613b5290506020860161352a565b9150613b606040860161384c565b905092959194509250565b60008060008060808587031215613b8157600080fd5b613b8a8561352a565b9350613b986020860161352a565b92506040850135915060608501356001600160401b038111156139a657600080fd5b60008060208385031215613bcd57600080fd5b82356001600160401b03811115613be357600080fd5b613bef85828601613ac3565b90969095509350505050565b60008060408385031215613c0e57600080fd5b613c178361352a565b91506137db6020840161352a565b6000808335601e19843603018112613c3c57600080fd5b8301803591506001600160401b03821115613c5657600080fd5b6020019150600581901b3603821315610b0d57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613cac57613cac613c84565b5060010190565b600181811c90821680613cc757607f821691505b602082108103613ce757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b808202811582820484141761080357610803613c84565b600082613d6e57634e487b7160e01b600052601260045260246000fd5b500490565b600081613d8257613d82613c84565b506000190190565b601f8211156109d757600081815260208120601f850160051c81016020861015613db15750805b601f850160051c820191505b8181101561133c57828155600101613dbd565b81516001600160401b03811115613de957613de9613570565b613dfd81613df78454613cb3565b84613d8a565b602080601f831160018114613e325760008415613e1a5750858301515b600019600386901b1c1916600185901b17855561133c565b600085815260208120601f198616915b82811015613e6157888601518255948401946001909101908401613e42565b5085821015613e7f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215613ea157600080fd5b815161105981613a7e565b60008351613ebe8184602088016134ae565b835190830190613ed28183602088016134ae565b01949350505050565b8082018082111561080357610803613c84565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b80516020808301519190811015613ce75760001960209190910360031b1b16919050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613fe68160178501602088016134ae565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516140178160288401602088016134ae565b01602801949350505050565b82815260406020820152600061182960408301846134d2565b6000825161404e8184602087016134ae565b9190910192915050565b60006020828403121561406a57600080fd5b81516110598161347b565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906140a8908301846134d2565b9695505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b8181038181111561080357610803613c84565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea2646970667358221220c47aea78e02adda7e8a36138892c3ed2fc9b754ce58545603813e5750b053f0764736f6c63430008110033";
|
|
32804
33638
|
const isSuperArgs$1 = (xs) => xs.length > 1;
|
|
32805
33639
|
class ImmutableERC721MintByID__factory extends ethers.ContractFactory {
|
|
32806
33640
|
constructor(...args) {
|
|
@@ -32897,6 +33731,13 @@ class ERC721 {
|
|
|
32897
33731
|
async DEFAULT_ADMIN_ROLE(provider, overrides = {}) {
|
|
32898
33732
|
return await this.contract.connect(provider).DEFAULT_ADMIN_ROLE(overrides);
|
|
32899
33733
|
}
|
|
33734
|
+
/**
|
|
33735
|
+
* Returns the domain separator used in the encoding of the signature for permits, as defined by EIP-712
|
|
33736
|
+
* @return the bytes32 domain separator
|
|
33737
|
+
*/
|
|
33738
|
+
async DOMAIN_SEPARATOR(provider, overrides) {
|
|
33739
|
+
return await this.contract.connect(provider).DOMAIN_SEPARATOR(overrides);
|
|
33740
|
+
}
|
|
32900
33741
|
/**
|
|
32901
33742
|
* @returns the MINTER_ROLE as a string.
|
|
32902
33743
|
*/
|
|
@@ -32921,6 +33762,13 @@ class ERC721 {
|
|
|
32921
33762
|
async contractURI(provider, overrides = {}) {
|
|
32922
33763
|
return await this.contract.connect(provider).contractURI(overrides);
|
|
32923
33764
|
}
|
|
33765
|
+
/**
|
|
33766
|
+
* @dev returns the fields and values that describe the domain separator used by this contract for EIP-712
|
|
33767
|
+
* signature.
|
|
33768
|
+
*/
|
|
33769
|
+
async eip712Domain(provider, overrides) {
|
|
33770
|
+
return await this.contract.eip712Domain(overrides);
|
|
33771
|
+
}
|
|
32924
33772
|
/**
|
|
32925
33773
|
* @returns admin addresses as an array of strings.
|
|
32926
33774
|
*/
|
|
@@ -32975,6 +33823,14 @@ class ERC721 {
|
|
|
32975
33823
|
async ownerOf(provider, tokenId, overrides = {}) {
|
|
32976
33824
|
return await this.contract.connect(provider).ownerOf(tokenId, overrides);
|
|
32977
33825
|
}
|
|
33826
|
+
/**
|
|
33827
|
+
* Returns the current nonce of a given token ID.
|
|
33828
|
+
* @param tokenId The ID of the token for which to retrieve the nonce.
|
|
33829
|
+
* @return Current nonce of the given token.
|
|
33830
|
+
*/
|
|
33831
|
+
async nonces(provider, tokenId, overrides) {
|
|
33832
|
+
return await this.contract.connect(provider).nonces(tokenId, overrides);
|
|
33833
|
+
}
|
|
32978
33834
|
/**
|
|
32979
33835
|
* @returns the operator allowlist as a string.
|
|
32980
33836
|
*/
|
|
@@ -33014,6 +33870,16 @@ class ERC721 {
|
|
|
33014
33870
|
async populateApprove(to, tokenId, overrides = {}) {
|
|
33015
33871
|
return await this.contract.populateTransaction.approve(to, tokenId, overrides);
|
|
33016
33872
|
}
|
|
33873
|
+
/**
|
|
33874
|
+
* Function to approve by way of owner signature
|
|
33875
|
+
* @param spender the address to approve
|
|
33876
|
+
* @param tokenId the index of the NFT to approve the spender on
|
|
33877
|
+
* @param deadline a timestamp expiry for the permit
|
|
33878
|
+
* @param sig a traditional or EIP-2098 signature
|
|
33879
|
+
*/
|
|
33880
|
+
async populatePermit(spender, tokenId, deadline, sig, overrides = {}) {
|
|
33881
|
+
return await this.contract.populateTransaction.permit(spender, tokenId, deadline, sig, overrides);
|
|
33882
|
+
}
|
|
33017
33883
|
/**
|
|
33018
33884
|
* @returns a populated transaction for the burn contract function
|
|
33019
33885
|
*/
|
|
@@ -33232,9 +34098,7 @@ class ERC721MintByID {
|
|
|
33232
34098
|
* @returns the approved address for a token ID, or zero if no address set.
|
|
33233
34099
|
*/
|
|
33234
34100
|
async getApproved(provider, tokenId, overrides = {}) {
|
|
33235
|
-
return await this.contract
|
|
33236
|
-
.connect(provider)
|
|
33237
|
-
.getApproved(tokenId, overrides);
|
|
34101
|
+
return await this.contract.connect(provider).getApproved(tokenId, overrides);
|
|
33238
34102
|
}
|
|
33239
34103
|
/**
|
|
33240
34104
|
* @returns the role admin address.
|
|
@@ -33246,33 +34110,25 @@ class ERC721MintByID {
|
|
|
33246
34110
|
* @returns the role member address at a particular index.
|
|
33247
34111
|
*/
|
|
33248
34112
|
async getRoleMember(provider, role, index, overrides = {}) {
|
|
33249
|
-
return await this.contract
|
|
33250
|
-
.connect(provider)
|
|
33251
|
-
.getRoleMember(role, index, overrides);
|
|
34113
|
+
return await this.contract.connect(provider).getRoleMember(role, index, overrides);
|
|
33252
34114
|
}
|
|
33253
34115
|
/**
|
|
33254
34116
|
* @returns the role member count as a BigNumber.
|
|
33255
34117
|
*/
|
|
33256
34118
|
async getRoleMemberCount(provider, role, overrides = {}) {
|
|
33257
|
-
return await this.contract
|
|
33258
|
-
.connect(provider)
|
|
33259
|
-
.getRoleMemberCount(role, overrides);
|
|
34119
|
+
return await this.contract.connect(provider).getRoleMemberCount(role, overrides);
|
|
33260
34120
|
}
|
|
33261
34121
|
/**
|
|
33262
34122
|
* @returns a boolean for whether an account has a particular role.
|
|
33263
34123
|
*/
|
|
33264
34124
|
async hasRole(provider, role, account, overrides = {}) {
|
|
33265
|
-
return await this.contract
|
|
33266
|
-
.connect(provider)
|
|
33267
|
-
.hasRole(role, account, overrides);
|
|
34125
|
+
return await this.contract.connect(provider).hasRole(role, account, overrides);
|
|
33268
34126
|
}
|
|
33269
34127
|
/**
|
|
33270
34128
|
* @returns a booolean that tells whether an operator is approved by a given owner.
|
|
33271
34129
|
*/
|
|
33272
34130
|
async isApprovedForAll(provider, owner, operator, overrides = {}) {
|
|
33273
|
-
return await this.contract
|
|
33274
|
-
.connect(provider)
|
|
33275
|
-
.isApprovedForAll(owner, operator, overrides);
|
|
34131
|
+
return await this.contract.connect(provider).isApprovedForAll(owner, operator, overrides);
|
|
33276
34132
|
}
|
|
33277
34133
|
/**
|
|
33278
34134
|
* @returns the name of the contract as a string.
|
|
@@ -33286,6 +34142,14 @@ class ERC721MintByID {
|
|
|
33286
34142
|
async ownerOf(provider, tokenId, overrides = {}) {
|
|
33287
34143
|
return await this.contract.connect(provider).ownerOf(tokenId, overrides);
|
|
33288
34144
|
}
|
|
34145
|
+
/**
|
|
34146
|
+
* Returns the current nonce of a given token ID.
|
|
34147
|
+
* @param tokenId The ID of the token for which to retrieve the nonce.
|
|
34148
|
+
* @return Current nonce of the given token.
|
|
34149
|
+
*/
|
|
34150
|
+
async nonces(provider, tokenId, overrides) {
|
|
34151
|
+
return await this.contract.connect(provider).nonces(tokenId, overrides);
|
|
34152
|
+
}
|
|
33289
34153
|
/**
|
|
33290
34154
|
* @returns the operator allowlist as a string.
|
|
33291
34155
|
*/
|
|
@@ -33296,9 +34160,7 @@ class ERC721MintByID {
|
|
|
33296
34160
|
* @returns the royalty information for a particular tokenId.
|
|
33297
34161
|
*/
|
|
33298
34162
|
async royaltyInfo(provider, _tokenId, _salePrice, overrides = {}) {
|
|
33299
|
-
return await this.contract
|
|
33300
|
-
.connect(provider)
|
|
33301
|
-
.royaltyInfo(_tokenId, _salePrice, overrides);
|
|
34163
|
+
return await this.contract.connect(provider).royaltyInfo(_tokenId, _salePrice, overrides);
|
|
33302
34164
|
}
|
|
33303
34165
|
/**
|
|
33304
34166
|
* @returns the symbol of the contract as a string.
|
|
@@ -33327,6 +34189,16 @@ class ERC721MintByID {
|
|
|
33327
34189
|
async populateApprove(to, tokenId, overrides = {}) {
|
|
33328
34190
|
return await this.contract.populateTransaction.approve(to, tokenId, overrides);
|
|
33329
34191
|
}
|
|
34192
|
+
/**
|
|
34193
|
+
* Function to approve by way of owner signature
|
|
34194
|
+
* @param spender the address to approve
|
|
34195
|
+
* @param tokenId the index of the NFT to approve the spender on
|
|
34196
|
+
* @param deadline a timestamp expiry for the permit
|
|
34197
|
+
* @param sig a traditional or EIP-2098 signature
|
|
34198
|
+
*/
|
|
34199
|
+
async populatePermit(spender, tokenId, deadline, sig, overrides = {}) {
|
|
34200
|
+
return await this.contract.populateTransaction.permit(spender, tokenId, deadline, sig, overrides);
|
|
34201
|
+
}
|
|
33330
34202
|
/**
|
|
33331
34203
|
* @returns a populated transaction for the burn contract function
|
|
33332
34204
|
*/
|