@imtbl/sdk 0.12.0-alpha → 0.13.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -2420,7 +2420,7 @@ class MultiRollupApiClients {
2420
2420
  }
2421
2421
 
2422
2422
  // eslint-disable-next-line @typescript-eslint/naming-convention
2423
- const defaultHeaders$1 = { 'x-sdk-version': 'ts-immutable-sdk-0.12.0-alpha' };
2423
+ const defaultHeaders$1 = { 'x-sdk-version': 'ts-immutable-sdk-0.13.0-alpha.1' };
2424
2424
  const createConfig = ({ basePath, headers, }) => {
2425
2425
  if (!basePath.trim()) {
2426
2426
  throw Error('basePath can not be empty');
@@ -2480,7 +2480,7 @@ class APIError extends Error {
2480
2480
 
2481
2481
  /* eslint-disable implicit-arrow-linebreak */
2482
2482
  const defaultHeaders = {
2483
- sdkVersion: 'ts-immutable-sdk-multi-rollup-api-client-0.12.0-alpha',
2483
+ sdkVersion: 'ts-immutable-sdk-multi-rollup-api-client-0.13.0-alpha.1',
2484
2484
  };
2485
2485
  /**
2486
2486
  * createAPIConfiguration to create a custom Configuration
@@ -2752,7 +2752,7 @@ const createImmutableXConfiguration = ({ basePath, chainID, coreContractAddress,
2752
2752
  chainID,
2753
2753
  coreContractAddress,
2754
2754
  registrationContractAddress,
2755
- sdkVersion: 'ts-immutable-sdk-0.12.0-alpha',
2755
+ sdkVersion: 'ts-immutable-sdk-0.13.0-alpha.1',
2756
2756
  });
2757
2757
  /**
2758
2758
  * Sets `sdkVersion` at the time of build
@@ -8648,7 +8648,6 @@ class ZkEvmProvider {
8648
8648
  config;
8649
8649
  confirmationScreen;
8650
8650
  magicAdapter;
8651
- transactionAPI;
8652
8651
  multiRollupApiClients;
8653
8652
  jsonRpcProvider; // Used for read
8654
8653
  eventEmitter;
@@ -8662,9 +8661,6 @@ class ZkEvmProvider {
8662
8661
  this.magicAdapter = magicAdapter;
8663
8662
  this.config = config;
8664
8663
  this.confirmationScreen = confirmationScreen;
8665
- this.transactionAPI = new TransactionsApi(new Configuration({
8666
- basePath: this.config.imxPublicApiDomain,
8667
- }));
8668
8664
  this.jsonRpcProvider = new providers.JsonRpcProvider(this.config.zkEvmRpcUrl);
8669
8665
  this.multiRollupApiClients = multiRollupApiClients;
8670
8666
  this.eventEmitter = new TypedEventEmitter();
@@ -8709,12 +8705,7 @@ class ZkEvmProvider {
8709
8705
  accessToken: this.user.accessToken,
8710
8706
  confirmationScreen: this.confirmationScreen,
8711
8707
  imxEtherAddress: this.user.zkEvm.ethAddress,
8712
- config: new PassportConfiguration({
8713
- baseConfig: {},
8714
- clientId: 'client123',
8715
- logoutRedirectUri: 'http://localhost:3000/logout',
8716
- redirectUri: 'http://localhost:3000/redirect',
8717
- }),
8708
+ config: this.config,
8718
8709
  });
8719
8710
  this.eventEmitter.emit(ProviderEvent.ACCOUNTS_CHANGED, [this.user.zkEvm.ethAddress]);
8720
8711
  return [this.user.zkEvm.ethAddress];
@@ -9475,16 +9466,6 @@ class OrderBookClient {
9475
9466
  }
9476
9467
  }
9477
9468
 
9478
- /* istanbul ignore file */
9479
- /* tslint:disable */
9480
- /* eslint-disable */
9481
- var CreateOrderProtocolData;
9482
- (function (CreateOrderProtocolData) {
9483
- (function (order_type) {
9484
- order_type["FULL_RESTRICTED"] = "FULL_RESTRICTED";
9485
- })(CreateOrderProtocolData.order_type || (CreateOrderProtocolData.order_type = {}));
9486
- })(CreateOrderProtocolData || (CreateOrderProtocolData = {}));
9487
-
9488
9469
  /* istanbul ignore file */
9489
9470
  /* tslint:disable */
9490
9471
  /* eslint-disable */
@@ -9514,6 +9495,16 @@ var OrderStatus;
9514
9495
  OrderStatus["EXPIRED"] = "EXPIRED";
9515
9496
  })(OrderStatus || (OrderStatus = {}));
9516
9497
 
9498
+ /* istanbul ignore file */
9499
+ /* tslint:disable */
9500
+ /* eslint-disable */
9501
+ var ProtocolData;
9502
+ (function (ProtocolData) {
9503
+ (function (order_type) {
9504
+ order_type["FULL_RESTRICTED"] = "FULL_RESTRICTED";
9505
+ })(ProtocolData.order_type || (ProtocolData.order_type = {}));
9506
+ })(ProtocolData || (ProtocolData = {}));
9507
+
9517
9508
  var TransactionPurpose;
9518
9509
  (function (TransactionPurpose) {
9519
9510
  TransactionPurpose["APPROVAL"] = "APPROVAL";
@@ -9879,7 +9870,7 @@ class ImmutableApiClient {
9879
9870
  fees: makerFee ? [makerFee] : [],
9880
9871
  end_time: new Date(parseInt(`${orderComponents.endTime.toString()}000`, 10)).toISOString(),
9881
9872
  protocol_data: {
9882
- order_type: CreateOrderProtocolData.order_type.FULL_RESTRICTED,
9873
+ order_type: ProtocolData.order_type.FULL_RESTRICTED,
9883
9874
  zone_address: orderComponents.zone,
9884
9875
  seaport_address: this.seaportAddress,
9885
9876
  seaport_version: SEAPORT_CONTRACT_VERSION_V1_5,
@@ -24083,7 +24074,7 @@ const MAX_SECONDARY_FEE_BASIS_POINTS = 10000;
24083
24074
  /* Autogenerated file. Do not edit manually. */
24084
24075
  /* tslint:disable */
24085
24076
  /* eslint-disable */
24086
- const _abi$2 = [
24077
+ const _abi$2$1 = [
24087
24078
  {
24088
24079
  inputs: [],
24089
24080
  name: "getCurrentBlockTimestamp",
@@ -24183,7 +24174,7 @@ class Multicall__factory extends ethers.ContractFactory {
24183
24174
  super(...args);
24184
24175
  }
24185
24176
  else {
24186
- super(_abi$2, _bytecode$2$1, args[0]);
24177
+ super(_abi$2$1, _bytecode$2$1, args[0]);
24187
24178
  }
24188
24179
  }
24189
24180
  deploy(overrides) {
@@ -24199,12 +24190,12 @@ class Multicall__factory extends ethers.ContractFactory {
24199
24190
  return super.connect(signer);
24200
24191
  }
24201
24192
  static bytecode = _bytecode$2$1;
24202
- static abi = _abi$2;
24193
+ static abi = _abi$2$1;
24203
24194
  static createInterface() {
24204
- return new ethers.utils.Interface(_abi$2);
24195
+ return new ethers.utils.Interface(_abi$2$1);
24205
24196
  }
24206
24197
  static connect(address, signerOrProvider) {
24207
- return new ethers.Contract(address, _abi$2, signerOrProvider);
24198
+ return new ethers.Contract(address, _abi$2$1, signerOrProvider);
24208
24199
  }
24209
24200
  }
24210
24201
 
@@ -27095,6 +27086,75 @@ const $d85ad1457a3f1a83$export$db5daa1b5156ccfe = [
27095
27086
  type: "function"
27096
27087
  }
27097
27088
  ];
27089
+ const $d85ad1457a3f1a83$export$8b8be7a2a654f23e = [
27090
+ {
27091
+ constant: false,
27092
+ inputs: [
27093
+ {
27094
+ internalType: "address",
27095
+ name: "to",
27096
+ type: "address"
27097
+ },
27098
+ {
27099
+ internalType: "uint256",
27100
+ name: "tokenId",
27101
+ type: "uint256"
27102
+ }
27103
+ ],
27104
+ name: "approve",
27105
+ outputs: [],
27106
+ payable: false,
27107
+ stateMutability: "nonpayable",
27108
+ type: "function"
27109
+ },
27110
+ {
27111
+ constant: true,
27112
+ inputs: [
27113
+ {
27114
+ internalType: "address",
27115
+ name: "owner",
27116
+ type: "address"
27117
+ },
27118
+ {
27119
+ internalType: "address",
27120
+ name: "operator",
27121
+ type: "address"
27122
+ }
27123
+ ],
27124
+ name: "isApprovedForAll",
27125
+ outputs: [
27126
+ {
27127
+ internalType: "bool",
27128
+ name: "",
27129
+ type: "bool"
27130
+ }
27131
+ ],
27132
+ payable: false,
27133
+ stateMutability: "view",
27134
+ type: "function"
27135
+ },
27136
+ {
27137
+ constant: true,
27138
+ inputs: [
27139
+ {
27140
+ internalType: "uint256",
27141
+ name: "tokenId",
27142
+ type: "uint256"
27143
+ }
27144
+ ],
27145
+ name: "getApproved",
27146
+ outputs: [
27147
+ {
27148
+ internalType: "address",
27149
+ name: "",
27150
+ type: "address"
27151
+ }
27152
+ ],
27153
+ payable: false,
27154
+ stateMutability: "view",
27155
+ type: "function"
27156
+ }
27157
+ ];
27098
27158
 
27099
27159
 
27100
27160
  var $4b58188d47aafe8d$export$1fc8f52ad1810e52;
@@ -27148,6 +27208,7 @@ var $4b58188d47aafe8d$export$5d3b0ad129b9b98e;
27148
27208
  CheckoutErrorType["GET_ORDER_LISTING_ERROR"] = "GET_ORDER_LISTING_ERROR";
27149
27209
  CheckoutErrorType["SWITCH_NETWORK_UNSUPPORTED"] = "SWITCH_NETWORK_UNSUPPORTED";
27150
27210
  CheckoutErrorType["GET_ERC20_ALLOWANCE_ERROR"] = "GET_ERC20_ALLOWANCE_ERROR";
27211
+ CheckoutErrorType["GET_ERC721_ALLOWANCE_ERROR"] = "GET_ERC721_ALLOWANCE_ERROR";
27151
27212
  })($a8bc256d81a5e2c1$export$e3dc0620abde7f5a || ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a = {}));
27152
27213
  class $a8bc256d81a5e2c1$export$b722478a3cbfa3bc extends Error {
27153
27214
  message;
@@ -27867,13 +27928,31 @@ const $2499eab4caa6dc71$export$1ede6278abcdf1cb = (itemRequirements)=>{
27867
27928
  });
27868
27929
  return aggregatedItemRequirements.concat(Array.from(aggregatedMap.values()));
27869
27930
  };
27870
- const $2499eab4caa6dc71$export$c804c9ade5c28607 = (itemRequirements)=>$2499eab4caa6dc71$export$1ede6278abcdf1cb(itemRequirements);
27931
+ const $2499eab4caa6dc71$export$fa1f577106a81103 = (itemRequirements)=>{
27932
+ const aggregatedMap = new Map();
27933
+ const aggregatedItemRequirements = [];
27934
+ itemRequirements.forEach((itemRequirement)=>{
27935
+ const { type: type } = itemRequirement;
27936
+ if (type !== ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721) {
27937
+ aggregatedItemRequirements.push(itemRequirement);
27938
+ return;
27939
+ }
27940
+ const { contractAddress: contractAddress, spenderAddress: spenderAddress, id: id } = itemRequirement;
27941
+ const key = `${contractAddress}${spenderAddress}${id}`;
27942
+ const aggregateItem = aggregatedMap.get(key);
27943
+ if (!aggregateItem) aggregatedMap.set(key, {
27944
+ ...itemRequirement
27945
+ });
27946
+ });
27947
+ return aggregatedItemRequirements.concat(Array.from(aggregatedMap.values()));
27948
+ };
27949
+ const $2499eab4caa6dc71$export$c804c9ade5c28607 = (itemRequirements)=>$2499eab4caa6dc71$export$fa1f577106a81103($2499eab4caa6dc71$export$1ede6278abcdf1cb(itemRequirements));
27871
27950
 
27872
27951
 
27873
27952
 
27874
27953
 
27875
27954
 
27876
- const $95b61a5bfb091547$export$41491ea105c4dc2d = async (provider, ownerAddress, contractAddress, spenderAddress)=>{
27955
+ const $fc8b338399d890f3$export$41491ea105c4dc2d = async (provider, ownerAddress, contractAddress, spenderAddress)=>{
27877
27956
  try {
27878
27957
  const contract = new (0, ethers.Contract)(contractAddress, JSON.stringify((0, $d85ad1457a3f1a83$export$db5daa1b5156ccfe)), provider);
27879
27958
  return await contract.allowance(ownerAddress, spenderAddress);
@@ -27883,7 +27962,7 @@ const $95b61a5bfb091547$export$41491ea105c4dc2d = async (provider, ownerAddress,
27883
27962
  });
27884
27963
  }
27885
27964
  };
27886
- const $95b61a5bfb091547$export$5c6bea080a6ee647 = async (provider, ownerAddress, contractAddress, spenderAddress, amount)=>{
27965
+ const $fc8b338399d890f3$export$5c6bea080a6ee647 = async (provider, ownerAddress, contractAddress, spenderAddress, amount)=>{
27887
27966
  try {
27888
27967
  const contract = new (0, ethers.Contract)(contractAddress, JSON.stringify((0, $d85ad1457a3f1a83$export$db5daa1b5156ccfe)), provider);
27889
27968
  const approveTransaction = await contract.populateTransaction.approve(spenderAddress, amount);
@@ -27895,7 +27974,7 @@ const $95b61a5bfb091547$export$5c6bea080a6ee647 = async (provider, ownerAddress,
27895
27974
  });
27896
27975
  }
27897
27976
  };
27898
- const $95b61a5bfb091547$export$d93c00812189e36 = async (provider, ownerAddress, itemRequirements)=>{
27977
+ const $fc8b338399d890f3$export$d93c00812189e36 = async (provider, ownerAddress, itemRequirements)=>{
27899
27978
  let sufficient = true;
27900
27979
  const sufficientAllowances = [];
27901
27980
  const erc20s = new Map();
@@ -27907,8 +27986,9 @@ const $95b61a5bfb091547$export$d93c00812189e36 = async (provider, ownerAddress,
27907
27986
  for (const itemRequirement of itemRequirements){
27908
27987
  if (itemRequirement.type !== ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC20) continue;
27909
27988
  const { contractAddress: contractAddress, spenderAddress: spenderAddress } = itemRequirement;
27910
- erc20s.set(`${contractAddress}${spenderAddress}`, itemRequirement);
27911
- allowancePromises.set(`${contractAddress}${spenderAddress}`, $95b61a5bfb091547$export$41491ea105c4dc2d(provider, ownerAddress, contractAddress, spenderAddress));
27989
+ const key = `${contractAddress}${spenderAddress}`;
27990
+ erc20s.set(key, itemRequirement);
27991
+ allowancePromises.set(key, $fc8b338399d890f3$export$41491ea105c4dc2d(provider, ownerAddress, contractAddress, spenderAddress));
27912
27992
  }
27913
27993
  const allowances = await Promise.all(allowancePromises.values());
27914
27994
  const allowancePromiseIds = Array.from(allowancePromises.keys());
@@ -27927,19 +28007,21 @@ const $95b61a5bfb091547$export$d93c00812189e36 = async (provider, ownerAddress,
27927
28007
  }
27928
28008
  sufficient = false; // Set sufficient false on the root of the return object when an ERC20 is insufficient
27929
28009
  const { contractAddress: contractAddress, spenderAddress: spenderAddress } = itemRequirement;
28010
+ const key = `${contractAddress}${spenderAddress}`;
27930
28011
  const delta = itemRequirement.amount.sub(allowances[index]);
27931
28012
  // Create maps for both the insufficient ERC20 data and the transaction promises using the same key so the results can be merged
27932
- insufficientERC20s.set(`${contractAddress}${spenderAddress}`, {
28013
+ insufficientERC20s.set(key, {
28014
+ type: ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC20,
27933
28015
  sufficient: false,
27934
28016
  delta: delta,
27935
28017
  itemRequirement: itemRequirement,
27936
28018
  approvalTransaction: undefined
27937
28019
  });
27938
- transactionPromises.set(`${contractAddress}${spenderAddress}`, $95b61a5bfb091547$export$5c6bea080a6ee647(provider, ownerAddress, contractAddress, spenderAddress, delta));
28020
+ transactionPromises.set(key, $fc8b338399d890f3$export$5c6bea080a6ee647(provider, ownerAddress, contractAddress, spenderAddress, delta));
27939
28021
  }
27940
28022
  // Resolves the approval transactions and merges them with the insufficient ERC20 data
27941
28023
  const transactions = await Promise.all(transactionPromises.values());
27942
- const transactionPromiseIds = Array.from(allowancePromises.keys());
28024
+ const transactionPromiseIds = Array.from(transactionPromises.keys());
27943
28025
  transactions.forEach((transaction, index)=>{
27944
28026
  const insufficientERC20 = insufficientERC20s.get(transactionPromiseIds[index]);
27945
28027
  if (!insufficientERC20) return;
@@ -27954,16 +28036,156 @@ const $95b61a5bfb091547$export$d93c00812189e36 = async (provider, ownerAddress,
27954
28036
  };
27955
28037
 
27956
28038
 
28039
+
28040
+
28041
+
28042
+ const $35c3fc7013888ba5$export$90366d6b714c6f69 = async (provider, ownerAddress, contractAddress, spenderAddress)=>{
28043
+ try {
28044
+ const contract = new (0, ethers.Contract)(contractAddress, JSON.stringify((0, $d85ad1457a3f1a83$export$8b8be7a2a654f23e)), provider);
28045
+ return await contract.isApprovedForAll(ownerAddress, spenderAddress);
28046
+ } catch (err) {
28047
+ throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Failed to check approval for all ERC721s of collection", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
28048
+ contractAddress: contractAddress
28049
+ });
28050
+ }
28051
+ };
28052
+ const $35c3fc7013888ba5$export$ebb2a35f2b4cf5f6 = async (provider, ownerAddress, contractAddress, spenderAddress, id)=>{
28053
+ try {
28054
+ const contract = new (0, ethers.Contract)(contractAddress, JSON.stringify((0, $d85ad1457a3f1a83$export$8b8be7a2a654f23e)), provider);
28055
+ const transaction = await contract.populateTransaction.approve(spenderAddress, id);
28056
+ if (transaction) transaction.from = ownerAddress;
28057
+ return transaction;
28058
+ } catch (err) {
28059
+ throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Failed to get the approval transaction for ERC721", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
28060
+ contractAddress: contractAddress
28061
+ });
28062
+ }
28063
+ };
28064
+ const $35c3fc7013888ba5$export$c4605a8dd415eeea = async (provider, contractAddress, id)=>{
28065
+ try {
28066
+ const contract = new (0, ethers.Contract)(contractAddress, JSON.stringify((0, $d85ad1457a3f1a83$export$8b8be7a2a654f23e)), provider);
28067
+ return await contract.getApproved(id);
28068
+ } catch (err) {
28069
+ throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Failed to get approved address for ERC721", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
28070
+ contractAddress: contractAddress
28071
+ });
28072
+ }
28073
+ };
28074
+ const $35c3fc7013888ba5$export$280481f16b8b6845 = (id, contractAddress)=>{
28075
+ const parsedId = parseInt(id, 10);
28076
+ if (Number.isNaN(parsedId)) throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Invalid ERC721 ID", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
28077
+ id: id,
28078
+ contractAddress: contractAddress
28079
+ });
28080
+ return parsedId;
28081
+ };
28082
+ const $35c3fc7013888ba5$export$bc63cf1bab32d6da = async (provider, itemRequirements, owner)=>{
28083
+ const approvedCollections = new Map();
28084
+ const approvedForAllPromises = new Map();
28085
+ for (const itemRequirement of itemRequirements){
28086
+ if (itemRequirement.type !== ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721) continue;
28087
+ const { contractAddress: contractAddress, spenderAddress: spenderAddress } = itemRequirement;
28088
+ const key = `${contractAddress}-${spenderAddress}`;
28089
+ approvedCollections.set(key, false);
28090
+ if (approvedForAllPromises.has(key)) continue;
28091
+ approvedForAllPromises.set(key, $35c3fc7013888ba5$export$90366d6b714c6f69(provider, owner, contractAddress, spenderAddress));
28092
+ }
28093
+ const approvals = await Promise.all(approvedForAllPromises.values());
28094
+ const keys = Array.from(approvedForAllPromises.keys());
28095
+ approvals.forEach((approval, index)=>{
28096
+ approvedCollections.set(keys[index], approval);
28097
+ });
28098
+ return approvedCollections;
28099
+ };
28100
+ const $35c3fc7013888ba5$export$be546c525d418988 = async (provider, ownerAddress, itemRequirements)=>{
28101
+ let sufficient = true;
28102
+ const sufficientAllowances = [];
28103
+ // Setup maps to be able to link data back to the associated promises
28104
+ const erc721s = new Map();
28105
+ const approvedAddressPromises = new Map();
28106
+ const insufficientERC721s = new Map();
28107
+ const transactionPromises = new Map();
28108
+ // Check if there are any collections with approvals for all ERC721s for a given spender
28109
+ const approvedCollections = await $35c3fc7013888ba5$export$bc63cf1bab32d6da(provider, itemRequirements, ownerAddress);
28110
+ // Populate maps for both the ERC721 data and promises to get the approved addresses using the same key
28111
+ // so the promise and data can be linked together when the promise is resolved
28112
+ for (const itemRequirement of itemRequirements){
28113
+ if (itemRequirement.type !== ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721) continue;
28114
+ const { contractAddress: contractAddress, id: id, spenderAddress: spenderAddress } = itemRequirement;
28115
+ // If the collection is approved for all then just set the item requirements and sufficient true
28116
+ const approvedForAllKey = `${contractAddress}-${spenderAddress}`;
28117
+ const approvedForAll = approvedCollections.get(approvedForAllKey);
28118
+ if (approvedForAll) {
28119
+ sufficientAllowances.push({
28120
+ sufficient: true,
28121
+ itemRequirement: itemRequirement
28122
+ });
28123
+ continue;
28124
+ }
28125
+ // If collection not approved for all then check if the given ERC721 is approved for the spender
28126
+ const key = `${contractAddress}-${id}`;
28127
+ const convertedId = $35c3fc7013888ba5$export$280481f16b8b6845(id, contractAddress);
28128
+ erc721s.set(key, itemRequirement);
28129
+ approvedAddressPromises.set(key, $35c3fc7013888ba5$export$c4605a8dd415eeea(provider, contractAddress, convertedId));
28130
+ }
28131
+ const approvedAddresses = await Promise.all(approvedAddressPromises.values());
28132
+ const approvedAddressPromiseIds = Array.from(approvedAddressPromises.keys());
28133
+ // Iterate through the approved address promises and get the ERC721 data from the ERC721 map
28134
+ // If the approved address returned for that ERC721 is for the spender then just set the item requirements and sufficient true
28135
+ // If the approved address does not match the spender then return the approval transaction
28136
+ for(let index = 0; index < approvedAddresses.length; index++){
28137
+ const itemRequirement = erc721s.get(approvedAddressPromiseIds[index]);
28138
+ if (!itemRequirement || itemRequirement.type !== ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721) continue;
28139
+ if (approvedAddresses[index] === itemRequirement.spenderAddress) {
28140
+ sufficientAllowances.push({
28141
+ sufficient: true,
28142
+ itemRequirement: itemRequirement
28143
+ });
28144
+ continue;
28145
+ }
28146
+ sufficient = false; // Set sufficient false on the root of the return object when an ERC721 is insufficient
28147
+ const { contractAddress: contractAddress, id: id, spenderAddress: spenderAddress } = itemRequirement;
28148
+ const key = `${contractAddress}-${id}`;
28149
+ const convertedId = $35c3fc7013888ba5$export$280481f16b8b6845(id, contractAddress);
28150
+ // Create maps for both the insufficient ERC721 data and the transaction promises using the same key so the results can be merged
28151
+ insufficientERC721s.set(key, {
28152
+ type: ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721,
28153
+ sufficient: false,
28154
+ itemRequirement: itemRequirement,
28155
+ approvalTransaction: undefined
28156
+ });
28157
+ transactionPromises.set(key, $35c3fc7013888ba5$export$ebb2a35f2b4cf5f6(provider, ownerAddress, contractAddress, spenderAddress, convertedId));
28158
+ }
28159
+ // Resolves the approval transactions and merges them with the insufficient ERC721 data
28160
+ const transactions = await Promise.all(transactionPromises.values());
28161
+ const transactionPromiseIds = Array.from(transactionPromises.keys());
28162
+ transactions.forEach((transaction, index)=>{
28163
+ const insufficientERC721 = insufficientERC721s.get(transactionPromiseIds[index]);
28164
+ if (!insufficientERC721) return;
28165
+ if (insufficientERC721.sufficient) return;
28166
+ insufficientERC721.approvalTransaction = transaction;
28167
+ });
28168
+ // Merge the allowance arrays to get both the sufficient allowances and the insufficient ERC721 allowances
28169
+ return {
28170
+ sufficient: sufficient,
28171
+ allowances: sufficientAllowances.concat(Array.from(insufficientERC721s.values()))
28172
+ };
28173
+ };
28174
+
28175
+
28176
+
28177
+
27957
28178
  const $0e7419077c373b24$export$9e073f9ada8c81e6 = async (provider, itemRequirements, transactionOrGasAmount)=>{
27958
- const ownerAddress = await provider.getSigner().getAddress();
27959
28179
  // eslint-disable-next-line no-console
27960
28180
  console.log(provider, itemRequirements, transactionOrGasAmount);
28181
+ const ownerAddress = await provider.getSigner().getAddress();
27961
28182
  const aggregatedItems = ($2499eab4caa6dc71$export$c804c9ade5c28607)(itemRequirements);
28183
+ const erc20Allowances = await ($fc8b338399d890f3$export$d93c00812189e36)(provider, ownerAddress, aggregatedItems);
28184
+ const erc721Allowances = await ($35c3fc7013888ba5$export$be546c525d418988)(provider, ownerAddress, aggregatedItems);
27962
28185
  // eslint-disable-next-line no-console
27963
- console.log(aggregatedItems);
27964
- const erc20Allowances = await ($95b61a5bfb091547$export$d93c00812189e36)(provider, ownerAddress, aggregatedItems);
28186
+ console.log("ERC20 Allowances", erc20Allowances);
27965
28187
  // eslint-disable-next-line no-console
27966
- console.log(erc20Allowances);
28188
+ console.log("ERC721 Allowances", erc721Allowances);
27967
28189
  return {
27968
28190
  sufficient: true,
27969
28191
  transactionRequirements: [
@@ -28280,8 +28502,11 @@ var checkout_sdk = /*#__PURE__*/Object.freeze({
28280
28502
  Checkout: $a8cb37a3fc8eb863$export$1f60ba4ec72508a0,
28281
28503
  get CheckoutErrorType () { return $a8bc256d81a5e2c1$export$e3dc0620abde7f5a; },
28282
28504
  get GasEstimateType () { return $de275b98d2b651c3$export$788b1fd17f3dad84; },
28505
+ get GasTokenType () { return $4b58188d47aafe8d$export$537fa3efd10ed435; },
28506
+ get ItemType () { return $4b58188d47aafe8d$export$1fc8f52ad1810e52; },
28283
28507
  get NetworkFilterTypes () { return $a47e48dd2c04791b$export$1f05a55fe0680cc7; },
28284
28508
  get TokenFilterTypes () { return $08d5ddc39acd6833$export$fd9b17d87f4121d2; },
28509
+ get TransactionOrGasType () { return $4b58188d47aafe8d$export$65c64e46348ee3c1; },
28285
28510
  get WalletFilterTypes () { return $4f91c5f280efe242$export$a75605c67ea83a5a; },
28286
28511
  get WalletProviderName () { return $e768639828688ca3$export$2d7a51a18d87e21d; }
28287
28512
  });
@@ -28289,7 +28514,7 @@ var checkout_sdk = /*#__PURE__*/Object.freeze({
28289
28514
  function $parcel$export(e, n, v, s) {
28290
28515
  Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
28291
28516
  }
28292
- const $d663162fd5a0853f$export$38a083d9fb5551ca = "0.12.0-alpha";
28517
+ const $d663162fd5a0853f$export$38a083d9fb5551ca = "0.13.0-alpha.1";
28293
28518
  const $d663162fd5a0853f$export$83bf90b30cdfd29f = ()=>false;
28294
28519
  const $d663162fd5a0853f$export$1169f5475725171b = ()=>$d663162fd5a0853f$export$38a083d9fb5551ca;
28295
28520
 
@@ -28628,7 +28853,7 @@ var checkout_widgets = /*#__PURE__*/Object.freeze({
28628
28853
  /* Autogenerated file. Do not edit manually. */
28629
28854
  /* tslint:disable */
28630
28855
  /* eslint-disable */
28631
- const _abi$4 = [
28856
+ const _abi$5 = [
28632
28857
  {
28633
28858
  inputs: [
28634
28859
  {
@@ -28916,15 +29141,15 @@ const _abi$4 = [
28916
29141
  type: "function",
28917
29142
  },
28918
29143
  ];
28919
- const _bytecode$2 = "0x60806040523480156200001157600080fd5b50604051620017ec380380620017ec8339818101604052810190620000379190620001f6565b8160039081620000489190620004c6565b5080600490816200005a9190620004c6565b505050620005ad565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000cc8262000081565b810181811067ffffffffffffffff82111715620000ee57620000ed62000092565b5b80604052505050565b60006200010362000063565b9050620001118282620000c1565b919050565b600067ffffffffffffffff82111562000134576200013362000092565b5b6200013f8262000081565b9050602081019050919050565b60005b838110156200016c5780820151818401526020810190506200014f565b60008484015250505050565b60006200018f620001898462000116565b620000f7565b905082815260208101848484011115620001ae57620001ad6200007c565b5b620001bb8482856200014c565b509392505050565b600082601f830112620001db57620001da62000077565b5b8151620001ed84826020860162000178565b91505092915050565b6000806040838503121562000210576200020f6200006d565b5b600083015167ffffffffffffffff81111562000231576200023062000072565b5b6200023f85828601620001c3565b925050602083015167ffffffffffffffff81111562000263576200026262000072565b5b6200027185828601620001c3565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ce57607f821691505b602082108103620002e457620002e362000286565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030f565b6200035a86836200030f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a7620003a16200039b8462000372565b6200037c565b62000372565b9050919050565b6000819050919050565b620003c38362000386565b620003db620003d282620003ae565b8484546200031c565b825550505050565b600090565b620003f2620003e3565b620003ff818484620003b8565b505050565b5b8181101562000427576200041b600082620003e8565b60018101905062000405565b5050565b601f82111562000476576200044081620002ea565b6200044b84620002ff565b810160208510156200045b578190505b620004736200046a85620002ff565b83018262000404565b50505b505050565b600082821c905092915050565b60006200049b600019846008026200047b565b1980831691505092915050565b6000620004b6838362000488565b9150826002028217905092915050565b620004d1826200027b565b67ffffffffffffffff811115620004ed57620004ec62000092565b5b620004f98254620002b5565b620005068282856200042b565b600060209050601f8311600181146200053e576000841562000529578287015190505b620005358582620004a8565b865550620005a5565b601f1984166200054e86620002ea565b60005b82811015620005785784890151825560018201915060208501945060208101905062000551565b8683101562000598578489015162000594601f89168262000488565b8355505b6001600288020188555050505b505050505050565b61122f80620005bd6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b0c565b60405180910390f35b6100e660048036038101906100e19190610bc7565b610308565b6040516100f39190610c22565b60405180910390f35b61010461032b565b6040516101119190610c4c565b60405180910390f35b610134600480360381019061012f9190610c67565b610335565b6040516101419190610c22565b60405180910390f35b610152610364565b60405161015f9190610cd6565b60405180910390f35b610182600480360381019061017d9190610bc7565b61036d565b60405161018f9190610c22565b60405180910390f35b6101b260048036038101906101ad9190610cf1565b6103a4565b6040516101bf9190610c4c565b60405180910390f35b6101d06103ec565b6040516101dd9190610b0c565b60405180910390f35b61020060048036038101906101fb9190610bc7565b61047e565b60405161020d9190610c22565b60405180910390f35b610230600480360381019061022b9190610bc7565b6104f5565b60405161023d9190610c22565b60405180910390f35b610260600480360381019061025b9190610d1e565b610518565b60405161026d9190610c4c565b60405180910390f35b60606003805461028590610d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d8d565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610ded565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d8d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e93565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fb7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c4c565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611023565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611147565b60405180910390fd5b6108e5838383610a72565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111d9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a599190610c4c565b60405180910390a3610a6c848484610a77565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ab6578082015181840152602081019050610a9b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ade82610a7c565b610ae88185610a87565b9350610af8818560208601610a98565b610b0181610ac2565b840191505092915050565b60006020820190508181036000830152610b268184610ad3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b5e82610b33565b9050919050565b610b6e81610b53565b8114610b7957600080fd5b50565b600081359050610b8b81610b65565b92915050565b6000819050919050565b610ba481610b91565b8114610baf57600080fd5b50565b600081359050610bc181610b9b565b92915050565b60008060408385031215610bde57610bdd610b2e565b5b6000610bec85828601610b7c565b9250506020610bfd85828601610bb2565b9150509250929050565b60008115159050919050565b610c1c81610c07565b82525050565b6000602082019050610c376000830184610c13565b92915050565b610c4681610b91565b82525050565b6000602082019050610c616000830184610c3d565b92915050565b600080600060608486031215610c8057610c7f610b2e565b5b6000610c8e86828701610b7c565b9350506020610c9f86828701610b7c565b9250506040610cb086828701610bb2565b9150509250925092565b600060ff82169050919050565b610cd081610cba565b82525050565b6000602082019050610ceb6000830184610cc7565b92915050565b600060208284031215610d0757610d06610b2e565b5b6000610d1584828501610b7c565b91505092915050565b60008060408385031215610d3557610d34610b2e565b5b6000610d4385828601610b7c565b9250506020610d5485828601610b7c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610da557607f821691505b602082108103610db857610db7610d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610df882610b91565b9150610e0383610b91565b9250828201905080821115610e1b57610e1a610dbe565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e7d602583610a87565b9150610e8882610e21565b604082019050919050565b60006020820190508181036000830152610eac81610e70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f0f602483610a87565b9150610f1a82610eb3565b604082019050919050565b60006020820190508181036000830152610f3e81610f02565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fa1602283610a87565b9150610fac82610f45565b604082019050919050565b60006020820190508181036000830152610fd081610f94565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061100d601d83610a87565b915061101882610fd7565b602082019050919050565b6000602082019050818103600083015261103c81611000565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061109f602583610a87565b91506110aa82611043565b604082019050919050565b600060208201905081810360008301526110ce81611092565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611131602383610a87565b915061113c826110d5565b604082019050919050565b6000602082019050818103600083015261116081611124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111c3602683610a87565b91506111ce82611167565b604082019050919050565b600060208201905081810360008301526111f2816111b6565b905091905056fea26469706673582212204188b273199f085e1921ec1a1fa55abdee2e425960bda675a51fac85acd9972064736f6c63430008110033";
28920
- const isSuperArgs$2 = (xs) => xs.length > 1;
29144
+ const _bytecode$3 = "0x60806040523480156200001157600080fd5b50604051620017ec380380620017ec8339818101604052810190620000379190620001f6565b8160039081620000489190620004c6565b5080600490816200005a9190620004c6565b505050620005ad565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000cc8262000081565b810181811067ffffffffffffffff82111715620000ee57620000ed62000092565b5b80604052505050565b60006200010362000063565b9050620001118282620000c1565b919050565b600067ffffffffffffffff82111562000134576200013362000092565b5b6200013f8262000081565b9050602081019050919050565b60005b838110156200016c5780820151818401526020810190506200014f565b60008484015250505050565b60006200018f620001898462000116565b620000f7565b905082815260208101848484011115620001ae57620001ad6200007c565b5b620001bb8482856200014c565b509392505050565b600082601f830112620001db57620001da62000077565b5b8151620001ed84826020860162000178565b91505092915050565b6000806040838503121562000210576200020f6200006d565b5b600083015167ffffffffffffffff81111562000231576200023062000072565b5b6200023f85828601620001c3565b925050602083015167ffffffffffffffff81111562000263576200026262000072565b5b6200027185828601620001c3565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ce57607f821691505b602082108103620002e457620002e362000286565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030f565b6200035a86836200030f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a7620003a16200039b8462000372565b6200037c565b62000372565b9050919050565b6000819050919050565b620003c38362000386565b620003db620003d282620003ae565b8484546200031c565b825550505050565b600090565b620003f2620003e3565b620003ff818484620003b8565b505050565b5b8181101562000427576200041b600082620003e8565b60018101905062000405565b5050565b601f82111562000476576200044081620002ea565b6200044b84620002ff565b810160208510156200045b578190505b620004736200046a85620002ff565b83018262000404565b50505b505050565b600082821c905092915050565b60006200049b600019846008026200047b565b1980831691505092915050565b6000620004b6838362000488565b9150826002028217905092915050565b620004d1826200027b565b67ffffffffffffffff811115620004ed57620004ec62000092565b5b620004f98254620002b5565b620005068282856200042b565b600060209050601f8311600181146200053e576000841562000529578287015190505b620005358582620004a8565b865550620005a5565b601f1984166200054e86620002ea565b60005b82811015620005785784890151825560018201915060208501945060208101905062000551565b8683101562000598578489015162000594601f89168262000488565b8355505b6001600288020188555050505b505050505050565b61122f80620005bd6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b0c565b60405180910390f35b6100e660048036038101906100e19190610bc7565b610308565b6040516100f39190610c22565b60405180910390f35b61010461032b565b6040516101119190610c4c565b60405180910390f35b610134600480360381019061012f9190610c67565b610335565b6040516101419190610c22565b60405180910390f35b610152610364565b60405161015f9190610cd6565b60405180910390f35b610182600480360381019061017d9190610bc7565b61036d565b60405161018f9190610c22565b60405180910390f35b6101b260048036038101906101ad9190610cf1565b6103a4565b6040516101bf9190610c4c565b60405180910390f35b6101d06103ec565b6040516101dd9190610b0c565b60405180910390f35b61020060048036038101906101fb9190610bc7565b61047e565b60405161020d9190610c22565b60405180910390f35b610230600480360381019061022b9190610bc7565b6104f5565b60405161023d9190610c22565b60405180910390f35b610260600480360381019061025b9190610d1e565b610518565b60405161026d9190610c4c565b60405180910390f35b60606003805461028590610d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d8d565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610ded565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d8d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e93565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fb7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c4c565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611023565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611147565b60405180910390fd5b6108e5838383610a72565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111d9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a599190610c4c565b60405180910390a3610a6c848484610a77565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ab6578082015181840152602081019050610a9b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ade82610a7c565b610ae88185610a87565b9350610af8818560208601610a98565b610b0181610ac2565b840191505092915050565b60006020820190508181036000830152610b268184610ad3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b5e82610b33565b9050919050565b610b6e81610b53565b8114610b7957600080fd5b50565b600081359050610b8b81610b65565b92915050565b6000819050919050565b610ba481610b91565b8114610baf57600080fd5b50565b600081359050610bc181610b9b565b92915050565b60008060408385031215610bde57610bdd610b2e565b5b6000610bec85828601610b7c565b9250506020610bfd85828601610bb2565b9150509250929050565b60008115159050919050565b610c1c81610c07565b82525050565b6000602082019050610c376000830184610c13565b92915050565b610c4681610b91565b82525050565b6000602082019050610c616000830184610c3d565b92915050565b600080600060608486031215610c8057610c7f610b2e565b5b6000610c8e86828701610b7c565b9350506020610c9f86828701610b7c565b9250506040610cb086828701610bb2565b9150509250925092565b600060ff82169050919050565b610cd081610cba565b82525050565b6000602082019050610ceb6000830184610cc7565b92915050565b600060208284031215610d0757610d06610b2e565b5b6000610d1584828501610b7c565b91505092915050565b60008060408385031215610d3557610d34610b2e565b5b6000610d4385828601610b7c565b9250506020610d5485828601610b7c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610da557607f821691505b602082108103610db857610db7610d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610df882610b91565b9150610e0383610b91565b9250828201905080821115610e1b57610e1a610dbe565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e7d602583610a87565b9150610e8882610e21565b604082019050919050565b60006020820190508181036000830152610eac81610e70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f0f602483610a87565b9150610f1a82610eb3565b604082019050919050565b60006020820190508181036000830152610f3e81610f02565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fa1602283610a87565b9150610fac82610f45565b604082019050919050565b60006020820190508181036000830152610fd081610f94565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061100d601d83610a87565b915061101882610fd7565b602082019050919050565b6000602082019050818103600083015261103c81611000565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061109f602583610a87565b91506110aa82611043565b604082019050919050565b600060208201905081810360008301526110ce81611092565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611131602383610a87565b915061113c826110d5565b604082019050919050565b6000602082019050818103600083015261116081611124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111c3602683610a87565b91506111ce82611167565b604082019050919050565b600060208201905081810360008301526111f2816111b6565b905091905056fea26469706673582212204188b273199f085e1921ec1a1fa55abdee2e425960bda675a51fac85acd9972064736f6c63430008110033";
29145
+ const isSuperArgs$3 = (xs) => xs.length > 1;
28921
29146
  class ERC20__factory extends ethers.ContractFactory {
28922
29147
  constructor(...args) {
28923
- if (isSuperArgs$2(args)) {
29148
+ if (isSuperArgs$3(args)) {
28924
29149
  super(...args);
28925
29150
  }
28926
29151
  else {
28927
- super(_abi$4, _bytecode$2, args[0]);
29152
+ super(_abi$5, _bytecode$3, args[0]);
28928
29153
  }
28929
29154
  }
28930
29155
  deploy(name_, symbol_, overrides) {
@@ -28939,25 +29164,25 @@ class ERC20__factory extends ethers.ContractFactory {
28939
29164
  connect(signer) {
28940
29165
  return super.connect(signer);
28941
29166
  }
28942
- static bytecode = _bytecode$2;
28943
- static abi = _abi$4;
29167
+ static bytecode = _bytecode$3;
29168
+ static abi = _abi$5;
28944
29169
  static createInterface() {
28945
- return new ethers.utils.Interface(_abi$4);
29170
+ return new ethers.utils.Interface(_abi$5);
28946
29171
  }
28947
29172
  static connect(address, signerOrProvider) {
28948
- return new ethers.Contract(address, _abi$4, signerOrProvider);
29173
+ return new ethers.Contract(address, _abi$5, signerOrProvider);
28949
29174
  }
28950
29175
  }
28951
29176
 
28952
29177
  /* Autogenerated file. Do not edit manually. */
28953
29178
  /* tslint:disable */
28954
29179
  /* eslint-disable */
28955
- const _abi$1 = [
29180
+ const _abi$2 = [
28956
29181
  {
28957
29182
  inputs: [
28958
29183
  {
28959
29184
  internalType: "address",
28960
- name: "owner",
29185
+ name: "owner_",
28961
29186
  type: "address",
28962
29187
  },
28963
29188
  {
@@ -28982,17 +29207,17 @@ const _abi$1 = [
28982
29207
  },
28983
29208
  {
28984
29209
  internalType: "address",
28985
- name: "_royaltyAllowlist",
29210
+ name: "royaltyAllowlist_",
28986
29211
  type: "address",
28987
29212
  },
28988
29213
  {
28989
29214
  internalType: "address",
28990
- name: "_receiver",
29215
+ name: "royaltyReceiver_",
28991
29216
  type: "address",
28992
29217
  },
28993
29218
  {
28994
29219
  internalType: "uint96",
28995
- name: "_feeNumerator",
29220
+ name: "feeNumerator_",
28996
29221
  type: "uint96",
28997
29222
  },
28998
29223
  ],
@@ -29032,6 +29257,54 @@ const _abi$1 = [
29032
29257
  name: "CallerNotInAllowlist",
29033
29258
  type: "error",
29034
29259
  },
29260
+ {
29261
+ inputs: [
29262
+ {
29263
+ internalType: "uint256",
29264
+ name: "tokenId",
29265
+ type: "uint256",
29266
+ },
29267
+ ],
29268
+ name: "IImmutableERC721IDAboveThreshold",
29269
+ type: "error",
29270
+ },
29271
+ {
29272
+ inputs: [],
29273
+ name: "IImmutableERC721MismatchedTransferLengths",
29274
+ type: "error",
29275
+ },
29276
+ {
29277
+ inputs: [
29278
+ {
29279
+ internalType: "uint256",
29280
+ name: "tokenId",
29281
+ type: "uint256",
29282
+ },
29283
+ ],
29284
+ name: "IImmutableERC721NotOwnerOrOperator",
29285
+ type: "error",
29286
+ },
29287
+ {
29288
+ inputs: [],
29289
+ name: "IImmutableERC721SendingToZerothAddress",
29290
+ type: "error",
29291
+ },
29292
+ {
29293
+ inputs: [
29294
+ {
29295
+ internalType: "uint256",
29296
+ name: "tokenId",
29297
+ type: "uint256",
29298
+ },
29299
+ ],
29300
+ name: "IImmutableERC721TokenAlreadyBurned",
29301
+ type: "error",
29302
+ },
29303
+ {
29304
+ inputs: [],
29305
+ name: "RoyaltyEnforcementDoesNotImplementRequiredInterface",
29306
+ type: "error",
29307
+ },
29035
29308
  {
29036
29309
  inputs: [
29037
29310
  {
@@ -29195,7 +29468,7 @@ const _abi$1 = [
29195
29468
  type: "address",
29196
29469
  },
29197
29470
  ],
29198
- name: "RoyaltytAllowlistRegistryUpdated",
29471
+ name: "RoyaltyAllowlistRegistryUpdated",
29199
29472
  type: "event",
29200
29473
  },
29201
29474
  {
@@ -29249,38 +29522,6 @@ const _abi$1 = [
29249
29522
  stateMutability: "view",
29250
29523
  type: "function",
29251
29524
  },
29252
- {
29253
- inputs: [
29254
- {
29255
- internalType: "uint256",
29256
- name: "",
29257
- type: "uint256",
29258
- },
29259
- ],
29260
- name: "_burnedTokens",
29261
- outputs: [
29262
- {
29263
- internalType: "bool",
29264
- name: "",
29265
- type: "bool",
29266
- },
29267
- ],
29268
- stateMutability: "view",
29269
- type: "function",
29270
- },
29271
- {
29272
- inputs: [],
29273
- name: "_totalSupply",
29274
- outputs: [
29275
- {
29276
- internalType: "uint256",
29277
- name: "",
29278
- type: "uint256",
29279
- },
29280
- ],
29281
- stateMutability: "view",
29282
- type: "function",
29283
- },
29284
29525
  {
29285
29526
  inputs: [
29286
29527
  {
@@ -29334,13 +29575,126 @@ const _abi$1 = [
29334
29575
  {
29335
29576
  inputs: [
29336
29577
  {
29337
- internalType: "uint256",
29338
- name: "tokenId",
29339
- type: "uint256",
29340
- },
29341
- ],
29342
- name: "burn",
29343
- outputs: [],
29578
+ components: [
29579
+ {
29580
+ internalType: "address",
29581
+ name: "to",
29582
+ type: "address",
29583
+ },
29584
+ {
29585
+ internalType: "uint256[]",
29586
+ name: "tokenIds",
29587
+ type: "uint256[]",
29588
+ },
29589
+ ],
29590
+ internalType: "struct ERC721Hybrid.IDMint[]",
29591
+ name: "mints",
29592
+ type: "tuple[]",
29593
+ },
29594
+ ],
29595
+ name: "batchMintByIDToMultiple",
29596
+ outputs: [],
29597
+ stateMutability: "nonpayable",
29598
+ type: "function",
29599
+ },
29600
+ {
29601
+ inputs: [
29602
+ {
29603
+ components: [
29604
+ {
29605
+ internalType: "address",
29606
+ name: "to",
29607
+ type: "address",
29608
+ },
29609
+ {
29610
+ internalType: "uint256",
29611
+ name: "quantity",
29612
+ type: "uint256",
29613
+ },
29614
+ ],
29615
+ internalType: "struct ERC721Hybrid.Mint[]",
29616
+ name: "mints",
29617
+ type: "tuple[]",
29618
+ },
29619
+ ],
29620
+ name: "batchMintByQuantity",
29621
+ outputs: [],
29622
+ stateMutability: "nonpayable",
29623
+ type: "function",
29624
+ },
29625
+ {
29626
+ inputs: [
29627
+ {
29628
+ components: [
29629
+ {
29630
+ internalType: "address",
29631
+ name: "to",
29632
+ type: "address",
29633
+ },
29634
+ {
29635
+ internalType: "uint256[]",
29636
+ name: "tokenIds",
29637
+ type: "uint256[]",
29638
+ },
29639
+ ],
29640
+ internalType: "struct ERC721Hybrid.IDMint[]",
29641
+ name: "mints",
29642
+ type: "tuple[]",
29643
+ },
29644
+ ],
29645
+ name: "batchSafeMintByIDToMultiple",
29646
+ outputs: [],
29647
+ stateMutability: "nonpayable",
29648
+ type: "function",
29649
+ },
29650
+ {
29651
+ inputs: [
29652
+ {
29653
+ components: [
29654
+ {
29655
+ internalType: "address",
29656
+ name: "to",
29657
+ type: "address",
29658
+ },
29659
+ {
29660
+ internalType: "uint256",
29661
+ name: "quantity",
29662
+ type: "uint256",
29663
+ },
29664
+ ],
29665
+ internalType: "struct ERC721Hybrid.Mint[]",
29666
+ name: "mints",
29667
+ type: "tuple[]",
29668
+ },
29669
+ ],
29670
+ name: "batchSafeMintByQuantity",
29671
+ outputs: [],
29672
+ stateMutability: "nonpayable",
29673
+ type: "function",
29674
+ },
29675
+ {
29676
+ inputs: [],
29677
+ name: "bulkMintThreshold",
29678
+ outputs: [
29679
+ {
29680
+ internalType: "uint256",
29681
+ name: "",
29682
+ type: "uint256",
29683
+ },
29684
+ ],
29685
+ stateMutability: "pure",
29686
+ type: "function",
29687
+ },
29688
+ {
29689
+ inputs: [
29690
+ {
29691
+ internalType: "uint256",
29692
+ name: "tokenId",
29693
+ type: "uint256",
29694
+ },
29695
+ ],
29696
+ name: "burn",
29697
+ outputs: [],
29344
29698
  stateMutability: "nonpayable",
29345
29699
  type: "function",
29346
29700
  },
@@ -29370,6 +29724,25 @@ const _abi$1 = [
29370
29724
  stateMutability: "view",
29371
29725
  type: "function",
29372
29726
  },
29727
+ {
29728
+ inputs: [
29729
+ {
29730
+ internalType: "uint256",
29731
+ name: "tokenId",
29732
+ type: "uint256",
29733
+ },
29734
+ ],
29735
+ name: "exists",
29736
+ outputs: [
29737
+ {
29738
+ internalType: "bool",
29739
+ name: "",
29740
+ type: "bool",
29741
+ },
29742
+ ],
29743
+ stateMutability: "view",
29744
+ type: "function",
29745
+ },
29373
29746
  {
29374
29747
  inputs: [],
29375
29748
  name: "getAdmins",
@@ -29552,11 +29925,29 @@ const _abi$1 = [
29552
29925
  },
29553
29926
  {
29554
29927
  internalType: "uint256",
29555
- name: "tokenID",
29928
+ name: "tokenId",
29556
29929
  type: "uint256",
29557
29930
  },
29558
29931
  ],
29559
- name: "mint",
29932
+ name: "mintByID",
29933
+ outputs: [],
29934
+ stateMutability: "nonpayable",
29935
+ type: "function",
29936
+ },
29937
+ {
29938
+ inputs: [
29939
+ {
29940
+ internalType: "address",
29941
+ name: "to",
29942
+ type: "address",
29943
+ },
29944
+ {
29945
+ internalType: "uint256",
29946
+ name: "quantity",
29947
+ type: "uint256",
29948
+ },
29949
+ ],
29950
+ name: "mintByQuantity",
29560
29951
  outputs: [],
29561
29952
  stateMutability: "nonpayable",
29562
29953
  type: "function",
@@ -29693,11 +30084,11 @@ const _abi$1 = [
29693
30084
  },
29694
30085
  {
29695
30086
  internalType: "uint256",
29696
- name: "tokenID",
30087
+ name: "tokenId",
29697
30088
  type: "uint256",
29698
30089
  },
29699
30090
  ],
29700
- name: "safeMint",
30091
+ name: "safeMintByID",
29701
30092
  outputs: [],
29702
30093
  stateMutability: "nonpayable",
29703
30094
  type: "function",
@@ -29705,24 +30096,17 @@ const _abi$1 = [
29705
30096
  {
29706
30097
  inputs: [
29707
30098
  {
29708
- components: [
29709
- {
29710
- internalType: "address",
29711
- name: "to",
29712
- type: "address",
29713
- },
29714
- {
29715
- internalType: "uint256[]",
29716
- name: "tokenIds",
29717
- type: "uint256[]",
29718
- },
29719
- ],
29720
- internalType: "struct ImmutableERC721Base.IDMint[]",
29721
- name: "mintRequests",
29722
- type: "tuple[]",
30099
+ internalType: "address",
30100
+ name: "to",
30101
+ type: "address",
30102
+ },
30103
+ {
30104
+ internalType: "uint256",
30105
+ name: "quantity",
30106
+ type: "uint256",
29723
30107
  },
29724
30108
  ],
29725
- name: "safeMintBatch",
30109
+ name: "safeMintByQuantity",
29726
30110
  outputs: [],
29727
30111
  stateMutability: "nonpayable",
29728
30112
  type: "function",
@@ -29769,7 +30153,7 @@ const _abi$1 = [
29769
30153
  },
29770
30154
  {
29771
30155
  internalType: "bytes",
29772
- name: "data",
30156
+ name: "_data",
29773
30157
  type: "bytes",
29774
30158
  },
29775
30159
  ],
@@ -29798,7 +30182,7 @@ const _abi$1 = [
29798
30182
  type: "uint256[]",
29799
30183
  },
29800
30184
  ],
29801
- internalType: "struct ImmutableERC721Base.TransferRequest",
30185
+ internalType: "struct ERC721Hybrid.TransferRequest",
29802
30186
  name: "tr",
29803
30187
  type: "tuple",
29804
30188
  },
@@ -30017,22 +30401,22 @@ const _abi$1 = [
30017
30401
  type: "function",
30018
30402
  },
30019
30403
  ];
30020
- const _bytecode$1 = "0x60806040526000600d553480156200001657600080fd5b5060405162003f9238038062003f92833981016040819052620000399162000811565b8787878787868685856003620000508382620009a4565b5060046200005f8282620009a4565b505050620000748282620000fc60201b60201c565b6200008160008862000201565b600c6200008f8582620009a4565b50600b6200009e8482620009a4565b5050505050505050620000b88282620000fc60201b60201c565b620000c560008962000201565b620000d08362000244565b600c620000de8682620009a4565b50600b620000ed8582620009a4565b50505050505050505062000bb8565b6127106001600160601b0382161115620001705760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001c85760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000167565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b6200021882826200039160201b620013ca1760201c565b60008281526001602090815260409091206200023f9183906200144e62000432821b17901c565b505050565b6000620002518162000452565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa1580156200029d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c3919062000a70565b620003275760405162461bcd60e51b815260206004820152602d60248201527f636f6e747261637420646f6573206e6f7420696d706c656d656e742049526f7960448201526c185b1d1e505b1b1bdddb1a5cdd609a1b606482015260840162000167565b600254604080516001600160a01b03928316815291841660208301527f4a1d010d926ae0d4294a4afe61ae81bb378335fbf671e099a7138b5afeefdf84910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200042e576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003ed3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000449836001600160a01b03841662000461565b90505b92915050565b6200045e8133620004b3565b50565b6000818152600183016020526040812054620004aa575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200044c565b5060006200044c565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200042e57620004f2816200054360201b620014631760201c565b620005088360206200147562000556821b17811c565b6040516020016200051b92919062000a94565b60408051601f198184030181529082905262461bcd60e51b8252620001679160040162000b0d565b60606200044c6001600160a01b03831660145b606060006200056783600262000b58565b6200057490600262000b72565b6001600160401b038111156200058e576200058e6200072c565b6040519080825280601f01601f191660200182016040528015620005b9576020820181803683370190505b509050600360fc1b81600081518110620005d757620005d762000b88565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062000609576200060962000b88565b60200101906001600160f81b031916908160001a90535060006200062f84600262000b58565b6200063c90600162000b72565b90505b6001811115620006be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062000674576200067462000b88565b1a60f81b8282815181106200068d576200068d62000b88565b60200101906001600160f81b031916908160001a90535060049490941c93620006b68162000b9e565b90506200063f565b508315620004495760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640162000167565b80516001600160a01b03811681146200072757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200075f57818101518382015260200162000745565b50506000910152565b600082601f8301126200077a57600080fd5b81516001600160401b03808211156200079757620007976200072c565b604051601f8301601f19908116603f01168101908282118183101715620007c257620007c26200072c565b81604052838152866020858801011115620007dc57600080fd5b620007ef84602083016020890162000742565b9695505050505050565b80516001600160601b03811681146200072757600080fd5b600080600080600080600080610100898b0312156200082f57600080fd5b6200083a896200070f565b60208a01519098506001600160401b03808211156200085857600080fd5b620008668c838d0162000768565b985060408b01519150808211156200087d57600080fd5b6200088b8c838d0162000768565b975060608b0151915080821115620008a257600080fd5b620008b08c838d0162000768565b965060808b0151915080821115620008c757600080fd5b50620008d68b828c0162000768565b945050620008e760a08a016200070f565b9250620008f760c08a016200070f565b91506200090760e08a01620007f9565b90509295985092959890939650565b600181811c908216806200092b57607f821691505b6020821081036200094c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200023f57600081815260208120601f850160051c810160208610156200097b5750805b601f850160051c820191505b818110156200099c5782815560010162000987565b505050505050565b81516001600160401b03811115620009c057620009c06200072c565b620009d881620009d1845462000916565b8462000952565b602080601f83116001811462000a105760008415620009f75750858301515b600019600386901b1c1916600185901b1785556200099c565b600085815260208120601f198616915b8281101562000a415788860151825594840194600190910190840162000a20565b508582101562000a605787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a8357600080fd5b815180151581146200044957600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162000ace81601785016020880162000742565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162000b0181602884016020880162000742565b01602801949350505050565b602081526000825180602084015262000b2e81604085016020870162000742565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200044c576200044c62000b42565b808201808211156200044c576200044c62000b42565b634e487b7160e01b600052603260045260246000fd5b60008162000bb05762000bb062000b42565b506000190190565b6133ca8062000bc86000396000f3fe608060405234801561001057600080fd5b50600436106102735760003560e01c806369e2f0fb11610151578063a22cb465116100c3578063ca15c87311610087578063ca15c87314610590578063d5391393146105a3578063d547741f146105b8578063e4623c1b146105cb578063e8a3d485146105de578063e985e9c5146105e657600080fd5b8063a22cb46514610521578063a701281614610534578063b88d4fde14610547578063c720ee3e1461055a578063c87b56dd1461057d57600080fd5b80639010d07c116101155780639010d07c146104c557806391d14854146104d8578063938e3d7b146104eb57806395d89b41146104fe578063a144819414610506578063a217fddf1461051957600080fd5b806369e2f0fb146104715780636b3a0632146104845780636c0360eb1461049757806370a082311461049f578063885e7a08146104b257600080fd5b806331ae450b116101ea57806342842e0e116101ae57806342842e0e146103ff57806342966c6814610412578063439aed341461042557806355f804b3146104385780636352211e1461044b5780636588962a1461045e57600080fd5b806331ae450b146103a857806336568abe146103bd5780633dd1eb61146103d05780633eaaf86b146103e357806340c10f19146103ec57600080fd5b806318160ddd1161023c57806318160ddd14610308578063234af0461461031a57806323b872dd1461032d578063248a9ca3146103405780632a55205a146103635780632f2ff15d1461039557600080fd5b80628ad9461461027857806301ffc9a71461028d57806306fdde03146102b5578063081812fc146102ca578063095ea7b3146102f5575b600080fd5b61028b610286366004612800565b610622565b005b6102a061029b366004612850565b610752565b60405190151581526020015b60405180910390f35b6102bd610763565b6040516102ac91906128bd565b6102dd6102d83660046128d0565b6107f5565b6040516001600160a01b0390911681526020016102ac565b61028b610303366004612905565b61081c565b600d545b6040519081526020016102ac565b61028b6103283660046129c0565b610984565b61028b61033b366004612b11565b6109dc565b61030c61034e3660046128d0565b60009081526020819052604090206001015490565b610376610371366004612b4d565b610a0e565b604080516001600160a01b0390931683526020830191909152016102ac565b61028b6103a3366004612b6f565b610abc565b6103b0610ae1565b6040516102ac9190612b9b565b61028b6103cb366004612b6f565b610b8f565b61028b6103de366004612be8565b610c09565b61030c600d5481565b61028b6103fa366004612905565b610c2c565b61028b61040d366004612b11565b610c68565b61028b6104203660046128d0565b610c83565b61028b610433366004612c1a565b610cbb565b61028b610446366004612cad565b610ce4565b6102dd6104593660046128d0565b610cfb565b61028b61046c366004612be8565b610d5b565b61028b61047f366004612be8565b610ea1565b6002546102dd906001600160a01b031681565b6102bd610ec4565b61030c6104ad366004612be8565b610f52565b61028b6104c0366004612cf5565b610fd8565b6102dd6104d3366004612b4d565b610fed565b6102a06104e6366004612b6f565b61100c565b61028b6104f9366004612cad565b611035565b6102bd61104c565b61028b610514366004612905565b61105b565b61030c600081565b61028b61052f366004612d2d565b61108d565b61028b610542366004612da8565b6111f0565b61028b610555366004612e0c565b611250565b6102a06105683660046128d0565b600e6020526000908152604090205460ff1681565b6102bd61058b3660046128d0565b611282565b61030c61059e3660046128d0565b6112e8565b61030c6a4d494e5445525f524f4c4560a81b81565b61028b6105c6366004612b6f565b6112ff565b61028b6105d9366004612e87565b611324565b6102bd6113bd565b6102a06105f4366004612ec8565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b61062f6020820182612ef2565b905061063e6040830183612ef2565b9050146106b85760405162461bcd60e51b815260206004820152603760248201527f6e756d626572206f6620746f6b656e20696473206e6f74207468652073616d6560448201527f206173206e756d626572206f662072656365697665727300000000000000000060648201526084015b60405180910390fd5b60005b6106c86040830183612ef2565b905081101561074e5761073c6106e16020840184612be8565b6106ee6020850185612ef2565b848181106106fe576106fe612f3b565b90506020020160208101906107139190612be8565b6107206040860186612ef2565b8581811061073057610730612f3b565b90506020020135610c68565b8061074681612f67565b9150506106bb565b5050565b600061075d82611610565b92915050565b60606003805461077290612f80565b80601f016020809104026020016040519081016040528092919081815260200182805461079e90612f80565b80156107eb5780601f106107c0576101008083540402835291602001916107eb565b820191906000526020600020905b8154815290600101906020018083116107ce57829003601f168201915b5050505050905090565b60006108008261161b565b506000908152600760205260409020546001600160a01b031690565b60025482906001600160a01b03161561097557333b158015906108a857506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a69190612fba565b155b156108c85760405163f6fa4cbd60e01b81523360048201526024016106af565b6001600160a01b0381163b1580159061094c57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a9190612fba565b155b15610975576040516341b8d58160e11b81526001600160a01b03821660048201526024016106af565b61097f838361167d565b505050565b6a4d494e5445525f524f4c4560a81b61099c8161178d565b60005b825181101561097f576109ca8382815181106109bd576109bd612f3b565b6020026020010151611797565b806109d481612f67565b91505061099f565b6109e7335b82611847565b610a035760405162461bcd60e51b81526004016106af90612fd7565b61097f8383836118c6565b6000828152600a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a835750604080518082019091526009546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610aa2906001600160601b031687613024565b610aac919061303b565b91519350909150505b9250929050565b600082815260208190526040902060010154610ad78161178d565b61097f8383611ae0565b60606000610aee816112e8565b90506000816001600160401b03811115610b0a57610b0a61292f565b604051908082528060200260200182016040528015610b33578160200160208202803683370190505b50905060005b82811015610b8857610b4c600082610fed565b828281518110610b5e57610b5e612f3b565b6001600160a01b039092166020928302919091019091015280610b8081612f67565b915050610b39565b5092915050565b6001600160a01b0381163314610bff5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016106af565b61074e8282611b02565b6000610c148161178d565b61074e6a4d494e5445525f524f4c4560a81b83610abc565b6a4d494e5445525f524f4c4560a81b610c448161178d565b610c4e8383611b24565b600d8054906000610c5e83612f67565b9190505550505050565b61097f83838360405180602001604052806000815250611250565b610c8c81611b8d565b6000818152600e60205260408120805460ff19166001179055600d805491610cb38361305d565b919050555050565b6a4d494e5445525f524f4c4560a81b610cd38161178d565b610cde848484611bbb565b50505050565b6000610cef8161178d565b600c61097f83826130ba565b6000818152600560205260408120546001600160a01b03168061075d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106af565b6000610d668161178d565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd59190612fba565b610e375760405162461bcd60e51b815260206004820152602d60248201527f636f6e747261637420646f6573206e6f7420696d706c656d656e742049526f7960448201526c185b1d1e505b1b1bdddb1a5cdd609a1b60648201526084016106af565b600254604080516001600160a01b03928316815291841660208301527f4a1d010d926ae0d4294a4afe61ae81bb378335fbf671e099a7138b5afeefdf84910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000610eac8161178d565b61074e6a4d494e5445525f524f4c4560a81b836112ff565b600c8054610ed190612f80565b80601f0160208091040260200160405190810160405280929190818152602001828054610efd90612f80565b8015610f4a5780601f10610f1f57610100808354040283529160200191610f4a565b820191906000526020600020905b815481529060010190602001808311610f2d57829003601f168201915b505050505081565b60006001600160a01b038216610fbc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016106af565b506001600160a01b031660009081526006602052604090205490565b6000610fe38161178d565b61097f8383611c86565b60008281526001602052604081206110059083611d40565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60006110408161178d565b600b61097f83826130ba565b60606004805461077290612f80565b6a4d494e5445525f524f4c4560a81b6110738161178d565b610c4e838360405180602001604052806000815250611d4c565b60025482906001600160a01b0316156111e657333b1580159061111957506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111179190612fba565b155b156111395760405163f6fa4cbd60e01b81523360048201526024016106af565b6001600160a01b0381163b158015906111bd57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb9190612fba565b155b156111e6576040516341b8d58160e11b81526001600160a01b03821660048201526024016106af565b61097f8383611d7f565b6a4d494e5445525f524f4c4560a81b6112088161178d565b60005b848110156112485761123686868381811061122857611228612f3b565b905060200201358585611bbb565b8061124081612f67565b91505061120b565b505050505050565b61125a3383611847565b6112765760405162461bcd60e51b81526004016106af90612fd7565b610cde84848484611d8a565b606061128d8261161b565b6000611297611dbd565b905060008151116112b75760405180602001604052806000815250611005565b806112c184611dcc565b6040516020016112d2929190613179565b6040516020818303038152906040529392505050565b600081815260016020526040812061075d90611e5e565b60008281526020819052604090206001015461131a8161178d565b61097f8383611b02565b60005b818110156113a75761135083838381811061134457611344612f3b565b90506020020135611b8d565b6001600e600085858581811061136857611368612f3b565b90506020020135815260200190815260200160002060006101000a81548160ff021916908315150217905550808061139f90612f67565b915050611327565b50600d546113b69082906131a8565b600d555050565b600b8054610ed190612f80565b6113d4828261100c565b61074e576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561140a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611005836001600160a01b038416611e68565b606061075d6001600160a01b03831660145b60606000611484836002613024565b61148f9060026131bb565b6001600160401b038111156114a6576114a661292f565b6040519080825280601f01601f1916602001820160405280156114d0576020820181803683370190505b509050600360fc1b816000815181106114eb576114eb612f3b565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061151a5761151a612f3b565b60200101906001600160f81b031916908160001a905350600061153e846002613024565b6115499060016131bb565b90505b60018111156115c1576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061157d5761157d612f3b565b1a60f81b82828151811061159357611593612f3b565b60200101906001600160f81b031916908160001a90535060049490941c936115ba8161305d565b905061154c565b5083156110055760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106af565b600061075d82611eb7565b6000818152600560205260409020546001600160a01b031661167a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106af565b50565b600061168882610cfb565b9050806001600160a01b0316836001600160a01b0316036116f55760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016106af565b336001600160a01b0382161480611711575061171181336105f4565b6117835760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016106af565b61097f8383611edc565b61167a8133611f4a565b80516001600160a01b03166117e05760405162461bcd60e51b815260206004820152600f60248201526e41646472657373206973207a65726f60881b60448201526064016106af565b60005b81602001515181101561182d5761181b82600001518360200151838151811061180e5761180e612f3b565b6020026020010151611b24565b8061182581612f67565b9150506117e3565b50806020015151600d5461184191906131bb565b600d5550565b60008061185383610cfb565b9050806001600160a01b0316846001600160a01b0316148061189a57506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b806118be5750836001600160a01b03166118b3846107f5565b6001600160a01b0316145b949350505050565b600254839083906001600160a01b031615611ace5733321480159061195457506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561192e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119529190612fba565b155b156119745760405163937db65f60e01b81523360048201526024016106af565b6001600160a01b0382163b158015906119f857506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa1580156119d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f69190612fba565b155b15611a215760405163f934453160e01b81526001600160a01b03831660048201526024016106af565b6001600160a01b0381163b15801590611aa557506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa39190612fba565b155b15611ace57604051632a67242160e11b81526001600160a01b03821660048201526024016106af565b611ad9858585611fa3565b5050505050565b611aea82826113ca565b600082815260016020526040902061097f908261144e565b611b0c8282612107565b600082815260016020526040902061097f908261216c565b6000818152600e602052604090205460ff1615611b835760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206275726e65640000000060448201526064016106af565b61074e8282612181565b611b96336109e1565b611bb25760405162461bcd60e51b81526004016106af90612fd7565b61167a8161230c565b6127106001600160601b0382161115611be65760405162461bcd60e51b81526004016106af906131ce565b6001600160a01b038216611c3c5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d6574657273000000000060448201526064016106af565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600a90529190942093519051909116600160a01b029116179055565b6127106001600160601b0382161115611cb15760405162461bcd60e51b81526004016106af906131ce565b6001600160a01b038216611d075760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016106af565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b600061100583836123a1565b611d568383611b24565b611d6360008484846123cb565b61097f5760405162461bcd60e51b81526004016106af90613218565b61074e3383836124cc565b611d958484846118c6565b611da1848484846123cb565b610cde5760405162461bcd60e51b81526004016106af90613218565b6060600c805461077290612f80565b60606000611dd98361259a565b60010190506000816001600160401b03811115611df857611df861292f565b6040519080825280601f01601f191660200182016040528015611e22576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611e2c57509392505050565b600061075d825490565b6000818152600183016020526040812054611eaf5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561075d565b50600061075d565b60006001600160e01b0319821663152a902d60e11b148061075d575061075d82612672565b600081815260076020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611f1182610cfb565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611f54828261100c565b61074e57611f6181611463565b611f6c836020611475565b604051602001611f7d92919061326a565b60408051601f198184030181529082905262461bcd60e51b82526106af916004016128bd565b826001600160a01b0316611fb682610cfb565b6001600160a01b031614611fdc5760405162461bcd60e51b81526004016106af906132df565b6001600160a01b03821661203e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016106af565b826001600160a01b031661205182610cfb565b6001600160a01b0316146120775760405162461bcd60e51b81526004016106af906132df565b600081815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260068552838620805460001901905590871680865283862080546001019055868652600590945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b612111828261100c565b1561074e576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611005836001600160a01b0384166126b2565b6001600160a01b0382166121d75760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016106af565b6000818152600560205260409020546001600160a01b03161561223c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106af565b6000818152600560205260409020546001600160a01b0316156122a15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106af565b6001600160a01b038216600081815260066020908152604080832080546001019055848352600590915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600061231782610cfb565b905061232282610cfb565b600083815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526006845282852080546000190190558785526005909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60008260000182815481106123b8576123b8612f3b565b9060005260206000200154905092915050565b60006001600160a01b0384163b156124c157604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061240f903390899088908890600401613324565b6020604051808303816000875af192505050801561244a575060408051601f3d908101601f1916820190925261244791810190613361565b60015b6124a7573d808015612478576040519150601f19603f3d011682016040523d82523d6000602084013e61247d565b606091505b50805160000361249f5760405162461bcd60e51b81526004016106af90613218565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506118be565b506001949350505050565b816001600160a01b0316836001600160a01b03160361252d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016106af565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106125d95772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612605576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061262357662386f26fc10000830492506010015b6305f5e100831061263b576305f5e100830492506008015b612710831061264f57612710830492506004015b60648310612661576064830492506002015b600a831061075d5760010192915050565b60006001600160e01b031982166380ac58cd60e01b14806126a357506001600160e01b03198216635b5e139f60e01b145b8061075d575061075d826127a5565b6000818152600183016020526040812054801561279b5760006126d66001836131a8565b85549091506000906126ea906001906131a8565b905081811461274f57600086600001828154811061270a5761270a612f3b565b906000526020600020015490508087600001848154811061272d5761272d612f3b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806127605761276061337e565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061075d565b600091505061075d565b600061075d8260006001600160e01b03198216635a05180f60e01b148061075d575061075d8260006001600160e01b03198216637965db0b60e01b148061075d57506301ffc9a760e01b6001600160e01b031983161461075d565b60006020828403121561281257600080fd5b81356001600160401b0381111561282857600080fd5b82016060818503121561100557600080fd5b6001600160e01b03198116811461167a57600080fd5b60006020828403121561286257600080fd5b81356110058161283a565b60005b83811015612888578181015183820152602001612870565b50506000910152565b600081518084526128a981602086016020860161286d565b601f01601f19169290920160200192915050565b6020815260006110056020830184612891565b6000602082840312156128e257600080fd5b5035919050565b80356001600160a01b038116811461290057600080fd5b919050565b6000806040838503121561291857600080fd5b612921836128e9565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156129675761296761292f565b60405290565b604051601f8201601f191681016001600160401b03811182821017156129955761299561292f565b604052919050565b60006001600160401b038211156129b6576129b661292f565b5060051b60200190565b600060208083850312156129d357600080fd5b82356001600160401b03808211156129ea57600080fd5b818501915085601f8301126129fe57600080fd5b8135612a11612a0c8261299d565b61296d565b81815260059190911b83018401908481019088831115612a3057600080fd5b8585015b83811015612b0457803585811115612a4c5760008081fd5b86016040818c03601f1901811315612a645760008081fd5b612a6c612945565b612a778a84016128e9565b81528183013588811115612a8b5760008081fd5b8084019350508c603f840112612aa15760008081fd5b89830135612ab1612a0c8261299d565b81815260059190911b84018301908b8101908f831115612ad15760008081fd5b948401945b82861015612aef5785358252948c0194908c0190612ad6565b838d0152505085525050918601918601612a34565b5098975050505050505050565b600080600060608486031215612b2657600080fd5b612b2f846128e9565b9250612b3d602085016128e9565b9150604084013590509250925092565b60008060408385031215612b6057600080fd5b50508035926020909101359150565b60008060408385031215612b8257600080fd5b82359150612b92602084016128e9565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612bdc5783516001600160a01b031683529284019291840191600101612bb7565b50909695505050505050565b600060208284031215612bfa57600080fd5b611005826128e9565b80356001600160601b038116811461290057600080fd5b600080600060608486031215612c2f57600080fd5b83359250612c3f602085016128e9565b9150612c4d60408501612c03565b90509250925092565b60006001600160401b03831115612c6f57612c6f61292f565b612c82601f8401601f191660200161296d565b9050828152838383011115612c9657600080fd5b828260208301376000602084830101529392505050565b600060208284031215612cbf57600080fd5b81356001600160401b03811115612cd557600080fd5b8201601f81018413612ce657600080fd5b6118be84823560208401612c56565b60008060408385031215612d0857600080fd5b612d11836128e9565b9150612b9260208401612c03565b801515811461167a57600080fd5b60008060408385031215612d4057600080fd5b612d49836128e9565b91506020830135612d5981612d1f565b809150509250929050565b60008083601f840112612d7657600080fd5b5081356001600160401b03811115612d8d57600080fd5b6020830191508360208260051b8501011115610ab557600080fd5b60008060008060608587031215612dbe57600080fd5b84356001600160401b03811115612dd457600080fd5b612de087828801612d64565b9095509350612df39050602086016128e9565b9150612e0160408601612c03565b905092959194509250565b60008060008060808587031215612e2257600080fd5b612e2b856128e9565b9350612e39602086016128e9565b92506040850135915060608501356001600160401b03811115612e5b57600080fd5b8501601f81018713612e6c57600080fd5b612e7b87823560208401612c56565b91505092959194509250565b60008060208385031215612e9a57600080fd5b82356001600160401b03811115612eb057600080fd5b612ebc85828601612d64565b90969095509350505050565b60008060408385031215612edb57600080fd5b612ee4836128e9565b9150612b92602084016128e9565b6000808335601e19843603018112612f0957600080fd5b8301803591506001600160401b03821115612f2357600080fd5b6020019150600581901b3603821315610ab557600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612f7957612f79612f51565b5060010190565b600181811c90821680612f9457607f821691505b602082108103612fb457634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612fcc57600080fd5b815161100581612d1f565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b808202811582820484141761075d5761075d612f51565b60008261305857634e487b7160e01b600052601260045260246000fd5b500490565b60008161306c5761306c612f51565b506000190190565b601f82111561097f57600081815260208120601f850160051c8101602086101561309b5750805b601f850160051c820191505b81811015611248578281556001016130a7565b81516001600160401b038111156130d3576130d361292f565b6130e7816130e18454612f80565b84613074565b602080601f83116001811461311c57600084156131045750858301515b600019600386901b1c1916600185901b178555611248565b600085815260208120601f198616915b8281101561314b5788860151825594840194600190910190840161312c565b50858210156131695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000835161318b81846020880161286d565b83519083019061319f81836020880161286d565b01949350505050565b8181038181111561075d5761075d612f51565b8082018082111561075d5761075d612f51565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516132a281601785016020880161286d565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516132d381602884016020880161286d565b01602801949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061335790830184612891565b9695505050505050565b60006020828403121561337357600080fd5b81516110058161283a565b634e487b7160e01b600052603160045260246000fdfea264697066735822122006573083b437fa58c9681635170d4942384661ed89edd9510c0e1a1d6b4237d564736f6c63430008110033";
30021
- const isSuperArgs$1 = (xs) => xs.length > 1;
30022
- class ImmutableERC721PermissionedMintable__factory extends ethers.ContractFactory {
30404
+ const _bytecode$2 = "0x608060405260006013553480156200001657600080fd5b5060405162005189380380620051898339810160408190526200003991620007c0565b8787878787878787868681818181600662000055838262000953565b50600762000064828262000953565b50506801000000000000000060095550600d62000082838262000953565b50600e62000091828262000953565b50620000a69350600092508b915050620000f1565b620000b2828262000134565b620000bd8362000239565b6016620000cb868262000953565b506015620000da858262000953565b505050505050505050505050505050505062000b67565b6200010882826200034060201b6200120f1760201c565b60008281526001602090815260409091206200012f91839062001293620003e1821b17901c565b505050565b6127106001600160601b0382161115620001a85760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002005760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016200019f565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000620002468162000401565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa15801562000292573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b8919062000a1f565b620002d657604051631353be1160e11b815260040160405180910390fd5b600254604080516001600160a01b03928316815291841660208301527ff499b54d61d3fcb40299e3299af3ffe9ef1ee6e47194240f3cc5b6e09f7f6796910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620003dd576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200039c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620003f8836001600160a01b03841662000410565b90505b92915050565b6200040d813362000462565b50565b60008181526001830160205260408120546200045957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003fb565b506000620003fb565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620003dd57620004a181620004f260201b620012a81760201c565b620004b7836020620012ba62000505821b17811c565b604051602001620004ca92919062000a43565b60408051601f198184030181529082905262461bcd60e51b82526200019f9160040162000abc565b6060620003fb6001600160a01b03831660145b606060006200051683600262000b07565b6200052390600262000b21565b6001600160401b038111156200053d576200053d620006db565b6040519080825280601f01601f19166020018201604052801562000568576020820181803683370190505b509050600360fc1b8160008151811062000586576200058662000b37565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620005b857620005b862000b37565b60200101906001600160f81b031916908160001a9053506000620005de84600262000b07565b620005eb90600162000b21565b90505b60018111156200066d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062000623576200062362000b37565b1a60f81b8282815181106200063c576200063c62000b37565b60200101906001600160f81b031916908160001a90535060049490941c93620006658162000b4d565b9050620005ee565b508315620003f85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016200019f565b80516001600160a01b0381168114620006d657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200070e578181015183820152602001620006f4565b50506000910152565b600082601f8301126200072957600080fd5b81516001600160401b0380821115620007465762000746620006db565b604051601f8301601f19908116603f01168101908282118183101715620007715762000771620006db565b816040528381528660208588010111156200078b57600080fd5b6200079e846020830160208901620006f1565b9695505050505050565b80516001600160601b0381168114620006d657600080fd5b600080600080600080600080610100898b031215620007de57600080fd5b620007e989620006be565b60208a01519098506001600160401b03808211156200080757600080fd5b620008158c838d0162000717565b985060408b01519150808211156200082c57600080fd5b6200083a8c838d0162000717565b975060608b01519150808211156200085157600080fd5b6200085f8c838d0162000717565b965060808b01519150808211156200087657600080fd5b50620008858b828c0162000717565b9450506200089660a08a01620006be565b9250620008a660c08a01620006be565b9150620008b660e08a01620007a8565b90509295985092959890939650565b600181811c90821680620008da57607f821691505b602082108103620008fb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012f57600081815260208120601f850160051c810160208610156200092a5750805b601f850160051c820191505b818110156200094b5782815560010162000936565b505050505050565b81516001600160401b038111156200096f576200096f620006db565b6200098781620009808454620008c5565b8462000901565b602080601f831160018114620009bf5760008415620009a65750858301515b600019600386901b1c1916600185901b1785556200094b565b600085815260208120601f198616915b82811015620009f057888601518255948401946001909101908401620009cf565b508582101562000a0f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a3257600080fd5b81518015158114620003f857600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162000a7d816017850160208801620006f1565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162000ab0816028840160208801620006f1565b01602801949350505050565b602081526000825180602084015262000add816040850160208701620006f1565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620003fb57620003fb62000af1565b80820180821115620003fb57620003fb62000af1565b634e487b7160e01b600052603260045260246000fd5b60008162000b5f5762000b5f62000af1565b506000190190565b6146128062000b776000396000f3fe608060405234801561001057600080fd5b50600436106102ba5760003560e01c80636588962a11610182578063a7012816116100e9578063e4623c1b116100a2578063eea987681161007c578063eea9876814610648578063f5e0d8911461065b578063fa52ceec1461066e578063ff6250831461068157600080fd5b8063e4623c1b1461061a578063e8a3d4851461062d578063e985e9c51461063557600080fd5b8063a7012816146105a6578063b88d4fde146105b9578063c87b56dd146105cc578063ca15c873146105df578063d5391393146105f2578063d547741f1461060757600080fd5b80639010d07c1161013b5780639010d07c1461054a57806391d148541461055d578063938e3d7b1461057057806395d89b4114610583578063a217fddf1461058b578063a22cb4651461059357600080fd5b80636588962a146104e357806369e2f0fb146104f65780636b3a0632146105095780636c0360eb1461051c57806370a0823114610524578063885e7a081461053757600080fd5b806331ae450b116102265780634f558e79116101df5780634f558e791461047157806355f804b314610484578063567e4075146104975780635b32f935146104aa578063608a0b9d146104bd5780636352211e146104d057600080fd5b806331ae450b146103fd57806336568abe146104125780633dd1eb611461042557806342842e0e1461043857806342966c681461044b578063439aed341461045e57600080fd5b806318160ddd1161027857806318160ddd146103625780631f8ebbd11461037857806323b872dd14610382578063248a9ca3146103955780632a55205a146103b85780632f2ff15d146103ea57600080fd5b80628ad946146102bf57806301ffc9a7146102d45780630656b536146102fc57806306fdde031461030f578063081812fc14610324578063095ea7b31461034f575b600080fd5b6102d26102cd3660046137c8565b610694565b005b6102e76102e2366004613818565b61076a565b60405190151581526020015b60405180910390f35b6102d261030a3660046138dd565b61077b565b61031761079c565b6040516102f391906139ee565b610337610332366004613a01565b6107ab565b6040516001600160a01b0390911681526020016102f3565b6102d261035d366004613a1a565b6107cb565b61036a610926565b6040519081526020016102f3565b600160401b61036a565b6102d2610390366004613a44565b61093d565b61036a6103a3366004613a01565b60009081526020819052604090206001015490565b6103cb6103c6366004613a80565b61095f565b604080516001600160a01b0390931683526020830191909152016102f3565b6102d26103f8366004613aa2565b610a0d565b610405610a32565b6040516102f39190613ace565b6102d2610420366004613aa2565b610ae0565b6102d2610433366004613b1b565b610b5a565b6102d2610446366004613a44565b610b7d565b6102d2610459366004613a01565b610b98565b6102d261046c366004613b4d565b610bcf565b6102e761047f366004613a01565b610bf8565b6102d2610492366004613be0565b610c03565b6102d26104a5366004613a1a565b610c1a565b6102d26104b8366004613a1a565b610c3c565b6102d26104cb3660046138dd565b610c5e565b6103376104de366004613a01565b610c7f565b6102d26104f1366004613b1b565b610c9f565b6102d2610504366004613b1b565b610da0565b600254610337906001600160a01b031681565b610317610dc3565b61036a610532366004613b1b565b610e51565b6102d2610545366004613c28565b610e6f565b610337610558366004613a80565b610e84565b6102e761056b366004613aa2565b610ea3565b6102d261057e366004613be0565b610ecc565b610317610ee3565b61036a600081565b6102d26105a1366004613c60565b610eed565b6102d26105b4366004613cdb565b61103e565b6102d26105c7366004613d3f565b61109e565b6103176105da366004613a01565b6110c7565b61036a6105ed366004613a01565b6110d2565b61036a6a4d494e5445525f524f4c4560a81b81565b6102d2610615366004613aa2565b6110e9565b6102d2610628366004613dba565b61110e565b61031761114c565b6102e7610643366004613dfb565b611159565b6102d2610656366004613a1a565b611189565b6102d2610669366004613e25565b6111ab565b6102d261067c366004613e25565b6111cc565b6102d261068f366004613a1a565b6111ed565b6106a16020820182613f71565b90506106b06040830183613f71565b9050146106d05760405163359a1bc360e01b815260040160405180910390fd5b60005b6106e06040830183613f71565b9050811015610766576107546106f96020840184613b1b565b6107066020850185613f71565b8481811061071657610716613fba565b905060200201602081019061072b9190613b1b565b6107386040860186613f71565b8581811061074857610748613fba565b90506020020135610b7d565b8061075e81613fe6565b9150506106d3565b5050565b600061077582611455565b92915050565b6a4d494e5445525f524f4c4560a81b61079381611460565b6107668261146a565b60606107a66114b9565b905090565b6000600160401b8210156107c2576107758261154b565b61077582611572565b81333b1580159061084557506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190613fff565b155b1561086a5760405163f6fa4cbd60e01b81523360048201526024015b60405180910390fd5b6001600160a01b0381163b158015906108ee57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa1580156108c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ec9190613fff565b155b15610917576040516341b8d58160e11b81526001600160a01b0382166004820152602401610861565b61092183836115fd565b505050565b600060135461093361161d565b6107a6919061401c565b600160401b81101561095457610921838383611639565b610921838383611669565b60008281526004602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b03169282019290925282916109d45750604080518082019091526003546001600160a01b0381168252600160a01b90046001600160601b031660208201525b6020810151600090612710906109f3906001600160601b03168761402f565b6109fd9190614046565b91519350909150505b9250929050565b600082815260208190526040902060010154610a2881611460565b610921838361168e565b60606000610a3f816110d2565b90506000816001600160401b03811115610a5b57610a5b613835565b604051908082528060200260200182016040528015610a84578160200160208202803683370190505b50905060005b82811015610ad957610a9d600082610e84565b828281518110610aaf57610aaf613fba565b6001600160a01b039092166020928302919091019091015280610ad181613fe6565b915050610a8a565b5092915050565b6001600160a01b0381163314610b505760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610861565b61076682826116b0565b6000610b6581611460565b6107666a4d494e5445525f524f4c4560a81b83610a0d565b6109218383836040518060200160405280600081525061109e565b610ba3335b826116d2565b610bc357604051630247e3a960e01b815260048101829052602401610861565b610bcc816116fb565b50565b6a4d494e5445525f524f4c4560a81b610be781611460565b610bf284848461174e565b50505050565b600061077582611819565b6000610c0e81611460565b601661092183826140e8565b6a4d494e5445525f524f4c4560a81b610c3281611460565b6109218383611876565b6a4d494e5445525f524f4c4560a81b610c5481611460565b6109218383611880565b6a4d494e5445525f524f4c4560a81b610c7681611460565b61076682611907565b6000600160401b821015610c965761077582611956565b610775826119b6565b6000610caa81611460565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa158015610cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d199190613fff565b610d3657604051631353be1160e11b815260040160405180910390fd5b600254604080516001600160a01b03928316815291841660208301527ff499b54d61d3fcb40299e3299af3ffe9ef1ee6e47194240f3cc5b6e09f7f6796910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000610dab81611460565b6107666a4d494e5445525f524f4c4560a81b836110e9565b60168054610dd090614068565b80601f0160208091040260200160405190810160405280929190818152602001828054610dfc90614068565b8015610e495780601f10610e1e57610100808354040283529160200191610e49565b820191906000526020600020905b815481529060010190602001808311610e2c57829003601f168201915b505050505081565b6000610e5c826119ca565b610e6583611a95565b610775919061401c565b6000610e7a81611460565b6109218383611b1b565b6000828152600160205260408120610e9c9083611bd5565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610ed781611460565b601561092183826140e8565b60606107a6611be1565b81333b15801590610f6757506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610f41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f659190613fff565b155b15610f875760405163f6fa4cbd60e01b8152336004820152602401610861565b6001600160a01b0381163b1580159061100b57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610fe5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110099190613fff565b155b15611034576040516341b8d58160e11b81526001600160a01b0382166004820152602401610861565b6109218383611bf0565b6a4d494e5445525f524f4c4560a81b61105681611460565b60005b848110156110965761108486868381811061107657611076613fba565b90506020020135858561174e565b8061108e81613fe6565b915050611059565b505050505050565b600160401b8210156110bb576110b684848484611bfa565b610bf2565b610bf284848484611c2d565b606061077582611c52565b600081815260016020526040812061077590611cb8565b60008281526020819052604090206001015461110481611460565b61092183836116b0565b60005b818110156109215761113a83838381811061112e5761112e613fba565b90506020020135610b98565b8061114481613fe6565b915050611111565b60158054610dd090614068565b6001600160a01b03808316600090815260126020908152604080832093851683529290529081205460ff16610e9c565b6a4d494e5445525f524f4c4560a81b6111a181611460565b6109218383611cc2565b6a4d494e5445525f524f4c4560a81b6111c381611460565b61076682611ccc565b6a4d494e5445525f524f4c4560a81b6111e481611460565b61076682611d1b565b6a4d494e5445525f524f4c4560a81b61120581611460565b6109218383611d6a565b6112198282610ea3565b610766576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561124f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e9c836001600160a01b038416611dd8565b60606107756001600160a01b03831660145b606060006112c983600261402f565b6112d490600261401c565b6001600160401b038111156112eb576112eb613835565b6040519080825280601f01601f191660200182016040528015611315576020820181803683370190505b509050600360fc1b8160008151811061133057611330613fba565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061135f5761135f613fba565b60200101906001600160f81b031916908160001a905350600061138384600261402f565b61138e90600161401c565b90505b6001811115611406576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106113c2576113c2613fba565b1a60f81b8282815181106113d8576113d8613fba565b60200101906001600160f81b031916908160001a90535060049490941c936113ff816141a7565b9050611391565b508315610e9c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610861565b600061077582611e27565b610bcc8133611e67565b60005b815181101561076657600082828151811061148a5761148a613fba565b602002602001015190506114a681600001518260200151611876565b50806114b181613fe6565b91505061146d565b6060600d80546114c890614068565b80601f01602080910402602001604051908101604052809291908181526020018280546114f490614068565b80156115415780601f1061151657610100808354040283529160200191611541565b820191906000526020600020905b81548152906001019060200180831161152457829003601f168201915b5050505050905090565b600061155682611ec0565b506000908152601160205260409020546001600160a01b031690565b600061157d82611819565b6115e15760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a20617070726f76656420717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610861565b506000908152600a60205260409020546001600160a01b031690565b600160401b811015611613576107668282611f10565b6107668282612020565b6000611627612128565b61162f612192565b6107a691906141be565b61164233610b9d565b61165e5760405162461bcd60e51b8152600401610861906141d1565b6109218383836121a6565b61167233610b9d565b61165e5760405162461bcd60e51b81526004016108619061421e565b611698828261120f565b60008281526001602052604090206109219082611293565b6116ba82826123ad565b60008281526001602052604090206109219082612412565b6000600160401b8210156116f1576116ea8383612427565b9050610775565b610e9c8383612486565b600160401b811015611745576117108161254b565b600881901c60009081526014602052604081208054600160ff85161b179055601380549161173d836141a7565b919050555050565b610bcc816125ce565b6127106001600160601b03821611156117795760405162461bcd60e51b815260040161086190614272565b6001600160a01b0382166117cf5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610861565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600490529190942093519051909116600160a01b029116179055565b6000600160401b82101561186d576000828152600f60205260409020546001600160a01b0316158015906107755750600882901c600090815260146020526040902054600160ff84161b1615151592915050565b61077582612610565b6107668282612645565b600160401b81106118a75760405163b73c99f560e01b815260048101829052602401610861565b600881901c600090815260146020526040902054600160ff83161b16156118e4576040516305dcda1160e51b815260048101829052602401610861565b6118ee828261265f565b601380549060006118fe83613fe6565b91905055505050565b60005b815181101561076657600082828151811061192757611927613fba565b6020026020010151905061194381600001518260200151611cc2565b508061194e81613fe6565b91505061190a565b6000818152600f60205260408120546001600160a01b0316806107755760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610861565b6000806119c2836127ba565b509392505050565b60006001600160a01b038216611a385760405162461bcd60e51b815260206004820152602d60248201527f4552433732315073693a2062616c616e636520717565727920666f722074686560448201526c207a65726f206164647265737360981b6064820152608401610861565b6000600160401b5b600954811015610ad957611a5381611819565b15611a8557611a6181610c7f565b6001600160a01b0316846001600160a01b031603611a8557611a8282613fe6565b91505b611a8e81613fe6565b9050611a40565b60006001600160a01b038216611aff5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610861565b506001600160a01b031660009081526010602052604090205490565b6127106001600160601b0382161115611b465760405162461bcd60e51b815260040161086190614272565b6001600160a01b038216611b9c5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610861565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000610e9c8383612851565b6060600e80546114c890614068565b610766828261287b565b611c05335b836116d2565b611c215760405162461bcd60e51b8152600401610861906141d1565b610bf284848484612886565b611c3633611bff565b611c215760405162461bcd60e51b81526004016108619061421e565b6060611c5d82611ec0565b6000611c676128aa565b90506000815111611c875760405180602001604052806000815250610e9c565b80611c91846128b9565b604051602001611ca29291906142bc565b6040516020818303038152906040529392505050565b6000610775825490565b610766828261294b565b60005b8151811015610766576000828281518110611cec57611cec613fba565b60200260200101519050611d0881600001518260200151612ac4565b5080611d1381613fe6565b915050611ccf565b60005b8151811015610766576000828281518110611d3b57611d3b613fba565b60200260200101519050611d5781600001518260200151612b05565b5080611d6281613fe6565b915050611d1e565b600160401b8110611d915760405163b73c99f560e01b815260048101829052602401610861565b600881901c600090815260146020526040902054600160ff83161b1615611dce576040516305dcda1160e51b815260048101829052602401610861565b6118ee8282612b46565b6000818152600183016020526040812054611e1f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610775565b506000610775565b60006001600160e01b031982166380ac58cd60e01b1480611e5857506001600160e01b03198216635b5e139f60e01b145b80610775575061077582612b60565b611e718282610ea3565b61076657611e7e816112a8565b611e898360206112ba565b604051602001611e9a9291906142eb565b60408051601f198184030181529082905262461bcd60e51b8252610861916004016139ee565b611ec981611819565b610bcc5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610861565b6000611f1b82611956565b9050806001600160a01b0316836001600160a01b031603611f885760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610861565b336001600160a01b0382161480611fa45750611fa48133611159565b6120165760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610861565b6109218383612ba0565b600061202b82610c7f565b9050806001600160a01b0316836001600160a01b03160361209a5760405162461bcd60e51b8152602060048201526024808201527f4552433732315073693a20617070726f76616c20746f2063757272656e74206f6044820152633bb732b960e11b6064820152608401610861565b336001600160a01b03821614806120b657506120b68133611159565b6120165760405162461bcd60e51b815260206004820152603b60248201527f4552433732315073693a20617070726f76652063616c6c6572206973206e6f7460448201527f206f776e6572206e6f7220617070726f76656420666f7220616c6c00000000006064820152608401610861565b6009546000906701000000000000009082906121489060081c600161401c565b9050815b8181101561218c576000818152600c602052604090205461216c81612bc0565b612176908661401c565b945050808061218490613fe6565b91505061214c565b50505090565b6000600160401b6009546107a691906141be565b828233321480159061222157506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156121fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221f9190613fff565b155b156122415760405163937db65f60e01b8152336004820152602401610861565b6001600160a01b0382163b158015906122c557506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa15801561229f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c39190613fff565b155b156122ee5760405163f934453160e01b81526001600160a01b0383166004820152602401610861565b6001600160a01b0381163b1580159061237257506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa15801561234c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123709190613fff565b155b1561239b57604051632a67242160e11b81526001600160a01b0382166004820152602401610861565b6123a6858585612bdf565b5050505050565b6123b78282610ea3565b15610766576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e9c836001600160a01b038416612c01565b60008061243383611956565b9050806001600160a01b0316846001600160a01b0316148061245a575061245a8185611159565b8061247e5750836001600160a01b0316612473846107ab565b6001600160a01b0316145b949350505050565b600061249182611819565b6124f55760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a206f70657261746f7220717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610861565b600061250083610c7f565b9050806001600160a01b0316846001600160a01b0316148061253b5750836001600160a01b0316612530846107ab565b6001600160a01b0316145b8061247e575061247e8185611159565b600061255682611956565b905061256182611956565b600083815260116020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552601084528285208054600019019055878552600f909352818420805490911690555192935084926000805160206144bd833981519152908390a45050565b60006125d982610c7f565b90506125e6600c83612cf4565b60405182906000906001600160a01b038416906000805160206144bd833981519152908390a45050565b600881901c6000908152600c6020526040812054600160ff1b60ff84161c161561263c57506000919050565b61077582612d20565b610766828260405180602001604052806000815250612d3f565b6001600160a01b0382166126b55760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610861565b6126be81611819565b1561270b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610861565b61271481611819565b156127615760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610861565b6001600160a01b038216600081815260106020908152604080832080546001019055848352600f90915280822080546001600160a01b0319168417905551839291906000805160206144bd833981519152908290a45050565b6000806127c683611819565b6128275760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a206f776e657220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610861565b61283083612d80565b6000818152600860205260409020546001600160a01b031694909350915050565b600082600001828154811061286857612868613fba565b9060005260206000200154905092915050565b610766338383612d8d565b600160401b82101561289e576110b684848484612e5b565b610bf284848484612e8e565b6060601680546114c890614068565b606060006128c683612ea7565b60010190506000816001600160401b038111156128e5576128e5613835565b6040519080825280601f01601f19166020018201604052801561290f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461291957509392505050565b600061295660095490565b9050600082116129b65760405162461bcd60e51b815260206004820152602560248201527f4552433732315073693a207175616e74697479206d7573742062652067726561604482015264074657220360dc1b6064820152608401610861565b6001600160a01b038316612a185760405162461bcd60e51b815260206004820152602360248201527f4552433732315073693a206d696e7420746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610861565b8160096000828254612a2a919061401c565b9091555050600081815260086020526040902080546001600160a01b0319166001600160a01b038516179055612a61600582612cf4565b600080612a6e848461401c565b90506001600160a01b0385169150828260006000805160206144bd833981519152600080a4600183015b818114612abe57808360006000805160206144bd833981519152600080a4600101612a98565b506123a6565b60005b815181101561092157612af383838381518110612ae657612ae6613fba565b6020026020010151611d6a565b80612afd81613fe6565b915050612ac7565b60005b815181101561092157612b3483838381518110612b2757612b27613fba565b6020026020010151611880565b80612b3e81613fe6565b915050612b08565b610766828260405180602001604052806000815250612f7f565b60006001600160e01b031982166380ac58cd60e01b1480612b9157506001600160e01b03198216635b5e139f60e01b145b80610775575061077582612f8a565b600160401b811015612bb6576107668282612faf565b610766828261301d565b60005b8115612bda57600019820190911690600101612bc3565b919050565b600160401b811015612bf657610921838383613052565b6109218383836131a4565b60008181526001830160205260408120548015612cea576000612c256001836141be565b8554909150600090612c39906001906141be565b9050818114612c9e576000866000018281548110612c5957612c59613fba565b9060005260206000200154905080876000018481548110612c7c57612c7c613fba565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612caf57612caf614360565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610775565b6000915050610775565b600881901c600090815260209290925260409091208054600160ff1b60ff9093169290921c9091179055565b6000612d2b60095490565b82108015610775575050600160401b111590565b6000612d4a60095490565b9050612d56848461294b565b612d6460008583868661337c565b610bf25760405162461bcd60e51b815260040161086190614376565b60006107756005836134b3565b816001600160a01b0316836001600160a01b031603612dee5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610861565b6001600160a01b03838116600081815260126020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612e668484846121a6565b612e72848484846135ab565b610bf25760405162461bcd60e51b8152600401610861906143cb565b612e998484846121a6565b612d6484848460018561337c565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612ee65772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612f12576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612f3057662386f26fc10000830492506010015b6305f5e1008310612f48576305f5e100830492506008015b6127108310612f5c57612710830492506004015b60648310612f6e576064830492506002015b600a83106107755760010192915050565b6109218383836136a4565b60006001600160e01b0319821663152a902d60e11b14806107755750610775826136d7565b600081815260116020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612fe482611956565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612fe482610c7f565b826001600160a01b031661306582611956565b6001600160a01b03161461308b5760405162461bcd60e51b81526004016108619061441d565b6001600160a01b0382166130ed5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610861565b826001600160a01b031661310082611956565b6001600160a01b0316146131265760405162461bcd60e51b81526004016108619061441d565b600081815260116020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260108552838620805460001901905590871680865283862080546001019055868652600f90945282852080549092168417909155905184936000805160206144bd83398151915291a4505050565b6000806131b0836127ba565b91509150846001600160a01b0316826001600160a01b03161461322a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a207472616e73666572206f6620746f6b656e2074686160448201526b3a1034b9903737ba1037bbb760a11b6064820152608401610861565b6001600160a01b0384166132905760405162461bcd60e51b815260206004820152602760248201527f4552433732315073693a207472616e7366657220746f20746865207a65726f206044820152666164647265737360c81b6064820152608401610861565b61329b600084612ba0565b60006132a884600161401c565b600881901c600090815260056020526040902054909150600160ff1b60ff83161c161580156132d8575060095481105b1561330f57600081815260086020526040902080546001600160a01b0319166001600160a01b03881617905561330f600582612cf4565b600084815260086020526040902080546001600160a01b0319166001600160a01b03871617905581841461334857613348600585612cf4565b83856001600160a01b0316876001600160a01b03166000805160206144bd83398151915260405160405180910390a4611096565b60006001600160a01b0385163b156134a657506001835b61339d848661401c565b8110156134a057604051630a85bd0160e11b81526001600160a01b0387169063150b7a02906133d69033908b9086908990600401614462565b6020604051808303816000875af1925050508015613411575060408051601f3d908101601f1916820190925261340e9181019061449f565b60015b61346e573d80801561343f576040519150601f19603f3d011682016040523d82523d6000602084013e613444565b606091505b5080516000036134665760405162461bcd60e51b815260040161086190614376565b805181602001fd5b82801561348b57506001600160e01b03198116630a85bd0160e11b145b9250508061349881613fe6565b915050613393565b506134aa565b5060015b95945050505050565b600881901c60008181526020849052604081205490919060ff808516919082181c80156134f5576134e3816136e2565b60ff168203600884901b1793506135a2565b600083116135625760405162461bcd60e51b815260206004820152603460248201527f4269744d6170733a205468652073657420626974206265666f7265207468652060448201527334b73232bc103237b2b9b713ba1032bc34b9ba1760611b6064820152608401610861565b50600019909101600081815260208690526040902054909190801561359d5761358a816136e2565b60ff0360ff16600884901b1793506135a2565b6134f5565b50505092915050565b60006001600160a01b0384163b1561369957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906135ef903390899088908890600401614462565b6020604051808303816000875af192505050801561362a575060408051601f3d908101601f191682019092526136279181019061449f565b60015b61367f573d808015613658576040519150601f19603f3d011682016040523d82523d6000602084013e61365d565b606091505b5080516000036134665760405162461bcd60e51b8152600401610861906143cb565b6001600160e01b031916630a85bd0160e11b14905061247e565b506001949350505050565b6136ae838361374c565b6136bb60008484846135ab565b6109215760405162461bcd60e51b8152600401610861906143cb565b600061077582613756565b600060405180610120016040528061010081526020016144dd610100913960f87e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff61372b8561377b565b02901c8151811061373e5761373e613fba565b016020015160f81c92915050565b610766828261265f565b60006001600160e01b03198216635a05180f60e01b1480610775575061077582613793565b600080821161378957600080fd5b5060008190031690565b60006001600160e01b03198216637965db0b60e01b148061077557506301ffc9a760e01b6001600160e01b0319831614610775565b6000602082840312156137da57600080fd5b81356001600160401b038111156137f057600080fd5b820160608185031215610e9c57600080fd5b6001600160e01b031981168114610bcc57600080fd5b60006020828403121561382a57600080fd5b8135610e9c81613802565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561386d5761386d613835565b60405290565b604051601f8201601f191681016001600160401b038111828210171561389b5761389b613835565b604052919050565b60006001600160401b038211156138bc576138bc613835565b5060051b60200190565b80356001600160a01b0381168114612bda57600080fd5b600060208083850312156138f057600080fd5b82356001600160401b0381111561390657600080fd5b8301601f8101851361391757600080fd5b803561392a613925826138a3565b613873565b81815260069190911b8201830190838101908783111561394957600080fd5b928401925b8284101561399357604084890312156139675760008081fd5b61396f61384b565b613978856138c6565b8152848601358682015282526040909301929084019061394e565b979650505050505050565b60005b838110156139b95781810151838201526020016139a1565b50506000910152565b600081518084526139da81602086016020860161399e565b601f01601f19169290920160200192915050565b602081526000610e9c60208301846139c2565b600060208284031215613a1357600080fd5b5035919050565b60008060408385031215613a2d57600080fd5b613a36836138c6565b946020939093013593505050565b600080600060608486031215613a5957600080fd5b613a62846138c6565b9250613a70602085016138c6565b9150604084013590509250925092565b60008060408385031215613a9357600080fd5b50508035926020909101359150565b60008060408385031215613ab557600080fd5b82359150613ac5602084016138c6565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015613b0f5783516001600160a01b031683529284019291840191600101613aea565b50909695505050505050565b600060208284031215613b2d57600080fd5b610e9c826138c6565b80356001600160601b0381168114612bda57600080fd5b600080600060608486031215613b6257600080fd5b83359250613b72602085016138c6565b9150613b8060408501613b36565b90509250925092565b60006001600160401b03831115613ba257613ba2613835565b613bb5601f8401601f1916602001613873565b9050828152838383011115613bc957600080fd5b828260208301376000602084830101529392505050565b600060208284031215613bf257600080fd5b81356001600160401b03811115613c0857600080fd5b8201601f81018413613c1957600080fd5b61247e84823560208401613b89565b60008060408385031215613c3b57600080fd5b613c44836138c6565b9150613ac560208401613b36565b8015158114610bcc57600080fd5b60008060408385031215613c7357600080fd5b613c7c836138c6565b91506020830135613c8c81613c52565b809150509250929050565b60008083601f840112613ca957600080fd5b5081356001600160401b03811115613cc057600080fd5b6020830191508360208260051b8501011115610a0657600080fd5b60008060008060608587031215613cf157600080fd5b84356001600160401b03811115613d0757600080fd5b613d1387828801613c97565b9095509350613d269050602086016138c6565b9150613d3460408601613b36565b905092959194509250565b60008060008060808587031215613d5557600080fd5b613d5e856138c6565b9350613d6c602086016138c6565b92506040850135915060608501356001600160401b03811115613d8e57600080fd5b8501601f81018713613d9f57600080fd5b613dae87823560208401613b89565b91505092959194509250565b60008060208385031215613dcd57600080fd5b82356001600160401b03811115613de357600080fd5b613def85828601613c97565b90969095509350505050565b60008060408385031215613e0e57600080fd5b613e17836138c6565b9150613ac5602084016138c6565b60006020808385031215613e3857600080fd5b82356001600160401b0380821115613e4f57600080fd5b818501915085601f830112613e6357600080fd5b8135613e71613925826138a3565b81815260059190911b83018401908481019088831115613e9057600080fd5b8585015b83811015613f6457803585811115613eac5760008081fd5b86016040818c03601f1901811315613ec45760008081fd5b613ecc61384b565b613ed78a84016138c6565b81528183013588811115613eeb5760008081fd5b8084019350508c603f840112613f015760008081fd5b89830135613f11613925826138a3565b81815260059190911b84018301908b8101908f831115613f315760008081fd5b948401945b82861015613f4f5785358252948c0194908c0190613f36565b838d0152505085525050918601918601613e94565b5098975050505050505050565b6000808335601e19843603018112613f8857600080fd5b8301803591506001600160401b03821115613fa257600080fd5b6020019150600581901b3603821315610a0657600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613ff857613ff8613fd0565b5060010190565b60006020828403121561401157600080fd5b8151610e9c81613c52565b8082018082111561077557610775613fd0565b808202811582820484141761077557610775613fd0565b60008261406357634e487b7160e01b600052601260045260246000fd5b500490565b600181811c9082168061407c57607f821691505b60208210810361409c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561092157600081815260208120601f850160051c810160208610156140c95750805b601f850160051c820191505b81811015611096578281556001016140d5565b81516001600160401b0381111561410157614101613835565b6141158161410f8454614068565b846140a2565b602080601f83116001811461414a57600084156141325750858301515b600019600386901b1c1916600185901b178555611096565b600085815260208120601f198616915b828110156141795788860151825594840194600190910190840161415a565b50858210156141975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000816141b6576141b6613fd0565b506000190190565b8181038181111561077557610775613fd0565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526034908201527f4552433732315073693a207472616e736665722063616c6c6572206973206e6f6040820152731d081bdddb995c881b9bdc88185c1c1c9bdd995960621b606082015260800190565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b600083516142ce81846020880161399e565b8351908301906142e281836020880161399e565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161432381601785016020880161399e565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161435481602884016020880161399e565b01602801949350505050565b634e487b7160e01b600052603160045260246000fd5b60208082526035908201527f4552433732315073693a207472616e7366657220746f206e6f6e20455243373260408201527418a932b1b2b4bb32b91034b6b83632b6b2b73a32b960591b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614495908301846139c2565b9695505050505050565b6000602082840312156144b157600080fd5b8151610e9c8161380256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0001020903110a19042112290b311a3905412245134d2a550c5d32651b6d3a7506264262237d468514804e8d2b95569d0d495ea533a966b11c886eb93bc176c9071727374353637324837e9b47af86c7155181ad4fd18ed32c9096db57d59ee30e2e4a6a5f92a6be3498aae067ddb2eb1d5989b56fd7baf33ca0c2ee77e5caf7ff0810182028303840444c545c646c7425617c847f8c949c48a4a8b087b8c0c816365272829aaec650acd0d28fdad4e22d6991bd97dfdcea58b4d6f29fede4f6fe0f1f2f3f4b5b6b607b8b93a3a7b7bf357199c5abcfd9e168bcdee9b3f1ecf5fd1e3e5a7a8aa2b670c4ced8bbe8f0f4fc3d79a1c3cde7effb78cce6facbf9f8a2646970667358221220216dd955505e933a17e6f45acb29b390eaf7241d0e86fad51fe9b9e3417836e264736f6c63430008110033";
30405
+ const isSuperArgs$2 = (xs) => xs.length > 1;
30406
+ class ImmutableERC721HybridPermissionedMintable__factory extends ethers.ContractFactory {
30023
30407
  constructor(...args) {
30024
- if (isSuperArgs$1(args)) {
30408
+ if (isSuperArgs$2(args)) {
30025
30409
  super(...args);
30026
30410
  }
30027
30411
  else {
30028
- super(_abi$1, _bytecode$1, args[0]);
30412
+ super(_abi$2, _bytecode$2, args[0]);
30029
30413
  }
30030
30414
  }
30031
- deploy(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides) {
30032
- return super.deploy(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides || {});
30415
+ deploy(owner_, name_, symbol_, baseURI_, contractURI_, royaltyAllowlist_, royaltyReceiver_, feeNumerator_, overrides) {
30416
+ return super.deploy(owner_, name_, symbol_, baseURI_, contractURI_, royaltyAllowlist_, royaltyReceiver_, feeNumerator_, overrides || {});
30033
30417
  }
30034
- getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides) {
30035
- return super.getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides || {});
30418
+ getDeployTransaction(owner_, name_, symbol_, baseURI_, contractURI_, royaltyAllowlist_, royaltyReceiver_, feeNumerator_, overrides) {
30419
+ return super.getDeployTransaction(owner_, name_, symbol_, baseURI_, contractURI_, royaltyAllowlist_, royaltyReceiver_, feeNumerator_, overrides || {});
30036
30420
  }
30037
30421
  attach(address) {
30038
30422
  return super.attach(address);
@@ -30040,63 +30424,1465 @@ class ImmutableERC721PermissionedMintable__factory extends ethers.ContractFactor
30040
30424
  connect(signer) {
30041
30425
  return super.connect(signer);
30042
30426
  }
30043
- static bytecode = _bytecode$1;
30044
- static abi = _abi$1;
30427
+ static bytecode = _bytecode$2;
30428
+ static abi = _abi$2;
30045
30429
  static createInterface() {
30046
- return new ethers.utils.Interface(_abi$1);
30430
+ return new ethers.utils.Interface(_abi$2);
30047
30431
  }
30048
30432
  static connect(address, signerOrProvider) {
30049
- return new ethers.Contract(address, _abi$1, signerOrProvider);
30050
- }
30051
- }
30052
-
30053
- class ERC20 {
30054
- contract;
30055
- constructor(contractAddress) {
30056
- const factory = new ERC20__factory();
30057
- this.contract = factory.attach(contractAddress);
30058
- }
30059
- /**
30060
- * @returns a promise that resolves with a BigNumber that represents the amount of tokens in existence
30061
- */
30062
- async totalSupply(provider, overrides = {}) {
30063
- return this.contract.connect(provider).totalSupply(overrides);
30064
- }
30065
- /**
30066
- * @returns a promise that resolves with a BigNumber that represents the amount of tokens owned by account
30067
- */
30068
- async balanceOf(provider, account, overrides = {}) {
30069
- return this.contract.connect(provider).balanceOf(account, overrides);
30070
- }
30071
- /**
30072
- * @returns a promise that resolves with a BigNumber that represents the remaining number of tokens that spender will be allowed to spend on behalf of owner through transferFrom
30073
- */
30074
- async allowance(provider, owner, spender, overrides = {}) {
30075
- return this.contract.connect(provider).allowance(owner, spender, overrides);
30076
- }
30077
- /**
30078
- * @returns a promise that resolves with a populated transaction
30079
- */
30080
- async populateTransfer(to, amount, overrides) {
30081
- return this.contract.populateTransaction.transfer(to, amount, overrides);
30082
- }
30083
- /**
30084
- * @returns a promise that resolves with a populated transaction
30085
- */
30086
- async populateApprove(spender, amount, overrides = {}) {
30087
- return this.contract.populateTransaction.approve(spender, amount, overrides);
30088
- }
30089
- /**
30090
- * @returns a promise that resolves with a populated transaction
30091
- */
30092
- async populateTransferFrom(from, to, amount, overrides = {}) {
30093
- return this.contract.populateTransaction.transferFrom(from, to, amount, overrides);
30433
+ return new ethers.Contract(address, _abi$2, signerOrProvider);
30094
30434
  }
30095
30435
  }
30096
30436
 
30097
- var erc20 = /*#__PURE__*/Object.freeze({
30098
- __proto__: null,
30099
- ERC20: ERC20
30437
+ /* Autogenerated file. Do not edit manually. */
30438
+ /* tslint:disable */
30439
+ /* eslint-disable */
30440
+ const _abi$1 = [
30441
+ {
30442
+ inputs: [
30443
+ {
30444
+ internalType: "address",
30445
+ name: "owner",
30446
+ type: "address",
30447
+ },
30448
+ {
30449
+ internalType: "string",
30450
+ name: "name_",
30451
+ type: "string",
30452
+ },
30453
+ {
30454
+ internalType: "string",
30455
+ name: "symbol_",
30456
+ type: "string",
30457
+ },
30458
+ {
30459
+ internalType: "string",
30460
+ name: "baseURI_",
30461
+ type: "string",
30462
+ },
30463
+ {
30464
+ internalType: "string",
30465
+ name: "contractURI_",
30466
+ type: "string",
30467
+ },
30468
+ {
30469
+ internalType: "address",
30470
+ name: "_royaltyAllowlist",
30471
+ type: "address",
30472
+ },
30473
+ {
30474
+ internalType: "address",
30475
+ name: "_receiver",
30476
+ type: "address",
30477
+ },
30478
+ {
30479
+ internalType: "uint96",
30480
+ name: "_feeNumerator",
30481
+ type: "uint96",
30482
+ },
30483
+ ],
30484
+ stateMutability: "nonpayable",
30485
+ type: "constructor",
30486
+ },
30487
+ {
30488
+ inputs: [
30489
+ {
30490
+ internalType: "address",
30491
+ name: "target",
30492
+ type: "address",
30493
+ },
30494
+ ],
30495
+ name: "ApproveTargetNotInAllowlist",
30496
+ type: "error",
30497
+ },
30498
+ {
30499
+ inputs: [
30500
+ {
30501
+ internalType: "address",
30502
+ name: "approver",
30503
+ type: "address",
30504
+ },
30505
+ ],
30506
+ name: "ApproverNotInAllowlist",
30507
+ type: "error",
30508
+ },
30509
+ {
30510
+ inputs: [
30511
+ {
30512
+ internalType: "address",
30513
+ name: "caller",
30514
+ type: "address",
30515
+ },
30516
+ ],
30517
+ name: "CallerNotInAllowlist",
30518
+ type: "error",
30519
+ },
30520
+ {
30521
+ inputs: [
30522
+ {
30523
+ internalType: "address",
30524
+ name: "from",
30525
+ type: "address",
30526
+ },
30527
+ ],
30528
+ name: "TransferFromNotInAllowlist",
30529
+ type: "error",
30530
+ },
30531
+ {
30532
+ inputs: [
30533
+ {
30534
+ internalType: "address",
30535
+ name: "to",
30536
+ type: "address",
30537
+ },
30538
+ ],
30539
+ name: "TransferToNotInAllowlist",
30540
+ type: "error",
30541
+ },
30542
+ {
30543
+ anonymous: false,
30544
+ inputs: [
30545
+ {
30546
+ indexed: true,
30547
+ internalType: "address",
30548
+ name: "owner",
30549
+ type: "address",
30550
+ },
30551
+ {
30552
+ indexed: true,
30553
+ internalType: "address",
30554
+ name: "approved",
30555
+ type: "address",
30556
+ },
30557
+ {
30558
+ indexed: true,
30559
+ internalType: "uint256",
30560
+ name: "tokenId",
30561
+ type: "uint256",
30562
+ },
30563
+ ],
30564
+ name: "Approval",
30565
+ type: "event",
30566
+ },
30567
+ {
30568
+ anonymous: false,
30569
+ inputs: [
30570
+ {
30571
+ indexed: true,
30572
+ internalType: "address",
30573
+ name: "owner",
30574
+ type: "address",
30575
+ },
30576
+ {
30577
+ indexed: true,
30578
+ internalType: "address",
30579
+ name: "operator",
30580
+ type: "address",
30581
+ },
30582
+ {
30583
+ indexed: false,
30584
+ internalType: "bool",
30585
+ name: "approved",
30586
+ type: "bool",
30587
+ },
30588
+ ],
30589
+ name: "ApprovalForAll",
30590
+ type: "event",
30591
+ },
30592
+ {
30593
+ anonymous: false,
30594
+ inputs: [
30595
+ {
30596
+ indexed: true,
30597
+ internalType: "bytes32",
30598
+ name: "role",
30599
+ type: "bytes32",
30600
+ },
30601
+ {
30602
+ indexed: true,
30603
+ internalType: "bytes32",
30604
+ name: "previousAdminRole",
30605
+ type: "bytes32",
30606
+ },
30607
+ {
30608
+ indexed: true,
30609
+ internalType: "bytes32",
30610
+ name: "newAdminRole",
30611
+ type: "bytes32",
30612
+ },
30613
+ ],
30614
+ name: "RoleAdminChanged",
30615
+ type: "event",
30616
+ },
30617
+ {
30618
+ anonymous: false,
30619
+ inputs: [
30620
+ {
30621
+ indexed: true,
30622
+ internalType: "bytes32",
30623
+ name: "role",
30624
+ type: "bytes32",
30625
+ },
30626
+ {
30627
+ indexed: true,
30628
+ internalType: "address",
30629
+ name: "account",
30630
+ type: "address",
30631
+ },
30632
+ {
30633
+ indexed: true,
30634
+ internalType: "address",
30635
+ name: "sender",
30636
+ type: "address",
30637
+ },
30638
+ ],
30639
+ name: "RoleGranted",
30640
+ type: "event",
30641
+ },
30642
+ {
30643
+ anonymous: false,
30644
+ inputs: [
30645
+ {
30646
+ indexed: true,
30647
+ internalType: "bytes32",
30648
+ name: "role",
30649
+ type: "bytes32",
30650
+ },
30651
+ {
30652
+ indexed: true,
30653
+ internalType: "address",
30654
+ name: "account",
30655
+ type: "address",
30656
+ },
30657
+ {
30658
+ indexed: true,
30659
+ internalType: "address",
30660
+ name: "sender",
30661
+ type: "address",
30662
+ },
30663
+ ],
30664
+ name: "RoleRevoked",
30665
+ type: "event",
30666
+ },
30667
+ {
30668
+ anonymous: false,
30669
+ inputs: [
30670
+ {
30671
+ indexed: false,
30672
+ internalType: "address",
30673
+ name: "oldRegistry",
30674
+ type: "address",
30675
+ },
30676
+ {
30677
+ indexed: false,
30678
+ internalType: "address",
30679
+ name: "newRegistry",
30680
+ type: "address",
30681
+ },
30682
+ ],
30683
+ name: "RoyaltytAllowlistRegistryUpdated",
30684
+ type: "event",
30685
+ },
30686
+ {
30687
+ anonymous: false,
30688
+ inputs: [
30689
+ {
30690
+ indexed: true,
30691
+ internalType: "address",
30692
+ name: "from",
30693
+ type: "address",
30694
+ },
30695
+ {
30696
+ indexed: true,
30697
+ internalType: "address",
30698
+ name: "to",
30699
+ type: "address",
30700
+ },
30701
+ {
30702
+ indexed: true,
30703
+ internalType: "uint256",
30704
+ name: "tokenId",
30705
+ type: "uint256",
30706
+ },
30707
+ ],
30708
+ name: "Transfer",
30709
+ type: "event",
30710
+ },
30711
+ {
30712
+ inputs: [],
30713
+ name: "DEFAULT_ADMIN_ROLE",
30714
+ outputs: [
30715
+ {
30716
+ internalType: "bytes32",
30717
+ name: "",
30718
+ type: "bytes32",
30719
+ },
30720
+ ],
30721
+ stateMutability: "view",
30722
+ type: "function",
30723
+ },
30724
+ {
30725
+ inputs: [],
30726
+ name: "MINTER_ROLE",
30727
+ outputs: [
30728
+ {
30729
+ internalType: "bytes32",
30730
+ name: "",
30731
+ type: "bytes32",
30732
+ },
30733
+ ],
30734
+ stateMutability: "view",
30735
+ type: "function",
30736
+ },
30737
+ {
30738
+ inputs: [
30739
+ {
30740
+ internalType: "uint256",
30741
+ name: "",
30742
+ type: "uint256",
30743
+ },
30744
+ ],
30745
+ name: "_burnedTokens",
30746
+ outputs: [
30747
+ {
30748
+ internalType: "bool",
30749
+ name: "",
30750
+ type: "bool",
30751
+ },
30752
+ ],
30753
+ stateMutability: "view",
30754
+ type: "function",
30755
+ },
30756
+ {
30757
+ inputs: [],
30758
+ name: "_totalSupply",
30759
+ outputs: [
30760
+ {
30761
+ internalType: "uint256",
30762
+ name: "",
30763
+ type: "uint256",
30764
+ },
30765
+ ],
30766
+ stateMutability: "view",
30767
+ type: "function",
30768
+ },
30769
+ {
30770
+ inputs: [
30771
+ {
30772
+ internalType: "address",
30773
+ name: "to",
30774
+ type: "address",
30775
+ },
30776
+ {
30777
+ internalType: "uint256",
30778
+ name: "tokenId",
30779
+ type: "uint256",
30780
+ },
30781
+ ],
30782
+ name: "approve",
30783
+ outputs: [],
30784
+ stateMutability: "nonpayable",
30785
+ type: "function",
30786
+ },
30787
+ {
30788
+ inputs: [
30789
+ {
30790
+ internalType: "address",
30791
+ name: "owner",
30792
+ type: "address",
30793
+ },
30794
+ ],
30795
+ name: "balanceOf",
30796
+ outputs: [
30797
+ {
30798
+ internalType: "uint256",
30799
+ name: "",
30800
+ type: "uint256",
30801
+ },
30802
+ ],
30803
+ stateMutability: "view",
30804
+ type: "function",
30805
+ },
30806
+ {
30807
+ inputs: [],
30808
+ name: "baseURI",
30809
+ outputs: [
30810
+ {
30811
+ internalType: "string",
30812
+ name: "",
30813
+ type: "string",
30814
+ },
30815
+ ],
30816
+ stateMutability: "view",
30817
+ type: "function",
30818
+ },
30819
+ {
30820
+ inputs: [
30821
+ {
30822
+ internalType: "uint256",
30823
+ name: "tokenId",
30824
+ type: "uint256",
30825
+ },
30826
+ ],
30827
+ name: "burn",
30828
+ outputs: [],
30829
+ stateMutability: "nonpayable",
30830
+ type: "function",
30831
+ },
30832
+ {
30833
+ inputs: [
30834
+ {
30835
+ internalType: "uint256[]",
30836
+ name: "tokenIDs",
30837
+ type: "uint256[]",
30838
+ },
30839
+ ],
30840
+ name: "burnBatch",
30841
+ outputs: [],
30842
+ stateMutability: "nonpayable",
30843
+ type: "function",
30844
+ },
30845
+ {
30846
+ inputs: [],
30847
+ name: "contractURI",
30848
+ outputs: [
30849
+ {
30850
+ internalType: "string",
30851
+ name: "",
30852
+ type: "string",
30853
+ },
30854
+ ],
30855
+ stateMutability: "view",
30856
+ type: "function",
30857
+ },
30858
+ {
30859
+ inputs: [],
30860
+ name: "getAdmins",
30861
+ outputs: [
30862
+ {
30863
+ internalType: "address[]",
30864
+ name: "",
30865
+ type: "address[]",
30866
+ },
30867
+ ],
30868
+ stateMutability: "view",
30869
+ type: "function",
30870
+ },
30871
+ {
30872
+ inputs: [
30873
+ {
30874
+ internalType: "uint256",
30875
+ name: "tokenId",
30876
+ type: "uint256",
30877
+ },
30878
+ ],
30879
+ name: "getApproved",
30880
+ outputs: [
30881
+ {
30882
+ internalType: "address",
30883
+ name: "",
30884
+ type: "address",
30885
+ },
30886
+ ],
30887
+ stateMutability: "view",
30888
+ type: "function",
30889
+ },
30890
+ {
30891
+ inputs: [
30892
+ {
30893
+ internalType: "bytes32",
30894
+ name: "role",
30895
+ type: "bytes32",
30896
+ },
30897
+ ],
30898
+ name: "getRoleAdmin",
30899
+ outputs: [
30900
+ {
30901
+ internalType: "bytes32",
30902
+ name: "",
30903
+ type: "bytes32",
30904
+ },
30905
+ ],
30906
+ stateMutability: "view",
30907
+ type: "function",
30908
+ },
30909
+ {
30910
+ inputs: [
30911
+ {
30912
+ internalType: "bytes32",
30913
+ name: "role",
30914
+ type: "bytes32",
30915
+ },
30916
+ {
30917
+ internalType: "uint256",
30918
+ name: "index",
30919
+ type: "uint256",
30920
+ },
30921
+ ],
30922
+ name: "getRoleMember",
30923
+ outputs: [
30924
+ {
30925
+ internalType: "address",
30926
+ name: "",
30927
+ type: "address",
30928
+ },
30929
+ ],
30930
+ stateMutability: "view",
30931
+ type: "function",
30932
+ },
30933
+ {
30934
+ inputs: [
30935
+ {
30936
+ internalType: "bytes32",
30937
+ name: "role",
30938
+ type: "bytes32",
30939
+ },
30940
+ ],
30941
+ name: "getRoleMemberCount",
30942
+ outputs: [
30943
+ {
30944
+ internalType: "uint256",
30945
+ name: "",
30946
+ type: "uint256",
30947
+ },
30948
+ ],
30949
+ stateMutability: "view",
30950
+ type: "function",
30951
+ },
30952
+ {
30953
+ inputs: [
30954
+ {
30955
+ internalType: "address",
30956
+ name: "user",
30957
+ type: "address",
30958
+ },
30959
+ ],
30960
+ name: "grantMinterRole",
30961
+ outputs: [],
30962
+ stateMutability: "nonpayable",
30963
+ type: "function",
30964
+ },
30965
+ {
30966
+ inputs: [
30967
+ {
30968
+ internalType: "bytes32",
30969
+ name: "role",
30970
+ type: "bytes32",
30971
+ },
30972
+ {
30973
+ internalType: "address",
30974
+ name: "account",
30975
+ type: "address",
30976
+ },
30977
+ ],
30978
+ name: "grantRole",
30979
+ outputs: [],
30980
+ stateMutability: "nonpayable",
30981
+ type: "function",
30982
+ },
30983
+ {
30984
+ inputs: [
30985
+ {
30986
+ internalType: "bytes32",
30987
+ name: "role",
30988
+ type: "bytes32",
30989
+ },
30990
+ {
30991
+ internalType: "address",
30992
+ name: "account",
30993
+ type: "address",
30994
+ },
30995
+ ],
30996
+ name: "hasRole",
30997
+ outputs: [
30998
+ {
30999
+ internalType: "bool",
31000
+ name: "",
31001
+ type: "bool",
31002
+ },
31003
+ ],
31004
+ stateMutability: "view",
31005
+ type: "function",
31006
+ },
31007
+ {
31008
+ inputs: [
31009
+ {
31010
+ internalType: "address",
31011
+ name: "owner",
31012
+ type: "address",
31013
+ },
31014
+ {
31015
+ internalType: "address",
31016
+ name: "operator",
31017
+ type: "address",
31018
+ },
31019
+ ],
31020
+ name: "isApprovedForAll",
31021
+ outputs: [
31022
+ {
31023
+ internalType: "bool",
31024
+ name: "",
31025
+ type: "bool",
31026
+ },
31027
+ ],
31028
+ stateMutability: "view",
31029
+ type: "function",
31030
+ },
31031
+ {
31032
+ inputs: [
31033
+ {
31034
+ internalType: "address",
31035
+ name: "to",
31036
+ type: "address",
31037
+ },
31038
+ {
31039
+ internalType: "uint256",
31040
+ name: "tokenID",
31041
+ type: "uint256",
31042
+ },
31043
+ ],
31044
+ name: "mint",
31045
+ outputs: [],
31046
+ stateMutability: "nonpayable",
31047
+ type: "function",
31048
+ },
31049
+ {
31050
+ inputs: [],
31051
+ name: "name",
31052
+ outputs: [
31053
+ {
31054
+ internalType: "string",
31055
+ name: "",
31056
+ type: "string",
31057
+ },
31058
+ ],
31059
+ stateMutability: "view",
31060
+ type: "function",
31061
+ },
31062
+ {
31063
+ inputs: [
31064
+ {
31065
+ internalType: "uint256",
31066
+ name: "tokenId",
31067
+ type: "uint256",
31068
+ },
31069
+ ],
31070
+ name: "ownerOf",
31071
+ outputs: [
31072
+ {
31073
+ internalType: "address",
31074
+ name: "",
31075
+ type: "address",
31076
+ },
31077
+ ],
31078
+ stateMutability: "view",
31079
+ type: "function",
31080
+ },
31081
+ {
31082
+ inputs: [
31083
+ {
31084
+ internalType: "bytes32",
31085
+ name: "role",
31086
+ type: "bytes32",
31087
+ },
31088
+ {
31089
+ internalType: "address",
31090
+ name: "account",
31091
+ type: "address",
31092
+ },
31093
+ ],
31094
+ name: "renounceRole",
31095
+ outputs: [],
31096
+ stateMutability: "nonpayable",
31097
+ type: "function",
31098
+ },
31099
+ {
31100
+ inputs: [
31101
+ {
31102
+ internalType: "address",
31103
+ name: "user",
31104
+ type: "address",
31105
+ },
31106
+ ],
31107
+ name: "revokeMinterRole",
31108
+ outputs: [],
31109
+ stateMutability: "nonpayable",
31110
+ type: "function",
31111
+ },
31112
+ {
31113
+ inputs: [
31114
+ {
31115
+ internalType: "bytes32",
31116
+ name: "role",
31117
+ type: "bytes32",
31118
+ },
31119
+ {
31120
+ internalType: "address",
31121
+ name: "account",
31122
+ type: "address",
31123
+ },
31124
+ ],
31125
+ name: "revokeRole",
31126
+ outputs: [],
31127
+ stateMutability: "nonpayable",
31128
+ type: "function",
31129
+ },
31130
+ {
31131
+ inputs: [],
31132
+ name: "royaltyAllowlist",
31133
+ outputs: [
31134
+ {
31135
+ internalType: "contract IRoyaltyAllowlist",
31136
+ name: "",
31137
+ type: "address",
31138
+ },
31139
+ ],
31140
+ stateMutability: "view",
31141
+ type: "function",
31142
+ },
31143
+ {
31144
+ inputs: [
31145
+ {
31146
+ internalType: "uint256",
31147
+ name: "tokenId",
31148
+ type: "uint256",
31149
+ },
31150
+ {
31151
+ internalType: "uint256",
31152
+ name: "salePrice",
31153
+ type: "uint256",
31154
+ },
31155
+ ],
31156
+ name: "royaltyInfo",
31157
+ outputs: [
31158
+ {
31159
+ internalType: "address",
31160
+ name: "",
31161
+ type: "address",
31162
+ },
31163
+ {
31164
+ internalType: "uint256",
31165
+ name: "",
31166
+ type: "uint256",
31167
+ },
31168
+ ],
31169
+ stateMutability: "view",
31170
+ type: "function",
31171
+ },
31172
+ {
31173
+ inputs: [
31174
+ {
31175
+ internalType: "address",
31176
+ name: "to",
31177
+ type: "address",
31178
+ },
31179
+ {
31180
+ internalType: "uint256",
31181
+ name: "tokenID",
31182
+ type: "uint256",
31183
+ },
31184
+ ],
31185
+ name: "safeMint",
31186
+ outputs: [],
31187
+ stateMutability: "nonpayable",
31188
+ type: "function",
31189
+ },
31190
+ {
31191
+ inputs: [
31192
+ {
31193
+ components: [
31194
+ {
31195
+ internalType: "address",
31196
+ name: "to",
31197
+ type: "address",
31198
+ },
31199
+ {
31200
+ internalType: "uint256[]",
31201
+ name: "tokenIds",
31202
+ type: "uint256[]",
31203
+ },
31204
+ ],
31205
+ internalType: "struct ImmutableERC721Base.IDMint[]",
31206
+ name: "mintRequests",
31207
+ type: "tuple[]",
31208
+ },
31209
+ ],
31210
+ name: "safeMintBatch",
31211
+ outputs: [],
31212
+ stateMutability: "nonpayable",
31213
+ type: "function",
31214
+ },
31215
+ {
31216
+ inputs: [
31217
+ {
31218
+ internalType: "address",
31219
+ name: "from",
31220
+ type: "address",
31221
+ },
31222
+ {
31223
+ internalType: "address",
31224
+ name: "to",
31225
+ type: "address",
31226
+ },
31227
+ {
31228
+ internalType: "uint256",
31229
+ name: "tokenId",
31230
+ type: "uint256",
31231
+ },
31232
+ ],
31233
+ name: "safeTransferFrom",
31234
+ outputs: [],
31235
+ stateMutability: "nonpayable",
31236
+ type: "function",
31237
+ },
31238
+ {
31239
+ inputs: [
31240
+ {
31241
+ internalType: "address",
31242
+ name: "from",
31243
+ type: "address",
31244
+ },
31245
+ {
31246
+ internalType: "address",
31247
+ name: "to",
31248
+ type: "address",
31249
+ },
31250
+ {
31251
+ internalType: "uint256",
31252
+ name: "tokenId",
31253
+ type: "uint256",
31254
+ },
31255
+ {
31256
+ internalType: "bytes",
31257
+ name: "data",
31258
+ type: "bytes",
31259
+ },
31260
+ ],
31261
+ name: "safeTransferFrom",
31262
+ outputs: [],
31263
+ stateMutability: "nonpayable",
31264
+ type: "function",
31265
+ },
31266
+ {
31267
+ inputs: [
31268
+ {
31269
+ components: [
31270
+ {
31271
+ internalType: "address",
31272
+ name: "from",
31273
+ type: "address",
31274
+ },
31275
+ {
31276
+ internalType: "address[]",
31277
+ name: "tos",
31278
+ type: "address[]",
31279
+ },
31280
+ {
31281
+ internalType: "uint256[]",
31282
+ name: "tokenIds",
31283
+ type: "uint256[]",
31284
+ },
31285
+ ],
31286
+ internalType: "struct ImmutableERC721Base.TransferRequest",
31287
+ name: "tr",
31288
+ type: "tuple",
31289
+ },
31290
+ ],
31291
+ name: "safeTransferFromBatch",
31292
+ outputs: [],
31293
+ stateMutability: "nonpayable",
31294
+ type: "function",
31295
+ },
31296
+ {
31297
+ inputs: [
31298
+ {
31299
+ internalType: "address",
31300
+ name: "operator",
31301
+ type: "address",
31302
+ },
31303
+ {
31304
+ internalType: "bool",
31305
+ name: "approved",
31306
+ type: "bool",
31307
+ },
31308
+ ],
31309
+ name: "setApprovalForAll",
31310
+ outputs: [],
31311
+ stateMutability: "nonpayable",
31312
+ type: "function",
31313
+ },
31314
+ {
31315
+ inputs: [
31316
+ {
31317
+ internalType: "string",
31318
+ name: "baseURI_",
31319
+ type: "string",
31320
+ },
31321
+ ],
31322
+ name: "setBaseURI",
31323
+ outputs: [],
31324
+ stateMutability: "nonpayable",
31325
+ type: "function",
31326
+ },
31327
+ {
31328
+ inputs: [
31329
+ {
31330
+ internalType: "string",
31331
+ name: "_contractURI",
31332
+ type: "string",
31333
+ },
31334
+ ],
31335
+ name: "setContractURI",
31336
+ outputs: [],
31337
+ stateMutability: "nonpayable",
31338
+ type: "function",
31339
+ },
31340
+ {
31341
+ inputs: [
31342
+ {
31343
+ internalType: "address",
31344
+ name: "receiver",
31345
+ type: "address",
31346
+ },
31347
+ {
31348
+ internalType: "uint96",
31349
+ name: "feeNumerator",
31350
+ type: "uint96",
31351
+ },
31352
+ ],
31353
+ name: "setDefaultRoyaltyReceiver",
31354
+ outputs: [],
31355
+ stateMutability: "nonpayable",
31356
+ type: "function",
31357
+ },
31358
+ {
31359
+ inputs: [
31360
+ {
31361
+ internalType: "uint256",
31362
+ name: "tokenId",
31363
+ type: "uint256",
31364
+ },
31365
+ {
31366
+ internalType: "address",
31367
+ name: "receiver",
31368
+ type: "address",
31369
+ },
31370
+ {
31371
+ internalType: "uint96",
31372
+ name: "feeNumerator",
31373
+ type: "uint96",
31374
+ },
31375
+ ],
31376
+ name: "setNFTRoyaltyReceiver",
31377
+ outputs: [],
31378
+ stateMutability: "nonpayable",
31379
+ type: "function",
31380
+ },
31381
+ {
31382
+ inputs: [
31383
+ {
31384
+ internalType: "uint256[]",
31385
+ name: "tokenIds",
31386
+ type: "uint256[]",
31387
+ },
31388
+ {
31389
+ internalType: "address",
31390
+ name: "receiver",
31391
+ type: "address",
31392
+ },
31393
+ {
31394
+ internalType: "uint96",
31395
+ name: "feeNumerator",
31396
+ type: "uint96",
31397
+ },
31398
+ ],
31399
+ name: "setNFTRoyaltyReceiverBatch",
31400
+ outputs: [],
31401
+ stateMutability: "nonpayable",
31402
+ type: "function",
31403
+ },
31404
+ {
31405
+ inputs: [
31406
+ {
31407
+ internalType: "address",
31408
+ name: "_royaltyAllowlist",
31409
+ type: "address",
31410
+ },
31411
+ ],
31412
+ name: "setRoyaltyAllowlistRegistry",
31413
+ outputs: [],
31414
+ stateMutability: "nonpayable",
31415
+ type: "function",
31416
+ },
31417
+ {
31418
+ inputs: [
31419
+ {
31420
+ internalType: "bytes4",
31421
+ name: "interfaceId",
31422
+ type: "bytes4",
31423
+ },
31424
+ ],
31425
+ name: "supportsInterface",
31426
+ outputs: [
31427
+ {
31428
+ internalType: "bool",
31429
+ name: "",
31430
+ type: "bool",
31431
+ },
31432
+ ],
31433
+ stateMutability: "view",
31434
+ type: "function",
31435
+ },
31436
+ {
31437
+ inputs: [],
31438
+ name: "symbol",
31439
+ outputs: [
31440
+ {
31441
+ internalType: "string",
31442
+ name: "",
31443
+ type: "string",
31444
+ },
31445
+ ],
31446
+ stateMutability: "view",
31447
+ type: "function",
31448
+ },
31449
+ {
31450
+ inputs: [
31451
+ {
31452
+ internalType: "uint256",
31453
+ name: "tokenId",
31454
+ type: "uint256",
31455
+ },
31456
+ ],
31457
+ name: "tokenURI",
31458
+ outputs: [
31459
+ {
31460
+ internalType: "string",
31461
+ name: "",
31462
+ type: "string",
31463
+ },
31464
+ ],
31465
+ stateMutability: "view",
31466
+ type: "function",
31467
+ },
31468
+ {
31469
+ inputs: [],
31470
+ name: "totalSupply",
31471
+ outputs: [
31472
+ {
31473
+ internalType: "uint256",
31474
+ name: "",
31475
+ type: "uint256",
31476
+ },
31477
+ ],
31478
+ stateMutability: "view",
31479
+ type: "function",
31480
+ },
31481
+ {
31482
+ inputs: [
31483
+ {
31484
+ internalType: "address",
31485
+ name: "from",
31486
+ type: "address",
31487
+ },
31488
+ {
31489
+ internalType: "address",
31490
+ name: "to",
31491
+ type: "address",
31492
+ },
31493
+ {
31494
+ internalType: "uint256",
31495
+ name: "tokenId",
31496
+ type: "uint256",
31497
+ },
31498
+ ],
31499
+ name: "transferFrom",
31500
+ outputs: [],
31501
+ stateMutability: "nonpayable",
31502
+ type: "function",
31503
+ },
31504
+ ];
31505
+ const _bytecode$1 = "0x60806040526000600d553480156200001657600080fd5b5060405162003f9238038062003f92833981016040819052620000399162000811565b8787878787868685856003620000508382620009a4565b5060046200005f8282620009a4565b505050620000748282620000fc60201b60201c565b6200008160008862000201565b600c6200008f8582620009a4565b50600b6200009e8482620009a4565b5050505050505050620000b88282620000fc60201b60201c565b620000c560008962000201565b620000d08362000244565b600c620000de8682620009a4565b50600b620000ed8582620009a4565b50505050505050505062000bb8565b6127106001600160601b0382161115620001705760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001c85760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000167565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b6200021882826200039160201b620013ca1760201c565b60008281526001602090815260409091206200023f9183906200144e62000432821b17901c565b505050565b6000620002518162000452565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa1580156200029d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c3919062000a70565b620003275760405162461bcd60e51b815260206004820152602d60248201527f636f6e747261637420646f6573206e6f7420696d706c656d656e742049526f7960448201526c185b1d1e505b1b1bdddb1a5cdd609a1b606482015260840162000167565b600254604080516001600160a01b03928316815291841660208301527f4a1d010d926ae0d4294a4afe61ae81bb378335fbf671e099a7138b5afeefdf84910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200042e576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003ed3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000449836001600160a01b03841662000461565b90505b92915050565b6200045e8133620004b3565b50565b6000818152600183016020526040812054620004aa575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200044c565b5060006200044c565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200042e57620004f2816200054360201b620014631760201c565b620005088360206200147562000556821b17811c565b6040516020016200051b92919062000a94565b60408051601f198184030181529082905262461bcd60e51b8252620001679160040162000b0d565b60606200044c6001600160a01b03831660145b606060006200056783600262000b58565b6200057490600262000b72565b6001600160401b038111156200058e576200058e6200072c565b6040519080825280601f01601f191660200182016040528015620005b9576020820181803683370190505b509050600360fc1b81600081518110620005d757620005d762000b88565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062000609576200060962000b88565b60200101906001600160f81b031916908160001a90535060006200062f84600262000b58565b6200063c90600162000b72565b90505b6001811115620006be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062000674576200067462000b88565b1a60f81b8282815181106200068d576200068d62000b88565b60200101906001600160f81b031916908160001a90535060049490941c93620006b68162000b9e565b90506200063f565b508315620004495760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640162000167565b80516001600160a01b03811681146200072757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200075f57818101518382015260200162000745565b50506000910152565b600082601f8301126200077a57600080fd5b81516001600160401b03808211156200079757620007976200072c565b604051601f8301601f19908116603f01168101908282118183101715620007c257620007c26200072c565b81604052838152866020858801011115620007dc57600080fd5b620007ef84602083016020890162000742565b9695505050505050565b80516001600160601b03811681146200072757600080fd5b600080600080600080600080610100898b0312156200082f57600080fd5b6200083a896200070f565b60208a01519098506001600160401b03808211156200085857600080fd5b620008668c838d0162000768565b985060408b01519150808211156200087d57600080fd5b6200088b8c838d0162000768565b975060608b0151915080821115620008a257600080fd5b620008b08c838d0162000768565b965060808b0151915080821115620008c757600080fd5b50620008d68b828c0162000768565b945050620008e760a08a016200070f565b9250620008f760c08a016200070f565b91506200090760e08a01620007f9565b90509295985092959890939650565b600181811c908216806200092b57607f821691505b6020821081036200094c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200023f57600081815260208120601f850160051c810160208610156200097b5750805b601f850160051c820191505b818110156200099c5782815560010162000987565b505050505050565b81516001600160401b03811115620009c057620009c06200072c565b620009d881620009d1845462000916565b8462000952565b602080601f83116001811462000a105760008415620009f75750858301515b600019600386901b1c1916600185901b1785556200099c565b600085815260208120601f198616915b8281101562000a415788860151825594840194600190910190840162000a20565b508582101562000a605787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a8357600080fd5b815180151581146200044957600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162000ace81601785016020880162000742565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162000b0181602884016020880162000742565b01602801949350505050565b602081526000825180602084015262000b2e81604085016020870162000742565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200044c576200044c62000b42565b808201808211156200044c576200044c62000b42565b634e487b7160e01b600052603260045260246000fd5b60008162000bb05762000bb062000b42565b506000190190565b6133ca8062000bc86000396000f3fe608060405234801561001057600080fd5b50600436106102735760003560e01c806369e2f0fb11610151578063a22cb465116100c3578063ca15c87311610087578063ca15c87314610590578063d5391393146105a3578063d547741f146105b8578063e4623c1b146105cb578063e8a3d485146105de578063e985e9c5146105e657600080fd5b8063a22cb46514610521578063a701281614610534578063b88d4fde14610547578063c720ee3e1461055a578063c87b56dd1461057d57600080fd5b80639010d07c116101155780639010d07c146104c557806391d14854146104d8578063938e3d7b146104eb57806395d89b41146104fe578063a144819414610506578063a217fddf1461051957600080fd5b806369e2f0fb146104715780636b3a0632146104845780636c0360eb1461049757806370a082311461049f578063885e7a08146104b257600080fd5b806331ae450b116101ea57806342842e0e116101ae57806342842e0e146103ff57806342966c6814610412578063439aed341461042557806355f804b3146104385780636352211e1461044b5780636588962a1461045e57600080fd5b806331ae450b146103a857806336568abe146103bd5780633dd1eb61146103d05780633eaaf86b146103e357806340c10f19146103ec57600080fd5b806318160ddd1161023c57806318160ddd14610308578063234af0461461031a57806323b872dd1461032d578063248a9ca3146103405780632a55205a146103635780632f2ff15d1461039557600080fd5b80628ad9461461027857806301ffc9a71461028d57806306fdde03146102b5578063081812fc146102ca578063095ea7b3146102f5575b600080fd5b61028b610286366004612800565b610622565b005b6102a061029b366004612850565b610752565b60405190151581526020015b60405180910390f35b6102bd610763565b6040516102ac91906128bd565b6102dd6102d83660046128d0565b6107f5565b6040516001600160a01b0390911681526020016102ac565b61028b610303366004612905565b61081c565b600d545b6040519081526020016102ac565b61028b6103283660046129c0565b610984565b61028b61033b366004612b11565b6109dc565b61030c61034e3660046128d0565b60009081526020819052604090206001015490565b610376610371366004612b4d565b610a0e565b604080516001600160a01b0390931683526020830191909152016102ac565b61028b6103a3366004612b6f565b610abc565b6103b0610ae1565b6040516102ac9190612b9b565b61028b6103cb366004612b6f565b610b8f565b61028b6103de366004612be8565b610c09565b61030c600d5481565b61028b6103fa366004612905565b610c2c565b61028b61040d366004612b11565b610c68565b61028b6104203660046128d0565b610c83565b61028b610433366004612c1a565b610cbb565b61028b610446366004612cad565b610ce4565b6102dd6104593660046128d0565b610cfb565b61028b61046c366004612be8565b610d5b565b61028b61047f366004612be8565b610ea1565b6002546102dd906001600160a01b031681565b6102bd610ec4565b61030c6104ad366004612be8565b610f52565b61028b6104c0366004612cf5565b610fd8565b6102dd6104d3366004612b4d565b610fed565b6102a06104e6366004612b6f565b61100c565b61028b6104f9366004612cad565b611035565b6102bd61104c565b61028b610514366004612905565b61105b565b61030c600081565b61028b61052f366004612d2d565b61108d565b61028b610542366004612da8565b6111f0565b61028b610555366004612e0c565b611250565b6102a06105683660046128d0565b600e6020526000908152604090205460ff1681565b6102bd61058b3660046128d0565b611282565b61030c61059e3660046128d0565b6112e8565b61030c6a4d494e5445525f524f4c4560a81b81565b61028b6105c6366004612b6f565b6112ff565b61028b6105d9366004612e87565b611324565b6102bd6113bd565b6102a06105f4366004612ec8565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b61062f6020820182612ef2565b905061063e6040830183612ef2565b9050146106b85760405162461bcd60e51b815260206004820152603760248201527f6e756d626572206f6620746f6b656e20696473206e6f74207468652073616d6560448201527f206173206e756d626572206f662072656365697665727300000000000000000060648201526084015b60405180910390fd5b60005b6106c86040830183612ef2565b905081101561074e5761073c6106e16020840184612be8565b6106ee6020850185612ef2565b848181106106fe576106fe612f3b565b90506020020160208101906107139190612be8565b6107206040860186612ef2565b8581811061073057610730612f3b565b90506020020135610c68565b8061074681612f67565b9150506106bb565b5050565b600061075d82611610565b92915050565b60606003805461077290612f80565b80601f016020809104026020016040519081016040528092919081815260200182805461079e90612f80565b80156107eb5780601f106107c0576101008083540402835291602001916107eb565b820191906000526020600020905b8154815290600101906020018083116107ce57829003601f168201915b5050505050905090565b60006108008261161b565b506000908152600760205260409020546001600160a01b031690565b60025482906001600160a01b03161561097557333b158015906108a857506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a69190612fba565b155b156108c85760405163f6fa4cbd60e01b81523360048201526024016106af565b6001600160a01b0381163b1580159061094c57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a9190612fba565b155b15610975576040516341b8d58160e11b81526001600160a01b03821660048201526024016106af565b61097f838361167d565b505050565b6a4d494e5445525f524f4c4560a81b61099c8161178d565b60005b825181101561097f576109ca8382815181106109bd576109bd612f3b565b6020026020010151611797565b806109d481612f67565b91505061099f565b6109e7335b82611847565b610a035760405162461bcd60e51b81526004016106af90612fd7565b61097f8383836118c6565b6000828152600a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a835750604080518082019091526009546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610aa2906001600160601b031687613024565b610aac919061303b565b91519350909150505b9250929050565b600082815260208190526040902060010154610ad78161178d565b61097f8383611ae0565b60606000610aee816112e8565b90506000816001600160401b03811115610b0a57610b0a61292f565b604051908082528060200260200182016040528015610b33578160200160208202803683370190505b50905060005b82811015610b8857610b4c600082610fed565b828281518110610b5e57610b5e612f3b565b6001600160a01b039092166020928302919091019091015280610b8081612f67565b915050610b39565b5092915050565b6001600160a01b0381163314610bff5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016106af565b61074e8282611b02565b6000610c148161178d565b61074e6a4d494e5445525f524f4c4560a81b83610abc565b6a4d494e5445525f524f4c4560a81b610c448161178d565b610c4e8383611b24565b600d8054906000610c5e83612f67565b9190505550505050565b61097f83838360405180602001604052806000815250611250565b610c8c81611b8d565b6000818152600e60205260408120805460ff19166001179055600d805491610cb38361305d565b919050555050565b6a4d494e5445525f524f4c4560a81b610cd38161178d565b610cde848484611bbb565b50505050565b6000610cef8161178d565b600c61097f83826130ba565b6000818152600560205260408120546001600160a01b03168061075d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106af565b6000610d668161178d565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd59190612fba565b610e375760405162461bcd60e51b815260206004820152602d60248201527f636f6e747261637420646f6573206e6f7420696d706c656d656e742049526f7960448201526c185b1d1e505b1b1bdddb1a5cdd609a1b60648201526084016106af565b600254604080516001600160a01b03928316815291841660208301527f4a1d010d926ae0d4294a4afe61ae81bb378335fbf671e099a7138b5afeefdf84910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000610eac8161178d565b61074e6a4d494e5445525f524f4c4560a81b836112ff565b600c8054610ed190612f80565b80601f0160208091040260200160405190810160405280929190818152602001828054610efd90612f80565b8015610f4a5780601f10610f1f57610100808354040283529160200191610f4a565b820191906000526020600020905b815481529060010190602001808311610f2d57829003601f168201915b505050505081565b60006001600160a01b038216610fbc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016106af565b506001600160a01b031660009081526006602052604090205490565b6000610fe38161178d565b61097f8383611c86565b60008281526001602052604081206110059083611d40565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60006110408161178d565b600b61097f83826130ba565b60606004805461077290612f80565b6a4d494e5445525f524f4c4560a81b6110738161178d565b610c4e838360405180602001604052806000815250611d4c565b60025482906001600160a01b0316156111e657333b1580159061111957506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111179190612fba565b155b156111395760405163f6fa4cbd60e01b81523360048201526024016106af565b6001600160a01b0381163b158015906111bd57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb9190612fba565b155b156111e6576040516341b8d58160e11b81526001600160a01b03821660048201526024016106af565b61097f8383611d7f565b6a4d494e5445525f524f4c4560a81b6112088161178d565b60005b848110156112485761123686868381811061122857611228612f3b565b905060200201358585611bbb565b8061124081612f67565b91505061120b565b505050505050565b61125a3383611847565b6112765760405162461bcd60e51b81526004016106af90612fd7565b610cde84848484611d8a565b606061128d8261161b565b6000611297611dbd565b905060008151116112b75760405180602001604052806000815250611005565b806112c184611dcc565b6040516020016112d2929190613179565b6040516020818303038152906040529392505050565b600081815260016020526040812061075d90611e5e565b60008281526020819052604090206001015461131a8161178d565b61097f8383611b02565b60005b818110156113a75761135083838381811061134457611344612f3b565b90506020020135611b8d565b6001600e600085858581811061136857611368612f3b565b90506020020135815260200190815260200160002060006101000a81548160ff021916908315150217905550808061139f90612f67565b915050611327565b50600d546113b69082906131a8565b600d555050565b600b8054610ed190612f80565b6113d4828261100c565b61074e576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561140a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611005836001600160a01b038416611e68565b606061075d6001600160a01b03831660145b60606000611484836002613024565b61148f9060026131bb565b6001600160401b038111156114a6576114a661292f565b6040519080825280601f01601f1916602001820160405280156114d0576020820181803683370190505b509050600360fc1b816000815181106114eb576114eb612f3b565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061151a5761151a612f3b565b60200101906001600160f81b031916908160001a905350600061153e846002613024565b6115499060016131bb565b90505b60018111156115c1576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061157d5761157d612f3b565b1a60f81b82828151811061159357611593612f3b565b60200101906001600160f81b031916908160001a90535060049490941c936115ba8161305d565b905061154c565b5083156110055760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106af565b600061075d82611eb7565b6000818152600560205260409020546001600160a01b031661167a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106af565b50565b600061168882610cfb565b9050806001600160a01b0316836001600160a01b0316036116f55760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016106af565b336001600160a01b0382161480611711575061171181336105f4565b6117835760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016106af565b61097f8383611edc565b61167a8133611f4a565b80516001600160a01b03166117e05760405162461bcd60e51b815260206004820152600f60248201526e41646472657373206973207a65726f60881b60448201526064016106af565b60005b81602001515181101561182d5761181b82600001518360200151838151811061180e5761180e612f3b565b6020026020010151611b24565b8061182581612f67565b9150506117e3565b50806020015151600d5461184191906131bb565b600d5550565b60008061185383610cfb565b9050806001600160a01b0316846001600160a01b0316148061189a57506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b806118be5750836001600160a01b03166118b3846107f5565b6001600160a01b0316145b949350505050565b600254839083906001600160a01b031615611ace5733321480159061195457506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561192e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119529190612fba565b155b156119745760405163937db65f60e01b81523360048201526024016106af565b6001600160a01b0382163b158015906119f857506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa1580156119d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f69190612fba565b155b15611a215760405163f934453160e01b81526001600160a01b03831660048201526024016106af565b6001600160a01b0381163b15801590611aa557506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa39190612fba565b155b15611ace57604051632a67242160e11b81526001600160a01b03821660048201526024016106af565b611ad9858585611fa3565b5050505050565b611aea82826113ca565b600082815260016020526040902061097f908261144e565b611b0c8282612107565b600082815260016020526040902061097f908261216c565b6000818152600e602052604090205460ff1615611b835760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206275726e65640000000060448201526064016106af565b61074e8282612181565b611b96336109e1565b611bb25760405162461bcd60e51b81526004016106af90612fd7565b61167a8161230c565b6127106001600160601b0382161115611be65760405162461bcd60e51b81526004016106af906131ce565b6001600160a01b038216611c3c5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d6574657273000000000060448201526064016106af565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600a90529190942093519051909116600160a01b029116179055565b6127106001600160601b0382161115611cb15760405162461bcd60e51b81526004016106af906131ce565b6001600160a01b038216611d075760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016106af565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b600061100583836123a1565b611d568383611b24565b611d6360008484846123cb565b61097f5760405162461bcd60e51b81526004016106af90613218565b61074e3383836124cc565b611d958484846118c6565b611da1848484846123cb565b610cde5760405162461bcd60e51b81526004016106af90613218565b6060600c805461077290612f80565b60606000611dd98361259a565b60010190506000816001600160401b03811115611df857611df861292f565b6040519080825280601f01601f191660200182016040528015611e22576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611e2c57509392505050565b600061075d825490565b6000818152600183016020526040812054611eaf5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561075d565b50600061075d565b60006001600160e01b0319821663152a902d60e11b148061075d575061075d82612672565b600081815260076020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611f1182610cfb565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611f54828261100c565b61074e57611f6181611463565b611f6c836020611475565b604051602001611f7d92919061326a565b60408051601f198184030181529082905262461bcd60e51b82526106af916004016128bd565b826001600160a01b0316611fb682610cfb565b6001600160a01b031614611fdc5760405162461bcd60e51b81526004016106af906132df565b6001600160a01b03821661203e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016106af565b826001600160a01b031661205182610cfb565b6001600160a01b0316146120775760405162461bcd60e51b81526004016106af906132df565b600081815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260068552838620805460001901905590871680865283862080546001019055868652600590945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b612111828261100c565b1561074e576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611005836001600160a01b0384166126b2565b6001600160a01b0382166121d75760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016106af565b6000818152600560205260409020546001600160a01b03161561223c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106af565b6000818152600560205260409020546001600160a01b0316156122a15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106af565b6001600160a01b038216600081815260066020908152604080832080546001019055848352600590915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600061231782610cfb565b905061232282610cfb565b600083815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526006845282852080546000190190558785526005909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60008260000182815481106123b8576123b8612f3b565b9060005260206000200154905092915050565b60006001600160a01b0384163b156124c157604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061240f903390899088908890600401613324565b6020604051808303816000875af192505050801561244a575060408051601f3d908101601f1916820190925261244791810190613361565b60015b6124a7573d808015612478576040519150601f19603f3d011682016040523d82523d6000602084013e61247d565b606091505b50805160000361249f5760405162461bcd60e51b81526004016106af90613218565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506118be565b506001949350505050565b816001600160a01b0316836001600160a01b03160361252d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016106af565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106125d95772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612605576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061262357662386f26fc10000830492506010015b6305f5e100831061263b576305f5e100830492506008015b612710831061264f57612710830492506004015b60648310612661576064830492506002015b600a831061075d5760010192915050565b60006001600160e01b031982166380ac58cd60e01b14806126a357506001600160e01b03198216635b5e139f60e01b145b8061075d575061075d826127a5565b6000818152600183016020526040812054801561279b5760006126d66001836131a8565b85549091506000906126ea906001906131a8565b905081811461274f57600086600001828154811061270a5761270a612f3b565b906000526020600020015490508087600001848154811061272d5761272d612f3b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806127605761276061337e565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061075d565b600091505061075d565b600061075d8260006001600160e01b03198216635a05180f60e01b148061075d575061075d8260006001600160e01b03198216637965db0b60e01b148061075d57506301ffc9a760e01b6001600160e01b031983161461075d565b60006020828403121561281257600080fd5b81356001600160401b0381111561282857600080fd5b82016060818503121561100557600080fd5b6001600160e01b03198116811461167a57600080fd5b60006020828403121561286257600080fd5b81356110058161283a565b60005b83811015612888578181015183820152602001612870565b50506000910152565b600081518084526128a981602086016020860161286d565b601f01601f19169290920160200192915050565b6020815260006110056020830184612891565b6000602082840312156128e257600080fd5b5035919050565b80356001600160a01b038116811461290057600080fd5b919050565b6000806040838503121561291857600080fd5b612921836128e9565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156129675761296761292f565b60405290565b604051601f8201601f191681016001600160401b03811182821017156129955761299561292f565b604052919050565b60006001600160401b038211156129b6576129b661292f565b5060051b60200190565b600060208083850312156129d357600080fd5b82356001600160401b03808211156129ea57600080fd5b818501915085601f8301126129fe57600080fd5b8135612a11612a0c8261299d565b61296d565b81815260059190911b83018401908481019088831115612a3057600080fd5b8585015b83811015612b0457803585811115612a4c5760008081fd5b86016040818c03601f1901811315612a645760008081fd5b612a6c612945565b612a778a84016128e9565b81528183013588811115612a8b5760008081fd5b8084019350508c603f840112612aa15760008081fd5b89830135612ab1612a0c8261299d565b81815260059190911b84018301908b8101908f831115612ad15760008081fd5b948401945b82861015612aef5785358252948c0194908c0190612ad6565b838d0152505085525050918601918601612a34565b5098975050505050505050565b600080600060608486031215612b2657600080fd5b612b2f846128e9565b9250612b3d602085016128e9565b9150604084013590509250925092565b60008060408385031215612b6057600080fd5b50508035926020909101359150565b60008060408385031215612b8257600080fd5b82359150612b92602084016128e9565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612bdc5783516001600160a01b031683529284019291840191600101612bb7565b50909695505050505050565b600060208284031215612bfa57600080fd5b611005826128e9565b80356001600160601b038116811461290057600080fd5b600080600060608486031215612c2f57600080fd5b83359250612c3f602085016128e9565b9150612c4d60408501612c03565b90509250925092565b60006001600160401b03831115612c6f57612c6f61292f565b612c82601f8401601f191660200161296d565b9050828152838383011115612c9657600080fd5b828260208301376000602084830101529392505050565b600060208284031215612cbf57600080fd5b81356001600160401b03811115612cd557600080fd5b8201601f81018413612ce657600080fd5b6118be84823560208401612c56565b60008060408385031215612d0857600080fd5b612d11836128e9565b9150612b9260208401612c03565b801515811461167a57600080fd5b60008060408385031215612d4057600080fd5b612d49836128e9565b91506020830135612d5981612d1f565b809150509250929050565b60008083601f840112612d7657600080fd5b5081356001600160401b03811115612d8d57600080fd5b6020830191508360208260051b8501011115610ab557600080fd5b60008060008060608587031215612dbe57600080fd5b84356001600160401b03811115612dd457600080fd5b612de087828801612d64565b9095509350612df39050602086016128e9565b9150612e0160408601612c03565b905092959194509250565b60008060008060808587031215612e2257600080fd5b612e2b856128e9565b9350612e39602086016128e9565b92506040850135915060608501356001600160401b03811115612e5b57600080fd5b8501601f81018713612e6c57600080fd5b612e7b87823560208401612c56565b91505092959194509250565b60008060208385031215612e9a57600080fd5b82356001600160401b03811115612eb057600080fd5b612ebc85828601612d64565b90969095509350505050565b60008060408385031215612edb57600080fd5b612ee4836128e9565b9150612b92602084016128e9565b6000808335601e19843603018112612f0957600080fd5b8301803591506001600160401b03821115612f2357600080fd5b6020019150600581901b3603821315610ab557600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612f7957612f79612f51565b5060010190565b600181811c90821680612f9457607f821691505b602082108103612fb457634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612fcc57600080fd5b815161100581612d1f565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b808202811582820484141761075d5761075d612f51565b60008261305857634e487b7160e01b600052601260045260246000fd5b500490565b60008161306c5761306c612f51565b506000190190565b601f82111561097f57600081815260208120601f850160051c8101602086101561309b5750805b601f850160051c820191505b81811015611248578281556001016130a7565b81516001600160401b038111156130d3576130d361292f565b6130e7816130e18454612f80565b84613074565b602080601f83116001811461311c57600084156131045750858301515b600019600386901b1c1916600185901b178555611248565b600085815260208120601f198616915b8281101561314b5788860151825594840194600190910190840161312c565b50858210156131695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000835161318b81846020880161286d565b83519083019061319f81836020880161286d565b01949350505050565b8181038181111561075d5761075d612f51565b8082018082111561075d5761075d612f51565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516132a281601785016020880161286d565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516132d381602884016020880161286d565b01602801949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061335790830184612891565b9695505050505050565b60006020828403121561337357600080fd5b81516110058161283a565b634e487b7160e01b600052603160045260246000fdfea264697066735822122006573083b437fa58c9681635170d4942384661ed89edd9510c0e1a1d6b4237d564736f6c63430008110033";
31506
+ const isSuperArgs$1 = (xs) => xs.length > 1;
31507
+ class ImmutableERC721PermissionedMintable__factory extends ethers.ContractFactory {
31508
+ constructor(...args) {
31509
+ if (isSuperArgs$1(args)) {
31510
+ super(...args);
31511
+ }
31512
+ else {
31513
+ super(_abi$1, _bytecode$1, args[0]);
31514
+ }
31515
+ }
31516
+ deploy(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides) {
31517
+ return super.deploy(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides || {});
31518
+ }
31519
+ getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides) {
31520
+ return super.getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides || {});
31521
+ }
31522
+ attach(address) {
31523
+ return super.attach(address);
31524
+ }
31525
+ connect(signer) {
31526
+ return super.connect(signer);
31527
+ }
31528
+ static bytecode = _bytecode$1;
31529
+ static abi = _abi$1;
31530
+ static createInterface() {
31531
+ return new ethers.utils.Interface(_abi$1);
31532
+ }
31533
+ static connect(address, signerOrProvider) {
31534
+ return new ethers.Contract(address, _abi$1, signerOrProvider);
31535
+ }
31536
+ }
31537
+
31538
+ class ERC20 {
31539
+ contract;
31540
+ constructor(contractAddress) {
31541
+ const factory = new ERC20__factory();
31542
+ this.contract = factory.attach(contractAddress);
31543
+ }
31544
+ /**
31545
+ * @returns a promise that resolves with a BigNumber that represents the amount of tokens in existence
31546
+ */
31547
+ async totalSupply(provider, overrides = {}) {
31548
+ return this.contract.connect(provider).totalSupply(overrides);
31549
+ }
31550
+ /**
31551
+ * @returns a promise that resolves with a BigNumber that represents the amount of tokens owned by account
31552
+ */
31553
+ async balanceOf(provider, account, overrides = {}) {
31554
+ return this.contract.connect(provider).balanceOf(account, overrides);
31555
+ }
31556
+ /**
31557
+ * @returns a promise that resolves with a BigNumber that represents the remaining number of tokens that spender will be allowed to spend on behalf of owner through transferFrom
31558
+ */
31559
+ async allowance(provider, owner, spender, overrides = {}) {
31560
+ return this.contract.connect(provider).allowance(owner, spender, overrides);
31561
+ }
31562
+ /**
31563
+ * @returns a promise that resolves with a populated transaction
31564
+ */
31565
+ async populateTransfer(to, amount, overrides) {
31566
+ return this.contract.populateTransaction.transfer(to, amount, overrides);
31567
+ }
31568
+ /**
31569
+ * @returns a promise that resolves with a populated transaction
31570
+ */
31571
+ async populateApprove(spender, amount, overrides = {}) {
31572
+ return this.contract.populateTransaction.approve(spender, amount, overrides);
31573
+ }
31574
+ /**
31575
+ * @returns a promise that resolves with a populated transaction
31576
+ */
31577
+ async populateTransferFrom(from, to, amount, overrides = {}) {
31578
+ return this.contract.populateTransaction.transferFrom(from, to, amount, overrides);
31579
+ }
31580
+ }
31581
+
31582
+ var erc20 = /*#__PURE__*/Object.freeze({
31583
+ __proto__: null,
31584
+ ERC20: ERC20
31585
+ });
31586
+
31587
+ class ERC721HybridPermissionedMintable {
31588
+ contract;
31589
+ constructor(contractAddress) {
31590
+ const factory = new ImmutableERC721HybridPermissionedMintable__factory();
31591
+ this.contract = factory.attach(contractAddress);
31592
+ }
31593
+ /**
31594
+ * Read functions
31595
+ */
31596
+ /**
31597
+ * @returns the DEFAULT_ADMIN_ROLE as a string.
31598
+ */
31599
+ async DEFAULT_ADMIN_ROLE(provider, overrides = {}) {
31600
+ return await this.contract.connect(provider).DEFAULT_ADMIN_ROLE(overrides);
31601
+ }
31602
+ /**
31603
+ * @returns the MINTER_ROLE as a string.
31604
+ */
31605
+ async MINTER_ROLE(provider, overrides = {}) {
31606
+ return await this.contract.connect(provider).MINTER_ROLE(overrides);
31607
+ }
31608
+ /**
31609
+ * @returns the balance of an address as a BigNumber.
31610
+ */
31611
+ async balanceOf(provider, owner, overrides = {}) {
31612
+ return await this.contract.connect(provider).balanceOf(owner, overrides);
31613
+ }
31614
+ /**
31615
+ * @returns the baseURI as a string.
31616
+ */
31617
+ async baseURI(provider, overrides = {}) {
31618
+ return await this.contract.connect(provider).baseURI(overrides);
31619
+ }
31620
+ /**
31621
+ * @returns the contractURI as a string.
31622
+ */
31623
+ async contractURI(provider, overrides = {}) {
31624
+ return await this.contract.connect(provider).contractURI(overrides);
31625
+ }
31626
+ /**
31627
+ * @returns admin addresses as an array of strings.
31628
+ */
31629
+ async getAdmins(provider, overrides = {}) {
31630
+ return await this.contract.connect(provider).getAdmins(overrides);
31631
+ }
31632
+ /**
31633
+ * @returns the approved address for a token ID, or zero if no address set.
31634
+ */
31635
+ async getApproved(provider, tokenId, overrides = {}) {
31636
+ return await this.contract
31637
+ .connect(provider)
31638
+ .getApproved(tokenId, overrides);
31639
+ }
31640
+ /**
31641
+ * @returns the role admin address.
31642
+ */
31643
+ async getRoleAdmin(provider, role, overrides = {}) {
31644
+ return await this.contract.connect(provider).getRoleAdmin(role, overrides);
31645
+ }
31646
+ /**
31647
+ * @returns the role member address at a particular index.
31648
+ */
31649
+ async getRoleMember(provider, role, index, overrides = {}) {
31650
+ return await this.contract
31651
+ .connect(provider)
31652
+ .getRoleMember(role, index, overrides);
31653
+ }
31654
+ /**
31655
+ * @returns the role member count as a BigNumber.
31656
+ */
31657
+ async getRoleMemberCount(provider, role, overrides = {}) {
31658
+ return await this.contract
31659
+ .connect(provider)
31660
+ .getRoleMemberCount(role, overrides);
31661
+ }
31662
+ /**
31663
+ * @returns a boolean for whether an account has a particular role.
31664
+ */
31665
+ async hasRole(provider, role, account, overrides = {}) {
31666
+ return await this.contract
31667
+ .connect(provider)
31668
+ .hasRole(role, account, overrides);
31669
+ }
31670
+ /**
31671
+ * @returns a booolean that tells whether an operator is approved by a given owner.
31672
+ */
31673
+ async isApprovedForAll(provider, owner, operator, overrides = {}) {
31674
+ return await this.contract
31675
+ .connect(provider)
31676
+ .isApprovedForAll(owner, operator, overrides);
31677
+ }
31678
+ /**
31679
+ * @returns the name of the contract as a string.
31680
+ */
31681
+ async name(provider, overrides = {}) {
31682
+ return await this.contract.connect(provider).name(overrides);
31683
+ }
31684
+ /**
31685
+ * @returns the owner address of a particular tokenId.
31686
+ */
31687
+ async ownerOf(provider, tokenId, overrides = {}) {
31688
+ return await this.contract.connect(provider).ownerOf(tokenId, overrides);
31689
+ }
31690
+ /**
31691
+ * @returns the royalty allowlist as a string.
31692
+ */
31693
+ async royaltyAllowlist(provider, overrides = {}) {
31694
+ return await this.contract.connect(provider).royaltyAllowlist(overrides);
31695
+ }
31696
+ /**
31697
+ * @returns the royalty information for a particular tokenId.
31698
+ */
31699
+ async royaltyInfo(provider, _tokenId, _salePrice, overrides = {}) {
31700
+ return await this.contract
31701
+ .connect(provider)
31702
+ .royaltyInfo(_tokenId, _salePrice, overrides);
31703
+ }
31704
+ /**
31705
+ * @returns the symbol of the contract as a string.
31706
+ */
31707
+ async symbol(provider, overrides = {}) {
31708
+ return await this.contract.connect(provider).symbol(overrides);
31709
+ }
31710
+ /**
31711
+ * @returns the Uniform Resource Identifier (URI) for tokenId token.
31712
+ */
31713
+ async tokenURI(provider, tokenId, overrides = {}) {
31714
+ return await this.contract.connect(provider).tokenURI(tokenId, overrides);
31715
+ }
31716
+ /**
31717
+ * @returns returns the total amount of tokens stored by the contract.
31718
+ */
31719
+ async totalSupply(provider, overrides = {}) {
31720
+ return await this.contract.connect(provider).totalSupply(overrides);
31721
+ }
31722
+ /**
31723
+ * Write functions
31724
+ */
31725
+ /**
31726
+ * @returns a populated transaction for the approve contract function
31727
+ */
31728
+ async populateApprove(to, tokenId, overrides = {}) {
31729
+ return await this.contract.populateTransaction.approve(to, tokenId, overrides);
31730
+ }
31731
+ /**
31732
+ * @returns a populated transaction for the burn contract function
31733
+ */
31734
+ async populateBurn(tokenId, overrides = {}) {
31735
+ return await this.contract.populateTransaction.burn(tokenId, overrides);
31736
+ }
31737
+ /**
31738
+ * @returns a populated transaction for the batch burn contract function
31739
+ */
31740
+ async populateBurnBatch(tokenIds, overrides = {}) {
31741
+ return await this.contract.populateTransaction.burnBatch(tokenIds, overrides);
31742
+ }
31743
+ /**
31744
+ * @returns a populated transaction for the grantMinterRole contract function
31745
+ */
31746
+ async populateGrantMinterRole(user, overrides = {}) {
31747
+ return await this.contract.populateTransaction.grantMinterRole(user, overrides);
31748
+ }
31749
+ /**
31750
+ * @returns a populated transaction for the grantRole contract function
31751
+ */
31752
+ async populateGrantRole(role, account, overrides = {}) {
31753
+ return await this.contract.populateTransaction.grantRole(role, account, overrides);
31754
+ }
31755
+ /**
31756
+ * @returns a populated transaction for the mint by ID contract function
31757
+ */
31758
+ async populateMintByID(to, tokenId, overrides = {}) {
31759
+ return await this.contract.populateTransaction.mintByID(to, tokenId, overrides);
31760
+ }
31761
+ /**
31762
+ * @returns a populated transaction for the safe mint by ID contract function
31763
+ */
31764
+ async populateSafeMintByID(to, tokenId, overrides = {}) {
31765
+ return await this.contract.populateTransaction.safeMintByID(to, tokenId, overrides);
31766
+ }
31767
+ /**
31768
+ * @returns a populated transaction for the mint by quantity contract function
31769
+ */
31770
+ async populateMintByQuantity(to, quantity, overrides = {}) {
31771
+ return await this.contract.populateTransaction.mintByQuantity(to, quantity, overrides);
31772
+ }
31773
+ /**
31774
+ * @returns a populated transaction for the safe mint by quantity contract function
31775
+ */
31776
+ async populateSafeMintByQuantity(to, quantity, overrides = {}) {
31777
+ return await this.contract.populateTransaction.safeMintByQuantity(to, quantity, overrides);
31778
+ }
31779
+ /**
31780
+ * @returns a populated transaction for the batch mint by quantity contract function
31781
+ */
31782
+ async populateBatchMintByQuantity(mints, overrides = {}) {
31783
+ return await this.contract.populateTransaction.batchMintByQuantity(mints, overrides);
31784
+ }
31785
+ /**
31786
+ * @returns a populated transaction for the batch safe mint by quantity contract function
31787
+ */
31788
+ async populateBatchSafeMintByQuantity(mints, overrides = {}) {
31789
+ return await this.contract.populateTransaction.batchSafeMintByQuantity(mints, overrides);
31790
+ }
31791
+ /**
31792
+ * @returns a populated transaction for the batch mint by ID to multiple recipients contract function
31793
+ */
31794
+ async populateBatchMintByIDToMultiple(mints, overrides = {}) {
31795
+ return await this.contract.populateTransaction.batchMintByIDToMultiple(mints, overrides);
31796
+ }
31797
+ /**
31798
+ * @returns a populated transaction for the batch safe mint by ID to multiple recipients contract function
31799
+ */
31800
+ async populateBatchSafeMintByIDToMultiple(mints, overrides = {}) {
31801
+ return await this.contract.populateTransaction.batchSafeMintByIDToMultiple(mints, overrides);
31802
+ }
31803
+ /**
31804
+ * @returns a populated transaction for the renounceRole contract function
31805
+ */
31806
+ async populateRenounceRole(role, account, overrides = {}) {
31807
+ return await this.contract.populateTransaction.renounceRole(role, account, overrides);
31808
+ }
31809
+ /**
31810
+ * @returns a populated transaction for the revokeMinterRole contract function
31811
+ */
31812
+ async populateRevokeMinterRole(user, overrides = {}) {
31813
+ return await this.contract.populateTransaction.revokeMinterRole(user, overrides);
31814
+ }
31815
+ /**
31816
+ * @returns a populated transaction for the revokeRole contract function
31817
+ */
31818
+ async populateRevokeRole(role, account, overrides = {}) {
31819
+ return await this.contract.populateTransaction.revokeRole(role, account, overrides);
31820
+ }
31821
+ /**
31822
+ * @returns a populated transaction for the batch save transfer from function
31823
+ */
31824
+ async populateSafeTransferFromBatch(transfers, overrides = {}) {
31825
+ return await this.contract.populateTransaction.safeTransferFromBatch(transfers, overrides);
31826
+ }
31827
+ /**
31828
+ * @returns a populated transaction for the safeTransferFrom(address,address,uint256) contract function
31829
+ */
31830
+ async 'populateSafeTransferFrom(address,address,uint256)'(from, to, tokenId, overrides = {}) {
31831
+ return await this.contract.populateTransaction['safeTransferFrom(address,address,uint256)'](from, to, tokenId, overrides);
31832
+ }
31833
+ /**
31834
+ * @returns a populated transaction for the safeTransferFrom(address,address,uint256,bytes) contract function
31835
+ */
31836
+ async 'populateSafeTransferFrom(address,address,uint256,bytes)'(from, to, tokenId, data, overrides = {}) {
31837
+ return await this.contract.populateTransaction['safeTransferFrom(address,address,uint256,bytes)'](from, to, tokenId, data, overrides);
31838
+ }
31839
+ /**
31840
+ * @returns a populated transaction for the setApprovalForAll contract function
31841
+ */
31842
+ async populateSetApprovalForAll(operator, approved, overrides = {}) {
31843
+ return await this.contract.populateTransaction.setApprovalForAll(operator, approved, overrides);
31844
+ }
31845
+ /**
31846
+ * @returns a populated transaction for the setBaseURI contract function
31847
+ */
31848
+ async populateSetBaseURI(baseURI_, overrides = {}) {
31849
+ return await this.contract.populateTransaction.setBaseURI(baseURI_, overrides);
31850
+ }
31851
+ /**
31852
+ * @returns a populated transaction for the setContractURI contract function
31853
+ */
31854
+ async populateSetContractURI(_contractURI, overrides = {}) {
31855
+ return await this.contract.populateTransaction.setContractURI(_contractURI, overrides);
31856
+ }
31857
+ /**
31858
+ * @returns a populated transaction for the setDefaultRoyaltyReceiver contract function
31859
+ */
31860
+ async populateSetDefaultRoyaltyReceiver(receiver, feeNumerator, overrides = {}) {
31861
+ return await this.contract.populateTransaction.setDefaultRoyaltyReceiver(receiver, feeNumerator, overrides);
31862
+ }
31863
+ /**
31864
+ * @returns a populated transaction for the setNFTRoyaltyReceiver contract function
31865
+ */
31866
+ async populateSetNFTRoyaltyReceiver(tokenId, receiver, feeNumerator, overrides = {}) {
31867
+ return await this.contract.populateTransaction.setNFTRoyaltyReceiver(tokenId, receiver, feeNumerator, overrides);
31868
+ }
31869
+ /**
31870
+ * @returns a populated transaction for the setNFTRoyaltyReceiverBatch contract function
31871
+ */
31872
+ async populateSetNFTRoyaltyReceiverBatch(tokenIds, receiver, feeNumerator, overrides = {}) {
31873
+ return await this.contract.populateTransaction.setNFTRoyaltyReceiverBatch(tokenIds, receiver, feeNumerator, overrides);
31874
+ }
31875
+ /**
31876
+ * @returns a populated transaction for the setRoyaltyAllowlistRegistry contract function
31877
+ */
31878
+ async populateSetRoyaltyAllowlistRegistry(_royaltyAllowlist, overrides = {}) {
31879
+ return await this.contract.populateTransaction.setRoyaltyAllowlistRegistry(_royaltyAllowlist, overrides);
31880
+ }
31881
+ }
31882
+
31883
+ var erc721_hybrid_permissioned_mintable = /*#__PURE__*/Object.freeze({
31884
+ __proto__: null,
31885
+ ERC721HybridPermissionedMintable: ERC721HybridPermissionedMintable
30100
31886
  });
30101
31887
 
30102
31888
  class ERC721PermissionedMintable {
@@ -30369,6 +32155,7 @@ exports.checkoutSdk = checkout_sdk;
30369
32155
  exports.checkoutWidgets = checkout_widgets;
30370
32156
  exports.config = config;
30371
32157
  exports.erc20 = erc20;
32158
+ exports.erc721HybridPermissionedMintable = erc721_hybrid_permissioned_mintable;
30372
32159
  exports.erc721PermissionedMintable = erc721_permissioned_mintable;
30373
32160
  exports.immutablexClient = immutablex_client;
30374
32161
  exports.orderbook = orderbook;