@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.js CHANGED
@@ -2398,7 +2398,7 @@ class MultiRollupApiClients {
2398
2398
  }
2399
2399
 
2400
2400
  // eslint-disable-next-line @typescript-eslint/naming-convention
2401
- const defaultHeaders$1 = { 'x-sdk-version': 'ts-immutable-sdk-0.12.0-alpha' };
2401
+ const defaultHeaders$1 = { 'x-sdk-version': 'ts-immutable-sdk-0.13.0-alpha.1' };
2402
2402
  const createConfig = ({ basePath, headers, }) => {
2403
2403
  if (!basePath.trim()) {
2404
2404
  throw Error('basePath can not be empty');
@@ -2458,7 +2458,7 @@ class APIError extends Error {
2458
2458
 
2459
2459
  /* eslint-disable implicit-arrow-linebreak */
2460
2460
  const defaultHeaders = {
2461
- sdkVersion: 'ts-immutable-sdk-multi-rollup-api-client-0.12.0-alpha',
2461
+ sdkVersion: 'ts-immutable-sdk-multi-rollup-api-client-0.13.0-alpha.1',
2462
2462
  };
2463
2463
  /**
2464
2464
  * createAPIConfiguration to create a custom Configuration
@@ -2730,7 +2730,7 @@ const createImmutableXConfiguration = ({ basePath, chainID, coreContractAddress,
2730
2730
  chainID,
2731
2731
  coreContractAddress,
2732
2732
  registrationContractAddress,
2733
- sdkVersion: 'ts-immutable-sdk-0.12.0-alpha',
2733
+ sdkVersion: 'ts-immutable-sdk-0.13.0-alpha.1',
2734
2734
  });
2735
2735
  /**
2736
2736
  * Sets `sdkVersion` at the time of build
@@ -8626,7 +8626,6 @@ class ZkEvmProvider {
8626
8626
  config;
8627
8627
  confirmationScreen;
8628
8628
  magicAdapter;
8629
- transactionAPI;
8630
8629
  multiRollupApiClients;
8631
8630
  jsonRpcProvider; // Used for read
8632
8631
  eventEmitter;
@@ -8640,9 +8639,6 @@ class ZkEvmProvider {
8640
8639
  this.magicAdapter = magicAdapter;
8641
8640
  this.config = config;
8642
8641
  this.confirmationScreen = confirmationScreen;
8643
- this.transactionAPI = new TransactionsApi(new Configuration({
8644
- basePath: this.config.imxPublicApiDomain,
8645
- }));
8646
8642
  this.jsonRpcProvider = new JsonRpcProvider(this.config.zkEvmRpcUrl);
8647
8643
  this.multiRollupApiClients = multiRollupApiClients;
8648
8644
  this.eventEmitter = new TypedEventEmitter();
@@ -8687,12 +8683,7 @@ class ZkEvmProvider {
8687
8683
  accessToken: this.user.accessToken,
8688
8684
  confirmationScreen: this.confirmationScreen,
8689
8685
  imxEtherAddress: this.user.zkEvm.ethAddress,
8690
- config: new PassportConfiguration({
8691
- baseConfig: {},
8692
- clientId: 'client123',
8693
- logoutRedirectUri: 'http://localhost:3000/logout',
8694
- redirectUri: 'http://localhost:3000/redirect',
8695
- }),
8686
+ config: this.config,
8696
8687
  });
8697
8688
  this.eventEmitter.emit(ProviderEvent.ACCOUNTS_CHANGED, [this.user.zkEvm.ethAddress]);
8698
8689
  return [this.user.zkEvm.ethAddress];
@@ -9453,16 +9444,6 @@ class OrderBookClient {
9453
9444
  }
9454
9445
  }
9455
9446
 
9456
- /* istanbul ignore file */
9457
- /* tslint:disable */
9458
- /* eslint-disable */
9459
- var CreateOrderProtocolData;
9460
- (function (CreateOrderProtocolData) {
9461
- (function (order_type) {
9462
- order_type["FULL_RESTRICTED"] = "FULL_RESTRICTED";
9463
- })(CreateOrderProtocolData.order_type || (CreateOrderProtocolData.order_type = {}));
9464
- })(CreateOrderProtocolData || (CreateOrderProtocolData = {}));
9465
-
9466
9447
  /* istanbul ignore file */
9467
9448
  /* tslint:disable */
9468
9449
  /* eslint-disable */
@@ -9492,6 +9473,16 @@ var OrderStatus;
9492
9473
  OrderStatus["EXPIRED"] = "EXPIRED";
9493
9474
  })(OrderStatus || (OrderStatus = {}));
9494
9475
 
9476
+ /* istanbul ignore file */
9477
+ /* tslint:disable */
9478
+ /* eslint-disable */
9479
+ var ProtocolData;
9480
+ (function (ProtocolData) {
9481
+ (function (order_type) {
9482
+ order_type["FULL_RESTRICTED"] = "FULL_RESTRICTED";
9483
+ })(ProtocolData.order_type || (ProtocolData.order_type = {}));
9484
+ })(ProtocolData || (ProtocolData = {}));
9485
+
9495
9486
  var TransactionPurpose;
9496
9487
  (function (TransactionPurpose) {
9497
9488
  TransactionPurpose["APPROVAL"] = "APPROVAL";
@@ -9857,7 +9848,7 @@ class ImmutableApiClient {
9857
9848
  fees: makerFee ? [makerFee] : [],
9858
9849
  end_time: new Date(parseInt(`${orderComponents.endTime.toString()}000`, 10)).toISOString(),
9859
9850
  protocol_data: {
9860
- order_type: CreateOrderProtocolData.order_type.FULL_RESTRICTED,
9851
+ order_type: ProtocolData.order_type.FULL_RESTRICTED,
9861
9852
  zone_address: orderComponents.zone,
9862
9853
  seaport_address: this.seaportAddress,
9863
9854
  seaport_version: SEAPORT_CONTRACT_VERSION_V1_5,
@@ -24061,7 +24052,7 @@ const MAX_SECONDARY_FEE_BASIS_POINTS = 10000;
24061
24052
  /* Autogenerated file. Do not edit manually. */
24062
24053
  /* tslint:disable */
24063
24054
  /* eslint-disable */
24064
- const _abi$2 = [
24055
+ const _abi$2$1 = [
24065
24056
  {
24066
24057
  inputs: [],
24067
24058
  name: "getCurrentBlockTimestamp",
@@ -24161,7 +24152,7 @@ class Multicall__factory extends ContractFactory {
24161
24152
  super(...args);
24162
24153
  }
24163
24154
  else {
24164
- super(_abi$2, _bytecode$2$1, args[0]);
24155
+ super(_abi$2$1, _bytecode$2$1, args[0]);
24165
24156
  }
24166
24157
  }
24167
24158
  deploy(overrides) {
@@ -24177,12 +24168,12 @@ class Multicall__factory extends ContractFactory {
24177
24168
  return super.connect(signer);
24178
24169
  }
24179
24170
  static bytecode = _bytecode$2$1;
24180
- static abi = _abi$2;
24171
+ static abi = _abi$2$1;
24181
24172
  static createInterface() {
24182
- return new utils$1.Interface(_abi$2);
24173
+ return new utils$1.Interface(_abi$2$1);
24183
24174
  }
24184
24175
  static connect(address, signerOrProvider) {
24185
- return new Contract$1(address, _abi$2, signerOrProvider);
24176
+ return new Contract$1(address, _abi$2$1, signerOrProvider);
24186
24177
  }
24187
24178
  }
24188
24179
 
@@ -27073,6 +27064,75 @@ const $d85ad1457a3f1a83$export$db5daa1b5156ccfe = [
27073
27064
  type: "function"
27074
27065
  }
27075
27066
  ];
27067
+ const $d85ad1457a3f1a83$export$8b8be7a2a654f23e = [
27068
+ {
27069
+ constant: false,
27070
+ inputs: [
27071
+ {
27072
+ internalType: "address",
27073
+ name: "to",
27074
+ type: "address"
27075
+ },
27076
+ {
27077
+ internalType: "uint256",
27078
+ name: "tokenId",
27079
+ type: "uint256"
27080
+ }
27081
+ ],
27082
+ name: "approve",
27083
+ outputs: [],
27084
+ payable: false,
27085
+ stateMutability: "nonpayable",
27086
+ type: "function"
27087
+ },
27088
+ {
27089
+ constant: true,
27090
+ inputs: [
27091
+ {
27092
+ internalType: "address",
27093
+ name: "owner",
27094
+ type: "address"
27095
+ },
27096
+ {
27097
+ internalType: "address",
27098
+ name: "operator",
27099
+ type: "address"
27100
+ }
27101
+ ],
27102
+ name: "isApprovedForAll",
27103
+ outputs: [
27104
+ {
27105
+ internalType: "bool",
27106
+ name: "",
27107
+ type: "bool"
27108
+ }
27109
+ ],
27110
+ payable: false,
27111
+ stateMutability: "view",
27112
+ type: "function"
27113
+ },
27114
+ {
27115
+ constant: true,
27116
+ inputs: [
27117
+ {
27118
+ internalType: "uint256",
27119
+ name: "tokenId",
27120
+ type: "uint256"
27121
+ }
27122
+ ],
27123
+ name: "getApproved",
27124
+ outputs: [
27125
+ {
27126
+ internalType: "address",
27127
+ name: "",
27128
+ type: "address"
27129
+ }
27130
+ ],
27131
+ payable: false,
27132
+ stateMutability: "view",
27133
+ type: "function"
27134
+ }
27135
+ ];
27076
27136
 
27077
27137
 
27078
27138
  var $4b58188d47aafe8d$export$1fc8f52ad1810e52;
@@ -27126,6 +27186,7 @@ var $4b58188d47aafe8d$export$5d3b0ad129b9b98e;
27126
27186
  CheckoutErrorType["GET_ORDER_LISTING_ERROR"] = "GET_ORDER_LISTING_ERROR";
27127
27187
  CheckoutErrorType["SWITCH_NETWORK_UNSUPPORTED"] = "SWITCH_NETWORK_UNSUPPORTED";
27128
27188
  CheckoutErrorType["GET_ERC20_ALLOWANCE_ERROR"] = "GET_ERC20_ALLOWANCE_ERROR";
27189
+ CheckoutErrorType["GET_ERC721_ALLOWANCE_ERROR"] = "GET_ERC721_ALLOWANCE_ERROR";
27129
27190
  })($a8bc256d81a5e2c1$export$e3dc0620abde7f5a || ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a = {}));
27130
27191
  class $a8bc256d81a5e2c1$export$b722478a3cbfa3bc extends Error {
27131
27192
  message;
@@ -27845,13 +27906,31 @@ const $2499eab4caa6dc71$export$1ede6278abcdf1cb = (itemRequirements)=>{
27845
27906
  });
27846
27907
  return aggregatedItemRequirements.concat(Array.from(aggregatedMap.values()));
27847
27908
  };
27848
- const $2499eab4caa6dc71$export$c804c9ade5c28607 = (itemRequirements)=>$2499eab4caa6dc71$export$1ede6278abcdf1cb(itemRequirements);
27909
+ const $2499eab4caa6dc71$export$fa1f577106a81103 = (itemRequirements)=>{
27910
+ const aggregatedMap = new Map();
27911
+ const aggregatedItemRequirements = [];
27912
+ itemRequirements.forEach((itemRequirement)=>{
27913
+ const { type: type } = itemRequirement;
27914
+ if (type !== ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721) {
27915
+ aggregatedItemRequirements.push(itemRequirement);
27916
+ return;
27917
+ }
27918
+ const { contractAddress: contractAddress, spenderAddress: spenderAddress, id: id } = itemRequirement;
27919
+ const key = `${contractAddress}${spenderAddress}${id}`;
27920
+ const aggregateItem = aggregatedMap.get(key);
27921
+ if (!aggregateItem) aggregatedMap.set(key, {
27922
+ ...itemRequirement
27923
+ });
27924
+ });
27925
+ return aggregatedItemRequirements.concat(Array.from(aggregatedMap.values()));
27926
+ };
27927
+ const $2499eab4caa6dc71$export$c804c9ade5c28607 = (itemRequirements)=>$2499eab4caa6dc71$export$fa1f577106a81103($2499eab4caa6dc71$export$1ede6278abcdf1cb(itemRequirements));
27849
27928
 
27850
27929
 
27851
27930
 
27852
27931
 
27853
27932
 
27854
- const $95b61a5bfb091547$export$41491ea105c4dc2d = async (provider, ownerAddress, contractAddress, spenderAddress)=>{
27933
+ const $fc8b338399d890f3$export$41491ea105c4dc2d = async (provider, ownerAddress, contractAddress, spenderAddress)=>{
27855
27934
  try {
27856
27935
  const contract = new (0, Contract$1)(contractAddress, JSON.stringify((0, $d85ad1457a3f1a83$export$db5daa1b5156ccfe)), provider);
27857
27936
  return await contract.allowance(ownerAddress, spenderAddress);
@@ -27861,7 +27940,7 @@ const $95b61a5bfb091547$export$41491ea105c4dc2d = async (provider, ownerAddress,
27861
27940
  });
27862
27941
  }
27863
27942
  };
27864
- const $95b61a5bfb091547$export$5c6bea080a6ee647 = async (provider, ownerAddress, contractAddress, spenderAddress, amount)=>{
27943
+ const $fc8b338399d890f3$export$5c6bea080a6ee647 = async (provider, ownerAddress, contractAddress, spenderAddress, amount)=>{
27865
27944
  try {
27866
27945
  const contract = new (0, Contract$1)(contractAddress, JSON.stringify((0, $d85ad1457a3f1a83$export$db5daa1b5156ccfe)), provider);
27867
27946
  const approveTransaction = await contract.populateTransaction.approve(spenderAddress, amount);
@@ -27873,7 +27952,7 @@ const $95b61a5bfb091547$export$5c6bea080a6ee647 = async (provider, ownerAddress,
27873
27952
  });
27874
27953
  }
27875
27954
  };
27876
- const $95b61a5bfb091547$export$d93c00812189e36 = async (provider, ownerAddress, itemRequirements)=>{
27955
+ const $fc8b338399d890f3$export$d93c00812189e36 = async (provider, ownerAddress, itemRequirements)=>{
27877
27956
  let sufficient = true;
27878
27957
  const sufficientAllowances = [];
27879
27958
  const erc20s = new Map();
@@ -27885,8 +27964,9 @@ const $95b61a5bfb091547$export$d93c00812189e36 = async (provider, ownerAddress,
27885
27964
  for (const itemRequirement of itemRequirements){
27886
27965
  if (itemRequirement.type !== ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC20) continue;
27887
27966
  const { contractAddress: contractAddress, spenderAddress: spenderAddress } = itemRequirement;
27888
- erc20s.set(`${contractAddress}${spenderAddress}`, itemRequirement);
27889
- allowancePromises.set(`${contractAddress}${spenderAddress}`, $95b61a5bfb091547$export$41491ea105c4dc2d(provider, ownerAddress, contractAddress, spenderAddress));
27967
+ const key = `${contractAddress}${spenderAddress}`;
27968
+ erc20s.set(key, itemRequirement);
27969
+ allowancePromises.set(key, $fc8b338399d890f3$export$41491ea105c4dc2d(provider, ownerAddress, contractAddress, spenderAddress));
27890
27970
  }
27891
27971
  const allowances = await Promise.all(allowancePromises.values());
27892
27972
  const allowancePromiseIds = Array.from(allowancePromises.keys());
@@ -27905,19 +27985,21 @@ const $95b61a5bfb091547$export$d93c00812189e36 = async (provider, ownerAddress,
27905
27985
  }
27906
27986
  sufficient = false; // Set sufficient false on the root of the return object when an ERC20 is insufficient
27907
27987
  const { contractAddress: contractAddress, spenderAddress: spenderAddress } = itemRequirement;
27988
+ const key = `${contractAddress}${spenderAddress}`;
27908
27989
  const delta = itemRequirement.amount.sub(allowances[index]);
27909
27990
  // Create maps for both the insufficient ERC20 data and the transaction promises using the same key so the results can be merged
27910
- insufficientERC20s.set(`${contractAddress}${spenderAddress}`, {
27991
+ insufficientERC20s.set(key, {
27992
+ type: ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC20,
27911
27993
  sufficient: false,
27912
27994
  delta: delta,
27913
27995
  itemRequirement: itemRequirement,
27914
27996
  approvalTransaction: undefined
27915
27997
  });
27916
- transactionPromises.set(`${contractAddress}${spenderAddress}`, $95b61a5bfb091547$export$5c6bea080a6ee647(provider, ownerAddress, contractAddress, spenderAddress, delta));
27998
+ transactionPromises.set(key, $fc8b338399d890f3$export$5c6bea080a6ee647(provider, ownerAddress, contractAddress, spenderAddress, delta));
27917
27999
  }
27918
28000
  // Resolves the approval transactions and merges them with the insufficient ERC20 data
27919
28001
  const transactions = await Promise.all(transactionPromises.values());
27920
- const transactionPromiseIds = Array.from(allowancePromises.keys());
28002
+ const transactionPromiseIds = Array.from(transactionPromises.keys());
27921
28003
  transactions.forEach((transaction, index)=>{
27922
28004
  const insufficientERC20 = insufficientERC20s.get(transactionPromiseIds[index]);
27923
28005
  if (!insufficientERC20) return;
@@ -27932,16 +28014,156 @@ const $95b61a5bfb091547$export$d93c00812189e36 = async (provider, ownerAddress,
27932
28014
  };
27933
28015
 
27934
28016
 
28017
+
28018
+
28019
+
28020
+ const $35c3fc7013888ba5$export$90366d6b714c6f69 = async (provider, ownerAddress, contractAddress, spenderAddress)=>{
28021
+ try {
28022
+ const contract = new (0, Contract$1)(contractAddress, JSON.stringify((0, $d85ad1457a3f1a83$export$8b8be7a2a654f23e)), provider);
28023
+ return await contract.isApprovedForAll(ownerAddress, spenderAddress);
28024
+ } catch (err) {
28025
+ throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Failed to check approval for all ERC721s of collection", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
28026
+ contractAddress: contractAddress
28027
+ });
28028
+ }
28029
+ };
28030
+ const $35c3fc7013888ba5$export$ebb2a35f2b4cf5f6 = async (provider, ownerAddress, contractAddress, spenderAddress, id)=>{
28031
+ try {
28032
+ const contract = new (0, Contract$1)(contractAddress, JSON.stringify((0, $d85ad1457a3f1a83$export$8b8be7a2a654f23e)), provider);
28033
+ const transaction = await contract.populateTransaction.approve(spenderAddress, id);
28034
+ if (transaction) transaction.from = ownerAddress;
28035
+ return transaction;
28036
+ } catch (err) {
28037
+ throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Failed to get the approval transaction for ERC721", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
28038
+ contractAddress: contractAddress
28039
+ });
28040
+ }
28041
+ };
28042
+ const $35c3fc7013888ba5$export$c4605a8dd415eeea = async (provider, contractAddress, id)=>{
28043
+ try {
28044
+ const contract = new (0, Contract$1)(contractAddress, JSON.stringify((0, $d85ad1457a3f1a83$export$8b8be7a2a654f23e)), provider);
28045
+ return await contract.getApproved(id);
28046
+ } catch (err) {
28047
+ throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Failed to get approved address for ERC721", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
28048
+ contractAddress: contractAddress
28049
+ });
28050
+ }
28051
+ };
28052
+ const $35c3fc7013888ba5$export$280481f16b8b6845 = (id, contractAddress)=>{
28053
+ const parsedId = parseInt(id, 10);
28054
+ if (Number.isNaN(parsedId)) throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Invalid ERC721 ID", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
28055
+ id: id,
28056
+ contractAddress: contractAddress
28057
+ });
28058
+ return parsedId;
28059
+ };
28060
+ const $35c3fc7013888ba5$export$bc63cf1bab32d6da = async (provider, itemRequirements, owner)=>{
28061
+ const approvedCollections = new Map();
28062
+ const approvedForAllPromises = new Map();
28063
+ for (const itemRequirement of itemRequirements){
28064
+ if (itemRequirement.type !== ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721) continue;
28065
+ const { contractAddress: contractAddress, spenderAddress: spenderAddress } = itemRequirement;
28066
+ const key = `${contractAddress}-${spenderAddress}`;
28067
+ approvedCollections.set(key, false);
28068
+ if (approvedForAllPromises.has(key)) continue;
28069
+ approvedForAllPromises.set(key, $35c3fc7013888ba5$export$90366d6b714c6f69(provider, owner, contractAddress, spenderAddress));
28070
+ }
28071
+ const approvals = await Promise.all(approvedForAllPromises.values());
28072
+ const keys = Array.from(approvedForAllPromises.keys());
28073
+ approvals.forEach((approval, index)=>{
28074
+ approvedCollections.set(keys[index], approval);
28075
+ });
28076
+ return approvedCollections;
28077
+ };
28078
+ const $35c3fc7013888ba5$export$be546c525d418988 = async (provider, ownerAddress, itemRequirements)=>{
28079
+ let sufficient = true;
28080
+ const sufficientAllowances = [];
28081
+ // Setup maps to be able to link data back to the associated promises
28082
+ const erc721s = new Map();
28083
+ const approvedAddressPromises = new Map();
28084
+ const insufficientERC721s = new Map();
28085
+ const transactionPromises = new Map();
28086
+ // Check if there are any collections with approvals for all ERC721s for a given spender
28087
+ const approvedCollections = await $35c3fc7013888ba5$export$bc63cf1bab32d6da(provider, itemRequirements, ownerAddress);
28088
+ // Populate maps for both the ERC721 data and promises to get the approved addresses using the same key
28089
+ // so the promise and data can be linked together when the promise is resolved
28090
+ for (const itemRequirement of itemRequirements){
28091
+ if (itemRequirement.type !== ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721) continue;
28092
+ const { contractAddress: contractAddress, id: id, spenderAddress: spenderAddress } = itemRequirement;
28093
+ // If the collection is approved for all then just set the item requirements and sufficient true
28094
+ const approvedForAllKey = `${contractAddress}-${spenderAddress}`;
28095
+ const approvedForAll = approvedCollections.get(approvedForAllKey);
28096
+ if (approvedForAll) {
28097
+ sufficientAllowances.push({
28098
+ sufficient: true,
28099
+ itemRequirement: itemRequirement
28100
+ });
28101
+ continue;
28102
+ }
28103
+ // If collection not approved for all then check if the given ERC721 is approved for the spender
28104
+ const key = `${contractAddress}-${id}`;
28105
+ const convertedId = $35c3fc7013888ba5$export$280481f16b8b6845(id, contractAddress);
28106
+ erc721s.set(key, itemRequirement);
28107
+ approvedAddressPromises.set(key, $35c3fc7013888ba5$export$c4605a8dd415eeea(provider, contractAddress, convertedId));
28108
+ }
28109
+ const approvedAddresses = await Promise.all(approvedAddressPromises.values());
28110
+ const approvedAddressPromiseIds = Array.from(approvedAddressPromises.keys());
28111
+ // Iterate through the approved address promises and get the ERC721 data from the ERC721 map
28112
+ // If the approved address returned for that ERC721 is for the spender then just set the item requirements and sufficient true
28113
+ // If the approved address does not match the spender then return the approval transaction
28114
+ for(let index = 0; index < approvedAddresses.length; index++){
28115
+ const itemRequirement = erc721s.get(approvedAddressPromiseIds[index]);
28116
+ if (!itemRequirement || itemRequirement.type !== ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721) continue;
28117
+ if (approvedAddresses[index] === itemRequirement.spenderAddress) {
28118
+ sufficientAllowances.push({
28119
+ sufficient: true,
28120
+ itemRequirement: itemRequirement
28121
+ });
28122
+ continue;
28123
+ }
28124
+ sufficient = false; // Set sufficient false on the root of the return object when an ERC721 is insufficient
28125
+ const { contractAddress: contractAddress, id: id, spenderAddress: spenderAddress } = itemRequirement;
28126
+ const key = `${contractAddress}-${id}`;
28127
+ const convertedId = $35c3fc7013888ba5$export$280481f16b8b6845(id, contractAddress);
28128
+ // Create maps for both the insufficient ERC721 data and the transaction promises using the same key so the results can be merged
28129
+ insufficientERC721s.set(key, {
28130
+ type: ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721,
28131
+ sufficient: false,
28132
+ itemRequirement: itemRequirement,
28133
+ approvalTransaction: undefined
28134
+ });
28135
+ transactionPromises.set(key, $35c3fc7013888ba5$export$ebb2a35f2b4cf5f6(provider, ownerAddress, contractAddress, spenderAddress, convertedId));
28136
+ }
28137
+ // Resolves the approval transactions and merges them with the insufficient ERC721 data
28138
+ const transactions = await Promise.all(transactionPromises.values());
28139
+ const transactionPromiseIds = Array.from(transactionPromises.keys());
28140
+ transactions.forEach((transaction, index)=>{
28141
+ const insufficientERC721 = insufficientERC721s.get(transactionPromiseIds[index]);
28142
+ if (!insufficientERC721) return;
28143
+ if (insufficientERC721.sufficient) return;
28144
+ insufficientERC721.approvalTransaction = transaction;
28145
+ });
28146
+ // Merge the allowance arrays to get both the sufficient allowances and the insufficient ERC721 allowances
28147
+ return {
28148
+ sufficient: sufficient,
28149
+ allowances: sufficientAllowances.concat(Array.from(insufficientERC721s.values()))
28150
+ };
28151
+ };
28152
+
28153
+
28154
+
28155
+
27935
28156
  const $0e7419077c373b24$export$9e073f9ada8c81e6 = async (provider, itemRequirements, transactionOrGasAmount)=>{
27936
- const ownerAddress = await provider.getSigner().getAddress();
27937
28157
  // eslint-disable-next-line no-console
27938
28158
  console.log(provider, itemRequirements, transactionOrGasAmount);
28159
+ const ownerAddress = await provider.getSigner().getAddress();
27939
28160
  const aggregatedItems = ($2499eab4caa6dc71$export$c804c9ade5c28607)(itemRequirements);
28161
+ const erc20Allowances = await ($fc8b338399d890f3$export$d93c00812189e36)(provider, ownerAddress, aggregatedItems);
28162
+ const erc721Allowances = await ($35c3fc7013888ba5$export$be546c525d418988)(provider, ownerAddress, aggregatedItems);
27940
28163
  // eslint-disable-next-line no-console
27941
- console.log(aggregatedItems);
27942
- const erc20Allowances = await ($95b61a5bfb091547$export$d93c00812189e36)(provider, ownerAddress, aggregatedItems);
28164
+ console.log("ERC20 Allowances", erc20Allowances);
27943
28165
  // eslint-disable-next-line no-console
27944
- console.log(erc20Allowances);
28166
+ console.log("ERC721 Allowances", erc721Allowances);
27945
28167
  return {
27946
28168
  sufficient: true,
27947
28169
  transactionRequirements: [
@@ -28258,8 +28480,11 @@ var checkout_sdk = /*#__PURE__*/Object.freeze({
28258
28480
  Checkout: $a8cb37a3fc8eb863$export$1f60ba4ec72508a0,
28259
28481
  get CheckoutErrorType () { return $a8bc256d81a5e2c1$export$e3dc0620abde7f5a; },
28260
28482
  get GasEstimateType () { return $de275b98d2b651c3$export$788b1fd17f3dad84; },
28483
+ get GasTokenType () { return $4b58188d47aafe8d$export$537fa3efd10ed435; },
28484
+ get ItemType () { return $4b58188d47aafe8d$export$1fc8f52ad1810e52; },
28261
28485
  get NetworkFilterTypes () { return $a47e48dd2c04791b$export$1f05a55fe0680cc7; },
28262
28486
  get TokenFilterTypes () { return $08d5ddc39acd6833$export$fd9b17d87f4121d2; },
28487
+ get TransactionOrGasType () { return $4b58188d47aafe8d$export$65c64e46348ee3c1; },
28263
28488
  get WalletFilterTypes () { return $4f91c5f280efe242$export$a75605c67ea83a5a; },
28264
28489
  get WalletProviderName () { return $e768639828688ca3$export$2d7a51a18d87e21d; }
28265
28490
  });
@@ -28267,7 +28492,7 @@ var checkout_sdk = /*#__PURE__*/Object.freeze({
28267
28492
  function $parcel$export(e, n, v, s) {
28268
28493
  Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
28269
28494
  }
28270
- const $d663162fd5a0853f$export$38a083d9fb5551ca = "0.12.0-alpha";
28495
+ const $d663162fd5a0853f$export$38a083d9fb5551ca = "0.13.0-alpha.1";
28271
28496
  const $d663162fd5a0853f$export$83bf90b30cdfd29f = ()=>false;
28272
28497
  const $d663162fd5a0853f$export$1169f5475725171b = ()=>$d663162fd5a0853f$export$38a083d9fb5551ca;
28273
28498
 
@@ -28606,7 +28831,7 @@ var checkout_widgets = /*#__PURE__*/Object.freeze({
28606
28831
  /* Autogenerated file. Do not edit manually. */
28607
28832
  /* tslint:disable */
28608
28833
  /* eslint-disable */
28609
- const _abi$4 = [
28834
+ const _abi$5 = [
28610
28835
  {
28611
28836
  inputs: [
28612
28837
  {
@@ -28894,15 +29119,15 @@ const _abi$4 = [
28894
29119
  type: "function",
28895
29120
  },
28896
29121
  ];
28897
- const _bytecode$2 = "0x60806040523480156200001157600080fd5b50604051620017ec380380620017ec8339818101604052810190620000379190620001f6565b8160039081620000489190620004c6565b5080600490816200005a9190620004c6565b505050620005ad565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000cc8262000081565b810181811067ffffffffffffffff82111715620000ee57620000ed62000092565b5b80604052505050565b60006200010362000063565b9050620001118282620000c1565b919050565b600067ffffffffffffffff82111562000134576200013362000092565b5b6200013f8262000081565b9050602081019050919050565b60005b838110156200016c5780820151818401526020810190506200014f565b60008484015250505050565b60006200018f620001898462000116565b620000f7565b905082815260208101848484011115620001ae57620001ad6200007c565b5b620001bb8482856200014c565b509392505050565b600082601f830112620001db57620001da62000077565b5b8151620001ed84826020860162000178565b91505092915050565b6000806040838503121562000210576200020f6200006d565b5b600083015167ffffffffffffffff81111562000231576200023062000072565b5b6200023f85828601620001c3565b925050602083015167ffffffffffffffff81111562000263576200026262000072565b5b6200027185828601620001c3565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ce57607f821691505b602082108103620002e457620002e362000286565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030f565b6200035a86836200030f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a7620003a16200039b8462000372565b6200037c565b62000372565b9050919050565b6000819050919050565b620003c38362000386565b620003db620003d282620003ae565b8484546200031c565b825550505050565b600090565b620003f2620003e3565b620003ff818484620003b8565b505050565b5b8181101562000427576200041b600082620003e8565b60018101905062000405565b5050565b601f82111562000476576200044081620002ea565b6200044b84620002ff565b810160208510156200045b578190505b620004736200046a85620002ff565b83018262000404565b50505b505050565b600082821c905092915050565b60006200049b600019846008026200047b565b1980831691505092915050565b6000620004b6838362000488565b9150826002028217905092915050565b620004d1826200027b565b67ffffffffffffffff811115620004ed57620004ec62000092565b5b620004f98254620002b5565b620005068282856200042b565b600060209050601f8311600181146200053e576000841562000529578287015190505b620005358582620004a8565b865550620005a5565b601f1984166200054e86620002ea565b60005b82811015620005785784890151825560018201915060208501945060208101905062000551565b8683101562000598578489015162000594601f89168262000488565b8355505b6001600288020188555050505b505050505050565b61122f80620005bd6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b0c565b60405180910390f35b6100e660048036038101906100e19190610bc7565b610308565b6040516100f39190610c22565b60405180910390f35b61010461032b565b6040516101119190610c4c565b60405180910390f35b610134600480360381019061012f9190610c67565b610335565b6040516101419190610c22565b60405180910390f35b610152610364565b60405161015f9190610cd6565b60405180910390f35b610182600480360381019061017d9190610bc7565b61036d565b60405161018f9190610c22565b60405180910390f35b6101b260048036038101906101ad9190610cf1565b6103a4565b6040516101bf9190610c4c565b60405180910390f35b6101d06103ec565b6040516101dd9190610b0c565b60405180910390f35b61020060048036038101906101fb9190610bc7565b61047e565b60405161020d9190610c22565b60405180910390f35b610230600480360381019061022b9190610bc7565b6104f5565b60405161023d9190610c22565b60405180910390f35b610260600480360381019061025b9190610d1e565b610518565b60405161026d9190610c4c565b60405180910390f35b60606003805461028590610d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d8d565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610ded565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d8d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e93565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fb7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c4c565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611023565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611147565b60405180910390fd5b6108e5838383610a72565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111d9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a599190610c4c565b60405180910390a3610a6c848484610a77565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ab6578082015181840152602081019050610a9b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ade82610a7c565b610ae88185610a87565b9350610af8818560208601610a98565b610b0181610ac2565b840191505092915050565b60006020820190508181036000830152610b268184610ad3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b5e82610b33565b9050919050565b610b6e81610b53565b8114610b7957600080fd5b50565b600081359050610b8b81610b65565b92915050565b6000819050919050565b610ba481610b91565b8114610baf57600080fd5b50565b600081359050610bc181610b9b565b92915050565b60008060408385031215610bde57610bdd610b2e565b5b6000610bec85828601610b7c565b9250506020610bfd85828601610bb2565b9150509250929050565b60008115159050919050565b610c1c81610c07565b82525050565b6000602082019050610c376000830184610c13565b92915050565b610c4681610b91565b82525050565b6000602082019050610c616000830184610c3d565b92915050565b600080600060608486031215610c8057610c7f610b2e565b5b6000610c8e86828701610b7c565b9350506020610c9f86828701610b7c565b9250506040610cb086828701610bb2565b9150509250925092565b600060ff82169050919050565b610cd081610cba565b82525050565b6000602082019050610ceb6000830184610cc7565b92915050565b600060208284031215610d0757610d06610b2e565b5b6000610d1584828501610b7c565b91505092915050565b60008060408385031215610d3557610d34610b2e565b5b6000610d4385828601610b7c565b9250506020610d5485828601610b7c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610da557607f821691505b602082108103610db857610db7610d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610df882610b91565b9150610e0383610b91565b9250828201905080821115610e1b57610e1a610dbe565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e7d602583610a87565b9150610e8882610e21565b604082019050919050565b60006020820190508181036000830152610eac81610e70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f0f602483610a87565b9150610f1a82610eb3565b604082019050919050565b60006020820190508181036000830152610f3e81610f02565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fa1602283610a87565b9150610fac82610f45565b604082019050919050565b60006020820190508181036000830152610fd081610f94565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061100d601d83610a87565b915061101882610fd7565b602082019050919050565b6000602082019050818103600083015261103c81611000565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061109f602583610a87565b91506110aa82611043565b604082019050919050565b600060208201905081810360008301526110ce81611092565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611131602383610a87565b915061113c826110d5565b604082019050919050565b6000602082019050818103600083015261116081611124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111c3602683610a87565b91506111ce82611167565b604082019050919050565b600060208201905081810360008301526111f2816111b6565b905091905056fea26469706673582212204188b273199f085e1921ec1a1fa55abdee2e425960bda675a51fac85acd9972064736f6c63430008110033";
28898
- const isSuperArgs$2 = (xs) => xs.length > 1;
29122
+ const _bytecode$3 = "0x60806040523480156200001157600080fd5b50604051620017ec380380620017ec8339818101604052810190620000379190620001f6565b8160039081620000489190620004c6565b5080600490816200005a9190620004c6565b505050620005ad565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000cc8262000081565b810181811067ffffffffffffffff82111715620000ee57620000ed62000092565b5b80604052505050565b60006200010362000063565b9050620001118282620000c1565b919050565b600067ffffffffffffffff82111562000134576200013362000092565b5b6200013f8262000081565b9050602081019050919050565b60005b838110156200016c5780820151818401526020810190506200014f565b60008484015250505050565b60006200018f620001898462000116565b620000f7565b905082815260208101848484011115620001ae57620001ad6200007c565b5b620001bb8482856200014c565b509392505050565b600082601f830112620001db57620001da62000077565b5b8151620001ed84826020860162000178565b91505092915050565b6000806040838503121562000210576200020f6200006d565b5b600083015167ffffffffffffffff81111562000231576200023062000072565b5b6200023f85828601620001c3565b925050602083015167ffffffffffffffff81111562000263576200026262000072565b5b6200027185828601620001c3565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ce57607f821691505b602082108103620002e457620002e362000286565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030f565b6200035a86836200030f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a7620003a16200039b8462000372565b6200037c565b62000372565b9050919050565b6000819050919050565b620003c38362000386565b620003db620003d282620003ae565b8484546200031c565b825550505050565b600090565b620003f2620003e3565b620003ff818484620003b8565b505050565b5b8181101562000427576200041b600082620003e8565b60018101905062000405565b5050565b601f82111562000476576200044081620002ea565b6200044b84620002ff565b810160208510156200045b578190505b620004736200046a85620002ff565b83018262000404565b50505b505050565b600082821c905092915050565b60006200049b600019846008026200047b565b1980831691505092915050565b6000620004b6838362000488565b9150826002028217905092915050565b620004d1826200027b565b67ffffffffffffffff811115620004ed57620004ec62000092565b5b620004f98254620002b5565b620005068282856200042b565b600060209050601f8311600181146200053e576000841562000529578287015190505b620005358582620004a8565b865550620005a5565b601f1984166200054e86620002ea565b60005b82811015620005785784890151825560018201915060208501945060208101905062000551565b8683101562000598578489015162000594601f89168262000488565b8355505b6001600288020188555050505b505050505050565b61122f80620005bd6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b0c565b60405180910390f35b6100e660048036038101906100e19190610bc7565b610308565b6040516100f39190610c22565b60405180910390f35b61010461032b565b6040516101119190610c4c565b60405180910390f35b610134600480360381019061012f9190610c67565b610335565b6040516101419190610c22565b60405180910390f35b610152610364565b60405161015f9190610cd6565b60405180910390f35b610182600480360381019061017d9190610bc7565b61036d565b60405161018f9190610c22565b60405180910390f35b6101b260048036038101906101ad9190610cf1565b6103a4565b6040516101bf9190610c4c565b60405180910390f35b6101d06103ec565b6040516101dd9190610b0c565b60405180910390f35b61020060048036038101906101fb9190610bc7565b61047e565b60405161020d9190610c22565b60405180910390f35b610230600480360381019061022b9190610bc7565b6104f5565b60405161023d9190610c22565b60405180910390f35b610260600480360381019061025b9190610d1e565b610518565b60405161026d9190610c4c565b60405180910390f35b60606003805461028590610d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d8d565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610ded565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d8d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e93565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fb7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c4c565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611023565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611147565b60405180910390fd5b6108e5838383610a72565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111d9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a599190610c4c565b60405180910390a3610a6c848484610a77565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ab6578082015181840152602081019050610a9b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ade82610a7c565b610ae88185610a87565b9350610af8818560208601610a98565b610b0181610ac2565b840191505092915050565b60006020820190508181036000830152610b268184610ad3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b5e82610b33565b9050919050565b610b6e81610b53565b8114610b7957600080fd5b50565b600081359050610b8b81610b65565b92915050565b6000819050919050565b610ba481610b91565b8114610baf57600080fd5b50565b600081359050610bc181610b9b565b92915050565b60008060408385031215610bde57610bdd610b2e565b5b6000610bec85828601610b7c565b9250506020610bfd85828601610bb2565b9150509250929050565b60008115159050919050565b610c1c81610c07565b82525050565b6000602082019050610c376000830184610c13565b92915050565b610c4681610b91565b82525050565b6000602082019050610c616000830184610c3d565b92915050565b600080600060608486031215610c8057610c7f610b2e565b5b6000610c8e86828701610b7c565b9350506020610c9f86828701610b7c565b9250506040610cb086828701610bb2565b9150509250925092565b600060ff82169050919050565b610cd081610cba565b82525050565b6000602082019050610ceb6000830184610cc7565b92915050565b600060208284031215610d0757610d06610b2e565b5b6000610d1584828501610b7c565b91505092915050565b60008060408385031215610d3557610d34610b2e565b5b6000610d4385828601610b7c565b9250506020610d5485828601610b7c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610da557607f821691505b602082108103610db857610db7610d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610df882610b91565b9150610e0383610b91565b9250828201905080821115610e1b57610e1a610dbe565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e7d602583610a87565b9150610e8882610e21565b604082019050919050565b60006020820190508181036000830152610eac81610e70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f0f602483610a87565b9150610f1a82610eb3565b604082019050919050565b60006020820190508181036000830152610f3e81610f02565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fa1602283610a87565b9150610fac82610f45565b604082019050919050565b60006020820190508181036000830152610fd081610f94565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061100d601d83610a87565b915061101882610fd7565b602082019050919050565b6000602082019050818103600083015261103c81611000565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061109f602583610a87565b91506110aa82611043565b604082019050919050565b600060208201905081810360008301526110ce81611092565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611131602383610a87565b915061113c826110d5565b604082019050919050565b6000602082019050818103600083015261116081611124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111c3602683610a87565b91506111ce82611167565b604082019050919050565b600060208201905081810360008301526111f2816111b6565b905091905056fea26469706673582212204188b273199f085e1921ec1a1fa55abdee2e425960bda675a51fac85acd9972064736f6c63430008110033";
29123
+ const isSuperArgs$3 = (xs) => xs.length > 1;
28899
29124
  class ERC20__factory extends ContractFactory {
28900
29125
  constructor(...args) {
28901
- if (isSuperArgs$2(args)) {
29126
+ if (isSuperArgs$3(args)) {
28902
29127
  super(...args);
28903
29128
  }
28904
29129
  else {
28905
- super(_abi$4, _bytecode$2, args[0]);
29130
+ super(_abi$5, _bytecode$3, args[0]);
28906
29131
  }
28907
29132
  }
28908
29133
  deploy(name_, symbol_, overrides) {
@@ -28917,25 +29142,25 @@ class ERC20__factory extends ContractFactory {
28917
29142
  connect(signer) {
28918
29143
  return super.connect(signer);
28919
29144
  }
28920
- static bytecode = _bytecode$2;
28921
- static abi = _abi$4;
29145
+ static bytecode = _bytecode$3;
29146
+ static abi = _abi$5;
28922
29147
  static createInterface() {
28923
- return new utils$1.Interface(_abi$4);
29148
+ return new utils$1.Interface(_abi$5);
28924
29149
  }
28925
29150
  static connect(address, signerOrProvider) {
28926
- return new Contract$1(address, _abi$4, signerOrProvider);
29151
+ return new Contract$1(address, _abi$5, signerOrProvider);
28927
29152
  }
28928
29153
  }
28929
29154
 
28930
29155
  /* Autogenerated file. Do not edit manually. */
28931
29156
  /* tslint:disable */
28932
29157
  /* eslint-disable */
28933
- const _abi$1 = [
29158
+ const _abi$2 = [
28934
29159
  {
28935
29160
  inputs: [
28936
29161
  {
28937
29162
  internalType: "address",
28938
- name: "owner",
29163
+ name: "owner_",
28939
29164
  type: "address",
28940
29165
  },
28941
29166
  {
@@ -28960,17 +29185,17 @@ const _abi$1 = [
28960
29185
  },
28961
29186
  {
28962
29187
  internalType: "address",
28963
- name: "_royaltyAllowlist",
29188
+ name: "royaltyAllowlist_",
28964
29189
  type: "address",
28965
29190
  },
28966
29191
  {
28967
29192
  internalType: "address",
28968
- name: "_receiver",
29193
+ name: "royaltyReceiver_",
28969
29194
  type: "address",
28970
29195
  },
28971
29196
  {
28972
29197
  internalType: "uint96",
28973
- name: "_feeNumerator",
29198
+ name: "feeNumerator_",
28974
29199
  type: "uint96",
28975
29200
  },
28976
29201
  ],
@@ -29010,6 +29235,54 @@ const _abi$1 = [
29010
29235
  name: "CallerNotInAllowlist",
29011
29236
  type: "error",
29012
29237
  },
29238
+ {
29239
+ inputs: [
29240
+ {
29241
+ internalType: "uint256",
29242
+ name: "tokenId",
29243
+ type: "uint256",
29244
+ },
29245
+ ],
29246
+ name: "IImmutableERC721IDAboveThreshold",
29247
+ type: "error",
29248
+ },
29249
+ {
29250
+ inputs: [],
29251
+ name: "IImmutableERC721MismatchedTransferLengths",
29252
+ type: "error",
29253
+ },
29254
+ {
29255
+ inputs: [
29256
+ {
29257
+ internalType: "uint256",
29258
+ name: "tokenId",
29259
+ type: "uint256",
29260
+ },
29261
+ ],
29262
+ name: "IImmutableERC721NotOwnerOrOperator",
29263
+ type: "error",
29264
+ },
29265
+ {
29266
+ inputs: [],
29267
+ name: "IImmutableERC721SendingToZerothAddress",
29268
+ type: "error",
29269
+ },
29270
+ {
29271
+ inputs: [
29272
+ {
29273
+ internalType: "uint256",
29274
+ name: "tokenId",
29275
+ type: "uint256",
29276
+ },
29277
+ ],
29278
+ name: "IImmutableERC721TokenAlreadyBurned",
29279
+ type: "error",
29280
+ },
29281
+ {
29282
+ inputs: [],
29283
+ name: "RoyaltyEnforcementDoesNotImplementRequiredInterface",
29284
+ type: "error",
29285
+ },
29013
29286
  {
29014
29287
  inputs: [
29015
29288
  {
@@ -29173,7 +29446,7 @@ const _abi$1 = [
29173
29446
  type: "address",
29174
29447
  },
29175
29448
  ],
29176
- name: "RoyaltytAllowlistRegistryUpdated",
29449
+ name: "RoyaltyAllowlistRegistryUpdated",
29177
29450
  type: "event",
29178
29451
  },
29179
29452
  {
@@ -29227,38 +29500,6 @@ const _abi$1 = [
29227
29500
  stateMutability: "view",
29228
29501
  type: "function",
29229
29502
  },
29230
- {
29231
- inputs: [
29232
- {
29233
- internalType: "uint256",
29234
- name: "",
29235
- type: "uint256",
29236
- },
29237
- ],
29238
- name: "_burnedTokens",
29239
- outputs: [
29240
- {
29241
- internalType: "bool",
29242
- name: "",
29243
- type: "bool",
29244
- },
29245
- ],
29246
- stateMutability: "view",
29247
- type: "function",
29248
- },
29249
- {
29250
- inputs: [],
29251
- name: "_totalSupply",
29252
- outputs: [
29253
- {
29254
- internalType: "uint256",
29255
- name: "",
29256
- type: "uint256",
29257
- },
29258
- ],
29259
- stateMutability: "view",
29260
- type: "function",
29261
- },
29262
29503
  {
29263
29504
  inputs: [
29264
29505
  {
@@ -29312,13 +29553,126 @@ const _abi$1 = [
29312
29553
  {
29313
29554
  inputs: [
29314
29555
  {
29315
- internalType: "uint256",
29316
- name: "tokenId",
29317
- type: "uint256",
29318
- },
29319
- ],
29320
- name: "burn",
29321
- outputs: [],
29556
+ components: [
29557
+ {
29558
+ internalType: "address",
29559
+ name: "to",
29560
+ type: "address",
29561
+ },
29562
+ {
29563
+ internalType: "uint256[]",
29564
+ name: "tokenIds",
29565
+ type: "uint256[]",
29566
+ },
29567
+ ],
29568
+ internalType: "struct ERC721Hybrid.IDMint[]",
29569
+ name: "mints",
29570
+ type: "tuple[]",
29571
+ },
29572
+ ],
29573
+ name: "batchMintByIDToMultiple",
29574
+ outputs: [],
29575
+ stateMutability: "nonpayable",
29576
+ type: "function",
29577
+ },
29578
+ {
29579
+ inputs: [
29580
+ {
29581
+ components: [
29582
+ {
29583
+ internalType: "address",
29584
+ name: "to",
29585
+ type: "address",
29586
+ },
29587
+ {
29588
+ internalType: "uint256",
29589
+ name: "quantity",
29590
+ type: "uint256",
29591
+ },
29592
+ ],
29593
+ internalType: "struct ERC721Hybrid.Mint[]",
29594
+ name: "mints",
29595
+ type: "tuple[]",
29596
+ },
29597
+ ],
29598
+ name: "batchMintByQuantity",
29599
+ outputs: [],
29600
+ stateMutability: "nonpayable",
29601
+ type: "function",
29602
+ },
29603
+ {
29604
+ inputs: [
29605
+ {
29606
+ components: [
29607
+ {
29608
+ internalType: "address",
29609
+ name: "to",
29610
+ type: "address",
29611
+ },
29612
+ {
29613
+ internalType: "uint256[]",
29614
+ name: "tokenIds",
29615
+ type: "uint256[]",
29616
+ },
29617
+ ],
29618
+ internalType: "struct ERC721Hybrid.IDMint[]",
29619
+ name: "mints",
29620
+ type: "tuple[]",
29621
+ },
29622
+ ],
29623
+ name: "batchSafeMintByIDToMultiple",
29624
+ outputs: [],
29625
+ stateMutability: "nonpayable",
29626
+ type: "function",
29627
+ },
29628
+ {
29629
+ inputs: [
29630
+ {
29631
+ components: [
29632
+ {
29633
+ internalType: "address",
29634
+ name: "to",
29635
+ type: "address",
29636
+ },
29637
+ {
29638
+ internalType: "uint256",
29639
+ name: "quantity",
29640
+ type: "uint256",
29641
+ },
29642
+ ],
29643
+ internalType: "struct ERC721Hybrid.Mint[]",
29644
+ name: "mints",
29645
+ type: "tuple[]",
29646
+ },
29647
+ ],
29648
+ name: "batchSafeMintByQuantity",
29649
+ outputs: [],
29650
+ stateMutability: "nonpayable",
29651
+ type: "function",
29652
+ },
29653
+ {
29654
+ inputs: [],
29655
+ name: "bulkMintThreshold",
29656
+ outputs: [
29657
+ {
29658
+ internalType: "uint256",
29659
+ name: "",
29660
+ type: "uint256",
29661
+ },
29662
+ ],
29663
+ stateMutability: "pure",
29664
+ type: "function",
29665
+ },
29666
+ {
29667
+ inputs: [
29668
+ {
29669
+ internalType: "uint256",
29670
+ name: "tokenId",
29671
+ type: "uint256",
29672
+ },
29673
+ ],
29674
+ name: "burn",
29675
+ outputs: [],
29322
29676
  stateMutability: "nonpayable",
29323
29677
  type: "function",
29324
29678
  },
@@ -29348,6 +29702,25 @@ const _abi$1 = [
29348
29702
  stateMutability: "view",
29349
29703
  type: "function",
29350
29704
  },
29705
+ {
29706
+ inputs: [
29707
+ {
29708
+ internalType: "uint256",
29709
+ name: "tokenId",
29710
+ type: "uint256",
29711
+ },
29712
+ ],
29713
+ name: "exists",
29714
+ outputs: [
29715
+ {
29716
+ internalType: "bool",
29717
+ name: "",
29718
+ type: "bool",
29719
+ },
29720
+ ],
29721
+ stateMutability: "view",
29722
+ type: "function",
29723
+ },
29351
29724
  {
29352
29725
  inputs: [],
29353
29726
  name: "getAdmins",
@@ -29530,11 +29903,29 @@ const _abi$1 = [
29530
29903
  },
29531
29904
  {
29532
29905
  internalType: "uint256",
29533
- name: "tokenID",
29906
+ name: "tokenId",
29534
29907
  type: "uint256",
29535
29908
  },
29536
29909
  ],
29537
- name: "mint",
29910
+ name: "mintByID",
29911
+ outputs: [],
29912
+ stateMutability: "nonpayable",
29913
+ type: "function",
29914
+ },
29915
+ {
29916
+ inputs: [
29917
+ {
29918
+ internalType: "address",
29919
+ name: "to",
29920
+ type: "address",
29921
+ },
29922
+ {
29923
+ internalType: "uint256",
29924
+ name: "quantity",
29925
+ type: "uint256",
29926
+ },
29927
+ ],
29928
+ name: "mintByQuantity",
29538
29929
  outputs: [],
29539
29930
  stateMutability: "nonpayable",
29540
29931
  type: "function",
@@ -29671,11 +30062,11 @@ const _abi$1 = [
29671
30062
  },
29672
30063
  {
29673
30064
  internalType: "uint256",
29674
- name: "tokenID",
30065
+ name: "tokenId",
29675
30066
  type: "uint256",
29676
30067
  },
29677
30068
  ],
29678
- name: "safeMint",
30069
+ name: "safeMintByID",
29679
30070
  outputs: [],
29680
30071
  stateMutability: "nonpayable",
29681
30072
  type: "function",
@@ -29683,24 +30074,17 @@ const _abi$1 = [
29683
30074
  {
29684
30075
  inputs: [
29685
30076
  {
29686
- components: [
29687
- {
29688
- internalType: "address",
29689
- name: "to",
29690
- type: "address",
29691
- },
29692
- {
29693
- internalType: "uint256[]",
29694
- name: "tokenIds",
29695
- type: "uint256[]",
29696
- },
29697
- ],
29698
- internalType: "struct ImmutableERC721Base.IDMint[]",
29699
- name: "mintRequests",
29700
- type: "tuple[]",
30077
+ internalType: "address",
30078
+ name: "to",
30079
+ type: "address",
30080
+ },
30081
+ {
30082
+ internalType: "uint256",
30083
+ name: "quantity",
30084
+ type: "uint256",
29701
30085
  },
29702
30086
  ],
29703
- name: "safeMintBatch",
30087
+ name: "safeMintByQuantity",
29704
30088
  outputs: [],
29705
30089
  stateMutability: "nonpayable",
29706
30090
  type: "function",
@@ -29747,7 +30131,7 @@ const _abi$1 = [
29747
30131
  },
29748
30132
  {
29749
30133
  internalType: "bytes",
29750
- name: "data",
30134
+ name: "_data",
29751
30135
  type: "bytes",
29752
30136
  },
29753
30137
  ],
@@ -29776,7 +30160,7 @@ const _abi$1 = [
29776
30160
  type: "uint256[]",
29777
30161
  },
29778
30162
  ],
29779
- internalType: "struct ImmutableERC721Base.TransferRequest",
30163
+ internalType: "struct ERC721Hybrid.TransferRequest",
29780
30164
  name: "tr",
29781
30165
  type: "tuple",
29782
30166
  },
@@ -29995,22 +30379,22 @@ const _abi$1 = [
29995
30379
  type: "function",
29996
30380
  },
29997
30381
  ];
29998
- const _bytecode$1 = "0x60806040526000600d553480156200001657600080fd5b5060405162003f9238038062003f92833981016040819052620000399162000811565b8787878787868685856003620000508382620009a4565b5060046200005f8282620009a4565b505050620000748282620000fc60201b60201c565b6200008160008862000201565b600c6200008f8582620009a4565b50600b6200009e8482620009a4565b5050505050505050620000b88282620000fc60201b60201c565b620000c560008962000201565b620000d08362000244565b600c620000de8682620009a4565b50600b620000ed8582620009a4565b50505050505050505062000bb8565b6127106001600160601b0382161115620001705760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001c85760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000167565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b6200021882826200039160201b620013ca1760201c565b60008281526001602090815260409091206200023f9183906200144e62000432821b17901c565b505050565b6000620002518162000452565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa1580156200029d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c3919062000a70565b620003275760405162461bcd60e51b815260206004820152602d60248201527f636f6e747261637420646f6573206e6f7420696d706c656d656e742049526f7960448201526c185b1d1e505b1b1bdddb1a5cdd609a1b606482015260840162000167565b600254604080516001600160a01b03928316815291841660208301527f4a1d010d926ae0d4294a4afe61ae81bb378335fbf671e099a7138b5afeefdf84910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200042e576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003ed3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000449836001600160a01b03841662000461565b90505b92915050565b6200045e8133620004b3565b50565b6000818152600183016020526040812054620004aa575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200044c565b5060006200044c565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200042e57620004f2816200054360201b620014631760201c565b620005088360206200147562000556821b17811c565b6040516020016200051b92919062000a94565b60408051601f198184030181529082905262461bcd60e51b8252620001679160040162000b0d565b60606200044c6001600160a01b03831660145b606060006200056783600262000b58565b6200057490600262000b72565b6001600160401b038111156200058e576200058e6200072c565b6040519080825280601f01601f191660200182016040528015620005b9576020820181803683370190505b509050600360fc1b81600081518110620005d757620005d762000b88565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062000609576200060962000b88565b60200101906001600160f81b031916908160001a90535060006200062f84600262000b58565b6200063c90600162000b72565b90505b6001811115620006be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062000674576200067462000b88565b1a60f81b8282815181106200068d576200068d62000b88565b60200101906001600160f81b031916908160001a90535060049490941c93620006b68162000b9e565b90506200063f565b508315620004495760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640162000167565b80516001600160a01b03811681146200072757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200075f57818101518382015260200162000745565b50506000910152565b600082601f8301126200077a57600080fd5b81516001600160401b03808211156200079757620007976200072c565b604051601f8301601f19908116603f01168101908282118183101715620007c257620007c26200072c565b81604052838152866020858801011115620007dc57600080fd5b620007ef84602083016020890162000742565b9695505050505050565b80516001600160601b03811681146200072757600080fd5b600080600080600080600080610100898b0312156200082f57600080fd5b6200083a896200070f565b60208a01519098506001600160401b03808211156200085857600080fd5b620008668c838d0162000768565b985060408b01519150808211156200087d57600080fd5b6200088b8c838d0162000768565b975060608b0151915080821115620008a257600080fd5b620008b08c838d0162000768565b965060808b0151915080821115620008c757600080fd5b50620008d68b828c0162000768565b945050620008e760a08a016200070f565b9250620008f760c08a016200070f565b91506200090760e08a01620007f9565b90509295985092959890939650565b600181811c908216806200092b57607f821691505b6020821081036200094c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200023f57600081815260208120601f850160051c810160208610156200097b5750805b601f850160051c820191505b818110156200099c5782815560010162000987565b505050505050565b81516001600160401b03811115620009c057620009c06200072c565b620009d881620009d1845462000916565b8462000952565b602080601f83116001811462000a105760008415620009f75750858301515b600019600386901b1c1916600185901b1785556200099c565b600085815260208120601f198616915b8281101562000a415788860151825594840194600190910190840162000a20565b508582101562000a605787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a8357600080fd5b815180151581146200044957600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162000ace81601785016020880162000742565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162000b0181602884016020880162000742565b01602801949350505050565b602081526000825180602084015262000b2e81604085016020870162000742565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200044c576200044c62000b42565b808201808211156200044c576200044c62000b42565b634e487b7160e01b600052603260045260246000fd5b60008162000bb05762000bb062000b42565b506000190190565b6133ca8062000bc86000396000f3fe608060405234801561001057600080fd5b50600436106102735760003560e01c806369e2f0fb11610151578063a22cb465116100c3578063ca15c87311610087578063ca15c87314610590578063d5391393146105a3578063d547741f146105b8578063e4623c1b146105cb578063e8a3d485146105de578063e985e9c5146105e657600080fd5b8063a22cb46514610521578063a701281614610534578063b88d4fde14610547578063c720ee3e1461055a578063c87b56dd1461057d57600080fd5b80639010d07c116101155780639010d07c146104c557806391d14854146104d8578063938e3d7b146104eb57806395d89b41146104fe578063a144819414610506578063a217fddf1461051957600080fd5b806369e2f0fb146104715780636b3a0632146104845780636c0360eb1461049757806370a082311461049f578063885e7a08146104b257600080fd5b806331ae450b116101ea57806342842e0e116101ae57806342842e0e146103ff57806342966c6814610412578063439aed341461042557806355f804b3146104385780636352211e1461044b5780636588962a1461045e57600080fd5b806331ae450b146103a857806336568abe146103bd5780633dd1eb61146103d05780633eaaf86b146103e357806340c10f19146103ec57600080fd5b806318160ddd1161023c57806318160ddd14610308578063234af0461461031a57806323b872dd1461032d578063248a9ca3146103405780632a55205a146103635780632f2ff15d1461039557600080fd5b80628ad9461461027857806301ffc9a71461028d57806306fdde03146102b5578063081812fc146102ca578063095ea7b3146102f5575b600080fd5b61028b610286366004612800565b610622565b005b6102a061029b366004612850565b610752565b60405190151581526020015b60405180910390f35b6102bd610763565b6040516102ac91906128bd565b6102dd6102d83660046128d0565b6107f5565b6040516001600160a01b0390911681526020016102ac565b61028b610303366004612905565b61081c565b600d545b6040519081526020016102ac565b61028b6103283660046129c0565b610984565b61028b61033b366004612b11565b6109dc565b61030c61034e3660046128d0565b60009081526020819052604090206001015490565b610376610371366004612b4d565b610a0e565b604080516001600160a01b0390931683526020830191909152016102ac565b61028b6103a3366004612b6f565b610abc565b6103b0610ae1565b6040516102ac9190612b9b565b61028b6103cb366004612b6f565b610b8f565b61028b6103de366004612be8565b610c09565b61030c600d5481565b61028b6103fa366004612905565b610c2c565b61028b61040d366004612b11565b610c68565b61028b6104203660046128d0565b610c83565b61028b610433366004612c1a565b610cbb565b61028b610446366004612cad565b610ce4565b6102dd6104593660046128d0565b610cfb565b61028b61046c366004612be8565b610d5b565b61028b61047f366004612be8565b610ea1565b6002546102dd906001600160a01b031681565b6102bd610ec4565b61030c6104ad366004612be8565b610f52565b61028b6104c0366004612cf5565b610fd8565b6102dd6104d3366004612b4d565b610fed565b6102a06104e6366004612b6f565b61100c565b61028b6104f9366004612cad565b611035565b6102bd61104c565b61028b610514366004612905565b61105b565b61030c600081565b61028b61052f366004612d2d565b61108d565b61028b610542366004612da8565b6111f0565b61028b610555366004612e0c565b611250565b6102a06105683660046128d0565b600e6020526000908152604090205460ff1681565b6102bd61058b3660046128d0565b611282565b61030c61059e3660046128d0565b6112e8565b61030c6a4d494e5445525f524f4c4560a81b81565b61028b6105c6366004612b6f565b6112ff565b61028b6105d9366004612e87565b611324565b6102bd6113bd565b6102a06105f4366004612ec8565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b61062f6020820182612ef2565b905061063e6040830183612ef2565b9050146106b85760405162461bcd60e51b815260206004820152603760248201527f6e756d626572206f6620746f6b656e20696473206e6f74207468652073616d6560448201527f206173206e756d626572206f662072656365697665727300000000000000000060648201526084015b60405180910390fd5b60005b6106c86040830183612ef2565b905081101561074e5761073c6106e16020840184612be8565b6106ee6020850185612ef2565b848181106106fe576106fe612f3b565b90506020020160208101906107139190612be8565b6107206040860186612ef2565b8581811061073057610730612f3b565b90506020020135610c68565b8061074681612f67565b9150506106bb565b5050565b600061075d82611610565b92915050565b60606003805461077290612f80565b80601f016020809104026020016040519081016040528092919081815260200182805461079e90612f80565b80156107eb5780601f106107c0576101008083540402835291602001916107eb565b820191906000526020600020905b8154815290600101906020018083116107ce57829003601f168201915b5050505050905090565b60006108008261161b565b506000908152600760205260409020546001600160a01b031690565b60025482906001600160a01b03161561097557333b158015906108a857506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a69190612fba565b155b156108c85760405163f6fa4cbd60e01b81523360048201526024016106af565b6001600160a01b0381163b1580159061094c57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a9190612fba565b155b15610975576040516341b8d58160e11b81526001600160a01b03821660048201526024016106af565b61097f838361167d565b505050565b6a4d494e5445525f524f4c4560a81b61099c8161178d565b60005b825181101561097f576109ca8382815181106109bd576109bd612f3b565b6020026020010151611797565b806109d481612f67565b91505061099f565b6109e7335b82611847565b610a035760405162461bcd60e51b81526004016106af90612fd7565b61097f8383836118c6565b6000828152600a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a835750604080518082019091526009546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610aa2906001600160601b031687613024565b610aac919061303b565b91519350909150505b9250929050565b600082815260208190526040902060010154610ad78161178d565b61097f8383611ae0565b60606000610aee816112e8565b90506000816001600160401b03811115610b0a57610b0a61292f565b604051908082528060200260200182016040528015610b33578160200160208202803683370190505b50905060005b82811015610b8857610b4c600082610fed565b828281518110610b5e57610b5e612f3b565b6001600160a01b039092166020928302919091019091015280610b8081612f67565b915050610b39565b5092915050565b6001600160a01b0381163314610bff5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016106af565b61074e8282611b02565b6000610c148161178d565b61074e6a4d494e5445525f524f4c4560a81b83610abc565b6a4d494e5445525f524f4c4560a81b610c448161178d565b610c4e8383611b24565b600d8054906000610c5e83612f67565b9190505550505050565b61097f83838360405180602001604052806000815250611250565b610c8c81611b8d565b6000818152600e60205260408120805460ff19166001179055600d805491610cb38361305d565b919050555050565b6a4d494e5445525f524f4c4560a81b610cd38161178d565b610cde848484611bbb565b50505050565b6000610cef8161178d565b600c61097f83826130ba565b6000818152600560205260408120546001600160a01b03168061075d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106af565b6000610d668161178d565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd59190612fba565b610e375760405162461bcd60e51b815260206004820152602d60248201527f636f6e747261637420646f6573206e6f7420696d706c656d656e742049526f7960448201526c185b1d1e505b1b1bdddb1a5cdd609a1b60648201526084016106af565b600254604080516001600160a01b03928316815291841660208301527f4a1d010d926ae0d4294a4afe61ae81bb378335fbf671e099a7138b5afeefdf84910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000610eac8161178d565b61074e6a4d494e5445525f524f4c4560a81b836112ff565b600c8054610ed190612f80565b80601f0160208091040260200160405190810160405280929190818152602001828054610efd90612f80565b8015610f4a5780601f10610f1f57610100808354040283529160200191610f4a565b820191906000526020600020905b815481529060010190602001808311610f2d57829003601f168201915b505050505081565b60006001600160a01b038216610fbc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016106af565b506001600160a01b031660009081526006602052604090205490565b6000610fe38161178d565b61097f8383611c86565b60008281526001602052604081206110059083611d40565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60006110408161178d565b600b61097f83826130ba565b60606004805461077290612f80565b6a4d494e5445525f524f4c4560a81b6110738161178d565b610c4e838360405180602001604052806000815250611d4c565b60025482906001600160a01b0316156111e657333b1580159061111957506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111179190612fba565b155b156111395760405163f6fa4cbd60e01b81523360048201526024016106af565b6001600160a01b0381163b158015906111bd57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb9190612fba565b155b156111e6576040516341b8d58160e11b81526001600160a01b03821660048201526024016106af565b61097f8383611d7f565b6a4d494e5445525f524f4c4560a81b6112088161178d565b60005b848110156112485761123686868381811061122857611228612f3b565b905060200201358585611bbb565b8061124081612f67565b91505061120b565b505050505050565b61125a3383611847565b6112765760405162461bcd60e51b81526004016106af90612fd7565b610cde84848484611d8a565b606061128d8261161b565b6000611297611dbd565b905060008151116112b75760405180602001604052806000815250611005565b806112c184611dcc565b6040516020016112d2929190613179565b6040516020818303038152906040529392505050565b600081815260016020526040812061075d90611e5e565b60008281526020819052604090206001015461131a8161178d565b61097f8383611b02565b60005b818110156113a75761135083838381811061134457611344612f3b565b90506020020135611b8d565b6001600e600085858581811061136857611368612f3b565b90506020020135815260200190815260200160002060006101000a81548160ff021916908315150217905550808061139f90612f67565b915050611327565b50600d546113b69082906131a8565b600d555050565b600b8054610ed190612f80565b6113d4828261100c565b61074e576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561140a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611005836001600160a01b038416611e68565b606061075d6001600160a01b03831660145b60606000611484836002613024565b61148f9060026131bb565b6001600160401b038111156114a6576114a661292f565b6040519080825280601f01601f1916602001820160405280156114d0576020820181803683370190505b509050600360fc1b816000815181106114eb576114eb612f3b565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061151a5761151a612f3b565b60200101906001600160f81b031916908160001a905350600061153e846002613024565b6115499060016131bb565b90505b60018111156115c1576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061157d5761157d612f3b565b1a60f81b82828151811061159357611593612f3b565b60200101906001600160f81b031916908160001a90535060049490941c936115ba8161305d565b905061154c565b5083156110055760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106af565b600061075d82611eb7565b6000818152600560205260409020546001600160a01b031661167a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106af565b50565b600061168882610cfb565b9050806001600160a01b0316836001600160a01b0316036116f55760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016106af565b336001600160a01b0382161480611711575061171181336105f4565b6117835760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016106af565b61097f8383611edc565b61167a8133611f4a565b80516001600160a01b03166117e05760405162461bcd60e51b815260206004820152600f60248201526e41646472657373206973207a65726f60881b60448201526064016106af565b60005b81602001515181101561182d5761181b82600001518360200151838151811061180e5761180e612f3b565b6020026020010151611b24565b8061182581612f67565b9150506117e3565b50806020015151600d5461184191906131bb565b600d5550565b60008061185383610cfb565b9050806001600160a01b0316846001600160a01b0316148061189a57506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b806118be5750836001600160a01b03166118b3846107f5565b6001600160a01b0316145b949350505050565b600254839083906001600160a01b031615611ace5733321480159061195457506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561192e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119529190612fba565b155b156119745760405163937db65f60e01b81523360048201526024016106af565b6001600160a01b0382163b158015906119f857506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa1580156119d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f69190612fba565b155b15611a215760405163f934453160e01b81526001600160a01b03831660048201526024016106af565b6001600160a01b0381163b15801590611aa557506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa39190612fba565b155b15611ace57604051632a67242160e11b81526001600160a01b03821660048201526024016106af565b611ad9858585611fa3565b5050505050565b611aea82826113ca565b600082815260016020526040902061097f908261144e565b611b0c8282612107565b600082815260016020526040902061097f908261216c565b6000818152600e602052604090205460ff1615611b835760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206275726e65640000000060448201526064016106af565b61074e8282612181565b611b96336109e1565b611bb25760405162461bcd60e51b81526004016106af90612fd7565b61167a8161230c565b6127106001600160601b0382161115611be65760405162461bcd60e51b81526004016106af906131ce565b6001600160a01b038216611c3c5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d6574657273000000000060448201526064016106af565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600a90529190942093519051909116600160a01b029116179055565b6127106001600160601b0382161115611cb15760405162461bcd60e51b81526004016106af906131ce565b6001600160a01b038216611d075760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016106af565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b600061100583836123a1565b611d568383611b24565b611d6360008484846123cb565b61097f5760405162461bcd60e51b81526004016106af90613218565b61074e3383836124cc565b611d958484846118c6565b611da1848484846123cb565b610cde5760405162461bcd60e51b81526004016106af90613218565b6060600c805461077290612f80565b60606000611dd98361259a565b60010190506000816001600160401b03811115611df857611df861292f565b6040519080825280601f01601f191660200182016040528015611e22576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611e2c57509392505050565b600061075d825490565b6000818152600183016020526040812054611eaf5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561075d565b50600061075d565b60006001600160e01b0319821663152a902d60e11b148061075d575061075d82612672565b600081815260076020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611f1182610cfb565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611f54828261100c565b61074e57611f6181611463565b611f6c836020611475565b604051602001611f7d92919061326a565b60408051601f198184030181529082905262461bcd60e51b82526106af916004016128bd565b826001600160a01b0316611fb682610cfb565b6001600160a01b031614611fdc5760405162461bcd60e51b81526004016106af906132df565b6001600160a01b03821661203e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016106af565b826001600160a01b031661205182610cfb565b6001600160a01b0316146120775760405162461bcd60e51b81526004016106af906132df565b600081815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260068552838620805460001901905590871680865283862080546001019055868652600590945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b612111828261100c565b1561074e576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611005836001600160a01b0384166126b2565b6001600160a01b0382166121d75760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016106af565b6000818152600560205260409020546001600160a01b03161561223c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106af565b6000818152600560205260409020546001600160a01b0316156122a15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106af565b6001600160a01b038216600081815260066020908152604080832080546001019055848352600590915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600061231782610cfb565b905061232282610cfb565b600083815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526006845282852080546000190190558785526005909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60008260000182815481106123b8576123b8612f3b565b9060005260206000200154905092915050565b60006001600160a01b0384163b156124c157604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061240f903390899088908890600401613324565b6020604051808303816000875af192505050801561244a575060408051601f3d908101601f1916820190925261244791810190613361565b60015b6124a7573d808015612478576040519150601f19603f3d011682016040523d82523d6000602084013e61247d565b606091505b50805160000361249f5760405162461bcd60e51b81526004016106af90613218565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506118be565b506001949350505050565b816001600160a01b0316836001600160a01b03160361252d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016106af565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106125d95772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612605576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061262357662386f26fc10000830492506010015b6305f5e100831061263b576305f5e100830492506008015b612710831061264f57612710830492506004015b60648310612661576064830492506002015b600a831061075d5760010192915050565b60006001600160e01b031982166380ac58cd60e01b14806126a357506001600160e01b03198216635b5e139f60e01b145b8061075d575061075d826127a5565b6000818152600183016020526040812054801561279b5760006126d66001836131a8565b85549091506000906126ea906001906131a8565b905081811461274f57600086600001828154811061270a5761270a612f3b565b906000526020600020015490508087600001848154811061272d5761272d612f3b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806127605761276061337e565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061075d565b600091505061075d565b600061075d8260006001600160e01b03198216635a05180f60e01b148061075d575061075d8260006001600160e01b03198216637965db0b60e01b148061075d57506301ffc9a760e01b6001600160e01b031983161461075d565b60006020828403121561281257600080fd5b81356001600160401b0381111561282857600080fd5b82016060818503121561100557600080fd5b6001600160e01b03198116811461167a57600080fd5b60006020828403121561286257600080fd5b81356110058161283a565b60005b83811015612888578181015183820152602001612870565b50506000910152565b600081518084526128a981602086016020860161286d565b601f01601f19169290920160200192915050565b6020815260006110056020830184612891565b6000602082840312156128e257600080fd5b5035919050565b80356001600160a01b038116811461290057600080fd5b919050565b6000806040838503121561291857600080fd5b612921836128e9565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156129675761296761292f565b60405290565b604051601f8201601f191681016001600160401b03811182821017156129955761299561292f565b604052919050565b60006001600160401b038211156129b6576129b661292f565b5060051b60200190565b600060208083850312156129d357600080fd5b82356001600160401b03808211156129ea57600080fd5b818501915085601f8301126129fe57600080fd5b8135612a11612a0c8261299d565b61296d565b81815260059190911b83018401908481019088831115612a3057600080fd5b8585015b83811015612b0457803585811115612a4c5760008081fd5b86016040818c03601f1901811315612a645760008081fd5b612a6c612945565b612a778a84016128e9565b81528183013588811115612a8b5760008081fd5b8084019350508c603f840112612aa15760008081fd5b89830135612ab1612a0c8261299d565b81815260059190911b84018301908b8101908f831115612ad15760008081fd5b948401945b82861015612aef5785358252948c0194908c0190612ad6565b838d0152505085525050918601918601612a34565b5098975050505050505050565b600080600060608486031215612b2657600080fd5b612b2f846128e9565b9250612b3d602085016128e9565b9150604084013590509250925092565b60008060408385031215612b6057600080fd5b50508035926020909101359150565b60008060408385031215612b8257600080fd5b82359150612b92602084016128e9565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612bdc5783516001600160a01b031683529284019291840191600101612bb7565b50909695505050505050565b600060208284031215612bfa57600080fd5b611005826128e9565b80356001600160601b038116811461290057600080fd5b600080600060608486031215612c2f57600080fd5b83359250612c3f602085016128e9565b9150612c4d60408501612c03565b90509250925092565b60006001600160401b03831115612c6f57612c6f61292f565b612c82601f8401601f191660200161296d565b9050828152838383011115612c9657600080fd5b828260208301376000602084830101529392505050565b600060208284031215612cbf57600080fd5b81356001600160401b03811115612cd557600080fd5b8201601f81018413612ce657600080fd5b6118be84823560208401612c56565b60008060408385031215612d0857600080fd5b612d11836128e9565b9150612b9260208401612c03565b801515811461167a57600080fd5b60008060408385031215612d4057600080fd5b612d49836128e9565b91506020830135612d5981612d1f565b809150509250929050565b60008083601f840112612d7657600080fd5b5081356001600160401b03811115612d8d57600080fd5b6020830191508360208260051b8501011115610ab557600080fd5b60008060008060608587031215612dbe57600080fd5b84356001600160401b03811115612dd457600080fd5b612de087828801612d64565b9095509350612df39050602086016128e9565b9150612e0160408601612c03565b905092959194509250565b60008060008060808587031215612e2257600080fd5b612e2b856128e9565b9350612e39602086016128e9565b92506040850135915060608501356001600160401b03811115612e5b57600080fd5b8501601f81018713612e6c57600080fd5b612e7b87823560208401612c56565b91505092959194509250565b60008060208385031215612e9a57600080fd5b82356001600160401b03811115612eb057600080fd5b612ebc85828601612d64565b90969095509350505050565b60008060408385031215612edb57600080fd5b612ee4836128e9565b9150612b92602084016128e9565b6000808335601e19843603018112612f0957600080fd5b8301803591506001600160401b03821115612f2357600080fd5b6020019150600581901b3603821315610ab557600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612f7957612f79612f51565b5060010190565b600181811c90821680612f9457607f821691505b602082108103612fb457634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612fcc57600080fd5b815161100581612d1f565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b808202811582820484141761075d5761075d612f51565b60008261305857634e487b7160e01b600052601260045260246000fd5b500490565b60008161306c5761306c612f51565b506000190190565b601f82111561097f57600081815260208120601f850160051c8101602086101561309b5750805b601f850160051c820191505b81811015611248578281556001016130a7565b81516001600160401b038111156130d3576130d361292f565b6130e7816130e18454612f80565b84613074565b602080601f83116001811461311c57600084156131045750858301515b600019600386901b1c1916600185901b178555611248565b600085815260208120601f198616915b8281101561314b5788860151825594840194600190910190840161312c565b50858210156131695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000835161318b81846020880161286d565b83519083019061319f81836020880161286d565b01949350505050565b8181038181111561075d5761075d612f51565b8082018082111561075d5761075d612f51565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516132a281601785016020880161286d565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516132d381602884016020880161286d565b01602801949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061335790830184612891565b9695505050505050565b60006020828403121561337357600080fd5b81516110058161283a565b634e487b7160e01b600052603160045260246000fdfea264697066735822122006573083b437fa58c9681635170d4942384661ed89edd9510c0e1a1d6b4237d564736f6c63430008110033";
29999
- const isSuperArgs$1 = (xs) => xs.length > 1;
30000
- class ImmutableERC721PermissionedMintable__factory extends ContractFactory {
30382
+ const _bytecode$2 = "0x608060405260006013553480156200001657600080fd5b5060405162005189380380620051898339810160408190526200003991620007c0565b8787878787878787868681818181600662000055838262000953565b50600762000064828262000953565b50506801000000000000000060095550600d62000082838262000953565b50600e62000091828262000953565b50620000a69350600092508b915050620000f1565b620000b2828262000134565b620000bd8362000239565b6016620000cb868262000953565b506015620000da858262000953565b505050505050505050505050505050505062000b67565b6200010882826200034060201b6200120f1760201c565b60008281526001602090815260409091206200012f91839062001293620003e1821b17901c565b505050565b6127106001600160601b0382161115620001a85760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002005760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016200019f565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000620002468162000401565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa15801562000292573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b8919062000a1f565b620002d657604051631353be1160e11b815260040160405180910390fd5b600254604080516001600160a01b03928316815291841660208301527ff499b54d61d3fcb40299e3299af3ffe9ef1ee6e47194240f3cc5b6e09f7f6796910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620003dd576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200039c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620003f8836001600160a01b03841662000410565b90505b92915050565b6200040d813362000462565b50565b60008181526001830160205260408120546200045957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003fb565b506000620003fb565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620003dd57620004a181620004f260201b620012a81760201c565b620004b7836020620012ba62000505821b17811c565b604051602001620004ca92919062000a43565b60408051601f198184030181529082905262461bcd60e51b82526200019f9160040162000abc565b6060620003fb6001600160a01b03831660145b606060006200051683600262000b07565b6200052390600262000b21565b6001600160401b038111156200053d576200053d620006db565b6040519080825280601f01601f19166020018201604052801562000568576020820181803683370190505b509050600360fc1b8160008151811062000586576200058662000b37565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620005b857620005b862000b37565b60200101906001600160f81b031916908160001a9053506000620005de84600262000b07565b620005eb90600162000b21565b90505b60018111156200066d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062000623576200062362000b37565b1a60f81b8282815181106200063c576200063c62000b37565b60200101906001600160f81b031916908160001a90535060049490941c93620006658162000b4d565b9050620005ee565b508315620003f85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016200019f565b80516001600160a01b0381168114620006d657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200070e578181015183820152602001620006f4565b50506000910152565b600082601f8301126200072957600080fd5b81516001600160401b0380821115620007465762000746620006db565b604051601f8301601f19908116603f01168101908282118183101715620007715762000771620006db565b816040528381528660208588010111156200078b57600080fd5b6200079e846020830160208901620006f1565b9695505050505050565b80516001600160601b0381168114620006d657600080fd5b600080600080600080600080610100898b031215620007de57600080fd5b620007e989620006be565b60208a01519098506001600160401b03808211156200080757600080fd5b620008158c838d0162000717565b985060408b01519150808211156200082c57600080fd5b6200083a8c838d0162000717565b975060608b01519150808211156200085157600080fd5b6200085f8c838d0162000717565b965060808b01519150808211156200087657600080fd5b50620008858b828c0162000717565b9450506200089660a08a01620006be565b9250620008a660c08a01620006be565b9150620008b660e08a01620007a8565b90509295985092959890939650565b600181811c90821680620008da57607f821691505b602082108103620008fb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012f57600081815260208120601f850160051c810160208610156200092a5750805b601f850160051c820191505b818110156200094b5782815560010162000936565b505050505050565b81516001600160401b038111156200096f576200096f620006db565b6200098781620009808454620008c5565b8462000901565b602080601f831160018114620009bf5760008415620009a65750858301515b600019600386901b1c1916600185901b1785556200094b565b600085815260208120601f198616915b82811015620009f057888601518255948401946001909101908401620009cf565b508582101562000a0f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a3257600080fd5b81518015158114620003f857600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162000a7d816017850160208801620006f1565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162000ab0816028840160208801620006f1565b01602801949350505050565b602081526000825180602084015262000add816040850160208701620006f1565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620003fb57620003fb62000af1565b80820180821115620003fb57620003fb62000af1565b634e487b7160e01b600052603260045260246000fd5b60008162000b5f5762000b5f62000af1565b506000190190565b6146128062000b776000396000f3fe608060405234801561001057600080fd5b50600436106102ba5760003560e01c80636588962a11610182578063a7012816116100e9578063e4623c1b116100a2578063eea987681161007c578063eea9876814610648578063f5e0d8911461065b578063fa52ceec1461066e578063ff6250831461068157600080fd5b8063e4623c1b1461061a578063e8a3d4851461062d578063e985e9c51461063557600080fd5b8063a7012816146105a6578063b88d4fde146105b9578063c87b56dd146105cc578063ca15c873146105df578063d5391393146105f2578063d547741f1461060757600080fd5b80639010d07c1161013b5780639010d07c1461054a57806391d148541461055d578063938e3d7b1461057057806395d89b4114610583578063a217fddf1461058b578063a22cb4651461059357600080fd5b80636588962a146104e357806369e2f0fb146104f65780636b3a0632146105095780636c0360eb1461051c57806370a0823114610524578063885e7a081461053757600080fd5b806331ae450b116102265780634f558e79116101df5780634f558e791461047157806355f804b314610484578063567e4075146104975780635b32f935146104aa578063608a0b9d146104bd5780636352211e146104d057600080fd5b806331ae450b146103fd57806336568abe146104125780633dd1eb611461042557806342842e0e1461043857806342966c681461044b578063439aed341461045e57600080fd5b806318160ddd1161027857806318160ddd146103625780631f8ebbd11461037857806323b872dd14610382578063248a9ca3146103955780632a55205a146103b85780632f2ff15d146103ea57600080fd5b80628ad946146102bf57806301ffc9a7146102d45780630656b536146102fc57806306fdde031461030f578063081812fc14610324578063095ea7b31461034f575b600080fd5b6102d26102cd3660046137c8565b610694565b005b6102e76102e2366004613818565b61076a565b60405190151581526020015b60405180910390f35b6102d261030a3660046138dd565b61077b565b61031761079c565b6040516102f391906139ee565b610337610332366004613a01565b6107ab565b6040516001600160a01b0390911681526020016102f3565b6102d261035d366004613a1a565b6107cb565b61036a610926565b6040519081526020016102f3565b600160401b61036a565b6102d2610390366004613a44565b61093d565b61036a6103a3366004613a01565b60009081526020819052604090206001015490565b6103cb6103c6366004613a80565b61095f565b604080516001600160a01b0390931683526020830191909152016102f3565b6102d26103f8366004613aa2565b610a0d565b610405610a32565b6040516102f39190613ace565b6102d2610420366004613aa2565b610ae0565b6102d2610433366004613b1b565b610b5a565b6102d2610446366004613a44565b610b7d565b6102d2610459366004613a01565b610b98565b6102d261046c366004613b4d565b610bcf565b6102e761047f366004613a01565b610bf8565b6102d2610492366004613be0565b610c03565b6102d26104a5366004613a1a565b610c1a565b6102d26104b8366004613a1a565b610c3c565b6102d26104cb3660046138dd565b610c5e565b6103376104de366004613a01565b610c7f565b6102d26104f1366004613b1b565b610c9f565b6102d2610504366004613b1b565b610da0565b600254610337906001600160a01b031681565b610317610dc3565b61036a610532366004613b1b565b610e51565b6102d2610545366004613c28565b610e6f565b610337610558366004613a80565b610e84565b6102e761056b366004613aa2565b610ea3565b6102d261057e366004613be0565b610ecc565b610317610ee3565b61036a600081565b6102d26105a1366004613c60565b610eed565b6102d26105b4366004613cdb565b61103e565b6102d26105c7366004613d3f565b61109e565b6103176105da366004613a01565b6110c7565b61036a6105ed366004613a01565b6110d2565b61036a6a4d494e5445525f524f4c4560a81b81565b6102d2610615366004613aa2565b6110e9565b6102d2610628366004613dba565b61110e565b61031761114c565b6102e7610643366004613dfb565b611159565b6102d2610656366004613a1a565b611189565b6102d2610669366004613e25565b6111ab565b6102d261067c366004613e25565b6111cc565b6102d261068f366004613a1a565b6111ed565b6106a16020820182613f71565b90506106b06040830183613f71565b9050146106d05760405163359a1bc360e01b815260040160405180910390fd5b60005b6106e06040830183613f71565b9050811015610766576107546106f96020840184613b1b565b6107066020850185613f71565b8481811061071657610716613fba565b905060200201602081019061072b9190613b1b565b6107386040860186613f71565b8581811061074857610748613fba565b90506020020135610b7d565b8061075e81613fe6565b9150506106d3565b5050565b600061077582611455565b92915050565b6a4d494e5445525f524f4c4560a81b61079381611460565b6107668261146a565b60606107a66114b9565b905090565b6000600160401b8210156107c2576107758261154b565b61077582611572565b81333b1580159061084557506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190613fff565b155b1561086a5760405163f6fa4cbd60e01b81523360048201526024015b60405180910390fd5b6001600160a01b0381163b158015906108ee57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa1580156108c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ec9190613fff565b155b15610917576040516341b8d58160e11b81526001600160a01b0382166004820152602401610861565b61092183836115fd565b505050565b600060135461093361161d565b6107a6919061401c565b600160401b81101561095457610921838383611639565b610921838383611669565b60008281526004602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b03169282019290925282916109d45750604080518082019091526003546001600160a01b0381168252600160a01b90046001600160601b031660208201525b6020810151600090612710906109f3906001600160601b03168761402f565b6109fd9190614046565b91519350909150505b9250929050565b600082815260208190526040902060010154610a2881611460565b610921838361168e565b60606000610a3f816110d2565b90506000816001600160401b03811115610a5b57610a5b613835565b604051908082528060200260200182016040528015610a84578160200160208202803683370190505b50905060005b82811015610ad957610a9d600082610e84565b828281518110610aaf57610aaf613fba565b6001600160a01b039092166020928302919091019091015280610ad181613fe6565b915050610a8a565b5092915050565b6001600160a01b0381163314610b505760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610861565b61076682826116b0565b6000610b6581611460565b6107666a4d494e5445525f524f4c4560a81b83610a0d565b6109218383836040518060200160405280600081525061109e565b610ba3335b826116d2565b610bc357604051630247e3a960e01b815260048101829052602401610861565b610bcc816116fb565b50565b6a4d494e5445525f524f4c4560a81b610be781611460565b610bf284848461174e565b50505050565b600061077582611819565b6000610c0e81611460565b601661092183826140e8565b6a4d494e5445525f524f4c4560a81b610c3281611460565b6109218383611876565b6a4d494e5445525f524f4c4560a81b610c5481611460565b6109218383611880565b6a4d494e5445525f524f4c4560a81b610c7681611460565b61076682611907565b6000600160401b821015610c965761077582611956565b610775826119b6565b6000610caa81611460565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa158015610cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d199190613fff565b610d3657604051631353be1160e11b815260040160405180910390fd5b600254604080516001600160a01b03928316815291841660208301527ff499b54d61d3fcb40299e3299af3ffe9ef1ee6e47194240f3cc5b6e09f7f6796910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000610dab81611460565b6107666a4d494e5445525f524f4c4560a81b836110e9565b60168054610dd090614068565b80601f0160208091040260200160405190810160405280929190818152602001828054610dfc90614068565b8015610e495780601f10610e1e57610100808354040283529160200191610e49565b820191906000526020600020905b815481529060010190602001808311610e2c57829003601f168201915b505050505081565b6000610e5c826119ca565b610e6583611a95565b610775919061401c565b6000610e7a81611460565b6109218383611b1b565b6000828152600160205260408120610e9c9083611bd5565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610ed781611460565b601561092183826140e8565b60606107a6611be1565b81333b15801590610f6757506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610f41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f659190613fff565b155b15610f875760405163f6fa4cbd60e01b8152336004820152602401610861565b6001600160a01b0381163b1580159061100b57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610fe5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110099190613fff565b155b15611034576040516341b8d58160e11b81526001600160a01b0382166004820152602401610861565b6109218383611bf0565b6a4d494e5445525f524f4c4560a81b61105681611460565b60005b848110156110965761108486868381811061107657611076613fba565b90506020020135858561174e565b8061108e81613fe6565b915050611059565b505050505050565b600160401b8210156110bb576110b684848484611bfa565b610bf2565b610bf284848484611c2d565b606061077582611c52565b600081815260016020526040812061077590611cb8565b60008281526020819052604090206001015461110481611460565b61092183836116b0565b60005b818110156109215761113a83838381811061112e5761112e613fba565b90506020020135610b98565b8061114481613fe6565b915050611111565b60158054610dd090614068565b6001600160a01b03808316600090815260126020908152604080832093851683529290529081205460ff16610e9c565b6a4d494e5445525f524f4c4560a81b6111a181611460565b6109218383611cc2565b6a4d494e5445525f524f4c4560a81b6111c381611460565b61076682611ccc565b6a4d494e5445525f524f4c4560a81b6111e481611460565b61076682611d1b565b6a4d494e5445525f524f4c4560a81b61120581611460565b6109218383611d6a565b6112198282610ea3565b610766576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561124f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e9c836001600160a01b038416611dd8565b60606107756001600160a01b03831660145b606060006112c983600261402f565b6112d490600261401c565b6001600160401b038111156112eb576112eb613835565b6040519080825280601f01601f191660200182016040528015611315576020820181803683370190505b509050600360fc1b8160008151811061133057611330613fba565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061135f5761135f613fba565b60200101906001600160f81b031916908160001a905350600061138384600261402f565b61138e90600161401c565b90505b6001811115611406576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106113c2576113c2613fba565b1a60f81b8282815181106113d8576113d8613fba565b60200101906001600160f81b031916908160001a90535060049490941c936113ff816141a7565b9050611391565b508315610e9c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610861565b600061077582611e27565b610bcc8133611e67565b60005b815181101561076657600082828151811061148a5761148a613fba565b602002602001015190506114a681600001518260200151611876565b50806114b181613fe6565b91505061146d565b6060600d80546114c890614068565b80601f01602080910402602001604051908101604052809291908181526020018280546114f490614068565b80156115415780601f1061151657610100808354040283529160200191611541565b820191906000526020600020905b81548152906001019060200180831161152457829003601f168201915b5050505050905090565b600061155682611ec0565b506000908152601160205260409020546001600160a01b031690565b600061157d82611819565b6115e15760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a20617070726f76656420717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610861565b506000908152600a60205260409020546001600160a01b031690565b600160401b811015611613576107668282611f10565b6107668282612020565b6000611627612128565b61162f612192565b6107a691906141be565b61164233610b9d565b61165e5760405162461bcd60e51b8152600401610861906141d1565b6109218383836121a6565b61167233610b9d565b61165e5760405162461bcd60e51b81526004016108619061421e565b611698828261120f565b60008281526001602052604090206109219082611293565b6116ba82826123ad565b60008281526001602052604090206109219082612412565b6000600160401b8210156116f1576116ea8383612427565b9050610775565b610e9c8383612486565b600160401b811015611745576117108161254b565b600881901c60009081526014602052604081208054600160ff85161b179055601380549161173d836141a7565b919050555050565b610bcc816125ce565b6127106001600160601b03821611156117795760405162461bcd60e51b815260040161086190614272565b6001600160a01b0382166117cf5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610861565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600490529190942093519051909116600160a01b029116179055565b6000600160401b82101561186d576000828152600f60205260409020546001600160a01b0316158015906107755750600882901c600090815260146020526040902054600160ff84161b1615151592915050565b61077582612610565b6107668282612645565b600160401b81106118a75760405163b73c99f560e01b815260048101829052602401610861565b600881901c600090815260146020526040902054600160ff83161b16156118e4576040516305dcda1160e51b815260048101829052602401610861565b6118ee828261265f565b601380549060006118fe83613fe6565b91905055505050565b60005b815181101561076657600082828151811061192757611927613fba565b6020026020010151905061194381600001518260200151611cc2565b508061194e81613fe6565b91505061190a565b6000818152600f60205260408120546001600160a01b0316806107755760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610861565b6000806119c2836127ba565b509392505050565b60006001600160a01b038216611a385760405162461bcd60e51b815260206004820152602d60248201527f4552433732315073693a2062616c616e636520717565727920666f722074686560448201526c207a65726f206164647265737360981b6064820152608401610861565b6000600160401b5b600954811015610ad957611a5381611819565b15611a8557611a6181610c7f565b6001600160a01b0316846001600160a01b031603611a8557611a8282613fe6565b91505b611a8e81613fe6565b9050611a40565b60006001600160a01b038216611aff5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610861565b506001600160a01b031660009081526010602052604090205490565b6127106001600160601b0382161115611b465760405162461bcd60e51b815260040161086190614272565b6001600160a01b038216611b9c5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610861565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000610e9c8383612851565b6060600e80546114c890614068565b610766828261287b565b611c05335b836116d2565b611c215760405162461bcd60e51b8152600401610861906141d1565b610bf284848484612886565b611c3633611bff565b611c215760405162461bcd60e51b81526004016108619061421e565b6060611c5d82611ec0565b6000611c676128aa565b90506000815111611c875760405180602001604052806000815250610e9c565b80611c91846128b9565b604051602001611ca29291906142bc565b6040516020818303038152906040529392505050565b6000610775825490565b610766828261294b565b60005b8151811015610766576000828281518110611cec57611cec613fba565b60200260200101519050611d0881600001518260200151612ac4565b5080611d1381613fe6565b915050611ccf565b60005b8151811015610766576000828281518110611d3b57611d3b613fba565b60200260200101519050611d5781600001518260200151612b05565b5080611d6281613fe6565b915050611d1e565b600160401b8110611d915760405163b73c99f560e01b815260048101829052602401610861565b600881901c600090815260146020526040902054600160ff83161b1615611dce576040516305dcda1160e51b815260048101829052602401610861565b6118ee8282612b46565b6000818152600183016020526040812054611e1f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610775565b506000610775565b60006001600160e01b031982166380ac58cd60e01b1480611e5857506001600160e01b03198216635b5e139f60e01b145b80610775575061077582612b60565b611e718282610ea3565b61076657611e7e816112a8565b611e898360206112ba565b604051602001611e9a9291906142eb565b60408051601f198184030181529082905262461bcd60e51b8252610861916004016139ee565b611ec981611819565b610bcc5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610861565b6000611f1b82611956565b9050806001600160a01b0316836001600160a01b031603611f885760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610861565b336001600160a01b0382161480611fa45750611fa48133611159565b6120165760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610861565b6109218383612ba0565b600061202b82610c7f565b9050806001600160a01b0316836001600160a01b03160361209a5760405162461bcd60e51b8152602060048201526024808201527f4552433732315073693a20617070726f76616c20746f2063757272656e74206f6044820152633bb732b960e11b6064820152608401610861565b336001600160a01b03821614806120b657506120b68133611159565b6120165760405162461bcd60e51b815260206004820152603b60248201527f4552433732315073693a20617070726f76652063616c6c6572206973206e6f7460448201527f206f776e6572206e6f7220617070726f76656420666f7220616c6c00000000006064820152608401610861565b6009546000906701000000000000009082906121489060081c600161401c565b9050815b8181101561218c576000818152600c602052604090205461216c81612bc0565b612176908661401c565b945050808061218490613fe6565b91505061214c565b50505090565b6000600160401b6009546107a691906141be565b828233321480159061222157506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156121fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221f9190613fff565b155b156122415760405163937db65f60e01b8152336004820152602401610861565b6001600160a01b0382163b158015906122c557506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa15801561229f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c39190613fff565b155b156122ee5760405163f934453160e01b81526001600160a01b0383166004820152602401610861565b6001600160a01b0381163b1580159061237257506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa15801561234c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123709190613fff565b155b1561239b57604051632a67242160e11b81526001600160a01b0382166004820152602401610861565b6123a6858585612bdf565b5050505050565b6123b78282610ea3565b15610766576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e9c836001600160a01b038416612c01565b60008061243383611956565b9050806001600160a01b0316846001600160a01b0316148061245a575061245a8185611159565b8061247e5750836001600160a01b0316612473846107ab565b6001600160a01b0316145b949350505050565b600061249182611819565b6124f55760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a206f70657261746f7220717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610861565b600061250083610c7f565b9050806001600160a01b0316846001600160a01b0316148061253b5750836001600160a01b0316612530846107ab565b6001600160a01b0316145b8061247e575061247e8185611159565b600061255682611956565b905061256182611956565b600083815260116020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552601084528285208054600019019055878552600f909352818420805490911690555192935084926000805160206144bd833981519152908390a45050565b60006125d982610c7f565b90506125e6600c83612cf4565b60405182906000906001600160a01b038416906000805160206144bd833981519152908390a45050565b600881901c6000908152600c6020526040812054600160ff1b60ff84161c161561263c57506000919050565b61077582612d20565b610766828260405180602001604052806000815250612d3f565b6001600160a01b0382166126b55760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610861565b6126be81611819565b1561270b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610861565b61271481611819565b156127615760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610861565b6001600160a01b038216600081815260106020908152604080832080546001019055848352600f90915280822080546001600160a01b0319168417905551839291906000805160206144bd833981519152908290a45050565b6000806127c683611819565b6128275760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a206f776e657220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610861565b61283083612d80565b6000818152600860205260409020546001600160a01b031694909350915050565b600082600001828154811061286857612868613fba565b9060005260206000200154905092915050565b610766338383612d8d565b600160401b82101561289e576110b684848484612e5b565b610bf284848484612e8e565b6060601680546114c890614068565b606060006128c683612ea7565b60010190506000816001600160401b038111156128e5576128e5613835565b6040519080825280601f01601f19166020018201604052801561290f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461291957509392505050565b600061295660095490565b9050600082116129b65760405162461bcd60e51b815260206004820152602560248201527f4552433732315073693a207175616e74697479206d7573742062652067726561604482015264074657220360dc1b6064820152608401610861565b6001600160a01b038316612a185760405162461bcd60e51b815260206004820152602360248201527f4552433732315073693a206d696e7420746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610861565b8160096000828254612a2a919061401c565b9091555050600081815260086020526040902080546001600160a01b0319166001600160a01b038516179055612a61600582612cf4565b600080612a6e848461401c565b90506001600160a01b0385169150828260006000805160206144bd833981519152600080a4600183015b818114612abe57808360006000805160206144bd833981519152600080a4600101612a98565b506123a6565b60005b815181101561092157612af383838381518110612ae657612ae6613fba565b6020026020010151611d6a565b80612afd81613fe6565b915050612ac7565b60005b815181101561092157612b3483838381518110612b2757612b27613fba565b6020026020010151611880565b80612b3e81613fe6565b915050612b08565b610766828260405180602001604052806000815250612f7f565b60006001600160e01b031982166380ac58cd60e01b1480612b9157506001600160e01b03198216635b5e139f60e01b145b80610775575061077582612f8a565b600160401b811015612bb6576107668282612faf565b610766828261301d565b60005b8115612bda57600019820190911690600101612bc3565b919050565b600160401b811015612bf657610921838383613052565b6109218383836131a4565b60008181526001830160205260408120548015612cea576000612c256001836141be565b8554909150600090612c39906001906141be565b9050818114612c9e576000866000018281548110612c5957612c59613fba565b9060005260206000200154905080876000018481548110612c7c57612c7c613fba565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612caf57612caf614360565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610775565b6000915050610775565b600881901c600090815260209290925260409091208054600160ff1b60ff9093169290921c9091179055565b6000612d2b60095490565b82108015610775575050600160401b111590565b6000612d4a60095490565b9050612d56848461294b565b612d6460008583868661337c565b610bf25760405162461bcd60e51b815260040161086190614376565b60006107756005836134b3565b816001600160a01b0316836001600160a01b031603612dee5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610861565b6001600160a01b03838116600081815260126020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612e668484846121a6565b612e72848484846135ab565b610bf25760405162461bcd60e51b8152600401610861906143cb565b612e998484846121a6565b612d6484848460018561337c565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612ee65772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612f12576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612f3057662386f26fc10000830492506010015b6305f5e1008310612f48576305f5e100830492506008015b6127108310612f5c57612710830492506004015b60648310612f6e576064830492506002015b600a83106107755760010192915050565b6109218383836136a4565b60006001600160e01b0319821663152a902d60e11b14806107755750610775826136d7565b600081815260116020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612fe482611956565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612fe482610c7f565b826001600160a01b031661306582611956565b6001600160a01b03161461308b5760405162461bcd60e51b81526004016108619061441d565b6001600160a01b0382166130ed5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610861565b826001600160a01b031661310082611956565b6001600160a01b0316146131265760405162461bcd60e51b81526004016108619061441d565b600081815260116020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260108552838620805460001901905590871680865283862080546001019055868652600f90945282852080549092168417909155905184936000805160206144bd83398151915291a4505050565b6000806131b0836127ba565b91509150846001600160a01b0316826001600160a01b03161461322a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a207472616e73666572206f6620746f6b656e2074686160448201526b3a1034b9903737ba1037bbb760a11b6064820152608401610861565b6001600160a01b0384166132905760405162461bcd60e51b815260206004820152602760248201527f4552433732315073693a207472616e7366657220746f20746865207a65726f206044820152666164647265737360c81b6064820152608401610861565b61329b600084612ba0565b60006132a884600161401c565b600881901c600090815260056020526040902054909150600160ff1b60ff83161c161580156132d8575060095481105b1561330f57600081815260086020526040902080546001600160a01b0319166001600160a01b03881617905561330f600582612cf4565b600084815260086020526040902080546001600160a01b0319166001600160a01b03871617905581841461334857613348600585612cf4565b83856001600160a01b0316876001600160a01b03166000805160206144bd83398151915260405160405180910390a4611096565b60006001600160a01b0385163b156134a657506001835b61339d848661401c565b8110156134a057604051630a85bd0160e11b81526001600160a01b0387169063150b7a02906133d69033908b9086908990600401614462565b6020604051808303816000875af1925050508015613411575060408051601f3d908101601f1916820190925261340e9181019061449f565b60015b61346e573d80801561343f576040519150601f19603f3d011682016040523d82523d6000602084013e613444565b606091505b5080516000036134665760405162461bcd60e51b815260040161086190614376565b805181602001fd5b82801561348b57506001600160e01b03198116630a85bd0160e11b145b9250508061349881613fe6565b915050613393565b506134aa565b5060015b95945050505050565b600881901c60008181526020849052604081205490919060ff808516919082181c80156134f5576134e3816136e2565b60ff168203600884901b1793506135a2565b600083116135625760405162461bcd60e51b815260206004820152603460248201527f4269744d6170733a205468652073657420626974206265666f7265207468652060448201527334b73232bc103237b2b9b713ba1032bc34b9ba1760611b6064820152608401610861565b50600019909101600081815260208690526040902054909190801561359d5761358a816136e2565b60ff0360ff16600884901b1793506135a2565b6134f5565b50505092915050565b60006001600160a01b0384163b1561369957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906135ef903390899088908890600401614462565b6020604051808303816000875af192505050801561362a575060408051601f3d908101601f191682019092526136279181019061449f565b60015b61367f573d808015613658576040519150601f19603f3d011682016040523d82523d6000602084013e61365d565b606091505b5080516000036134665760405162461bcd60e51b8152600401610861906143cb565b6001600160e01b031916630a85bd0160e11b14905061247e565b506001949350505050565b6136ae838361374c565b6136bb60008484846135ab565b6109215760405162461bcd60e51b8152600401610861906143cb565b600061077582613756565b600060405180610120016040528061010081526020016144dd610100913960f87e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff61372b8561377b565b02901c8151811061373e5761373e613fba565b016020015160f81c92915050565b610766828261265f565b60006001600160e01b03198216635a05180f60e01b1480610775575061077582613793565b600080821161378957600080fd5b5060008190031690565b60006001600160e01b03198216637965db0b60e01b148061077557506301ffc9a760e01b6001600160e01b0319831614610775565b6000602082840312156137da57600080fd5b81356001600160401b038111156137f057600080fd5b820160608185031215610e9c57600080fd5b6001600160e01b031981168114610bcc57600080fd5b60006020828403121561382a57600080fd5b8135610e9c81613802565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561386d5761386d613835565b60405290565b604051601f8201601f191681016001600160401b038111828210171561389b5761389b613835565b604052919050565b60006001600160401b038211156138bc576138bc613835565b5060051b60200190565b80356001600160a01b0381168114612bda57600080fd5b600060208083850312156138f057600080fd5b82356001600160401b0381111561390657600080fd5b8301601f8101851361391757600080fd5b803561392a613925826138a3565b613873565b81815260069190911b8201830190838101908783111561394957600080fd5b928401925b8284101561399357604084890312156139675760008081fd5b61396f61384b565b613978856138c6565b8152848601358682015282526040909301929084019061394e565b979650505050505050565b60005b838110156139b95781810151838201526020016139a1565b50506000910152565b600081518084526139da81602086016020860161399e565b601f01601f19169290920160200192915050565b602081526000610e9c60208301846139c2565b600060208284031215613a1357600080fd5b5035919050565b60008060408385031215613a2d57600080fd5b613a36836138c6565b946020939093013593505050565b600080600060608486031215613a5957600080fd5b613a62846138c6565b9250613a70602085016138c6565b9150604084013590509250925092565b60008060408385031215613a9357600080fd5b50508035926020909101359150565b60008060408385031215613ab557600080fd5b82359150613ac5602084016138c6565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015613b0f5783516001600160a01b031683529284019291840191600101613aea565b50909695505050505050565b600060208284031215613b2d57600080fd5b610e9c826138c6565b80356001600160601b0381168114612bda57600080fd5b600080600060608486031215613b6257600080fd5b83359250613b72602085016138c6565b9150613b8060408501613b36565b90509250925092565b60006001600160401b03831115613ba257613ba2613835565b613bb5601f8401601f1916602001613873565b9050828152838383011115613bc957600080fd5b828260208301376000602084830101529392505050565b600060208284031215613bf257600080fd5b81356001600160401b03811115613c0857600080fd5b8201601f81018413613c1957600080fd5b61247e84823560208401613b89565b60008060408385031215613c3b57600080fd5b613c44836138c6565b9150613ac560208401613b36565b8015158114610bcc57600080fd5b60008060408385031215613c7357600080fd5b613c7c836138c6565b91506020830135613c8c81613c52565b809150509250929050565b60008083601f840112613ca957600080fd5b5081356001600160401b03811115613cc057600080fd5b6020830191508360208260051b8501011115610a0657600080fd5b60008060008060608587031215613cf157600080fd5b84356001600160401b03811115613d0757600080fd5b613d1387828801613c97565b9095509350613d269050602086016138c6565b9150613d3460408601613b36565b905092959194509250565b60008060008060808587031215613d5557600080fd5b613d5e856138c6565b9350613d6c602086016138c6565b92506040850135915060608501356001600160401b03811115613d8e57600080fd5b8501601f81018713613d9f57600080fd5b613dae87823560208401613b89565b91505092959194509250565b60008060208385031215613dcd57600080fd5b82356001600160401b03811115613de357600080fd5b613def85828601613c97565b90969095509350505050565b60008060408385031215613e0e57600080fd5b613e17836138c6565b9150613ac5602084016138c6565b60006020808385031215613e3857600080fd5b82356001600160401b0380821115613e4f57600080fd5b818501915085601f830112613e6357600080fd5b8135613e71613925826138a3565b81815260059190911b83018401908481019088831115613e9057600080fd5b8585015b83811015613f6457803585811115613eac5760008081fd5b86016040818c03601f1901811315613ec45760008081fd5b613ecc61384b565b613ed78a84016138c6565b81528183013588811115613eeb5760008081fd5b8084019350508c603f840112613f015760008081fd5b89830135613f11613925826138a3565b81815260059190911b84018301908b8101908f831115613f315760008081fd5b948401945b82861015613f4f5785358252948c0194908c0190613f36565b838d0152505085525050918601918601613e94565b5098975050505050505050565b6000808335601e19843603018112613f8857600080fd5b8301803591506001600160401b03821115613fa257600080fd5b6020019150600581901b3603821315610a0657600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613ff857613ff8613fd0565b5060010190565b60006020828403121561401157600080fd5b8151610e9c81613c52565b8082018082111561077557610775613fd0565b808202811582820484141761077557610775613fd0565b60008261406357634e487b7160e01b600052601260045260246000fd5b500490565b600181811c9082168061407c57607f821691505b60208210810361409c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561092157600081815260208120601f850160051c810160208610156140c95750805b601f850160051c820191505b81811015611096578281556001016140d5565b81516001600160401b0381111561410157614101613835565b6141158161410f8454614068565b846140a2565b602080601f83116001811461414a57600084156141325750858301515b600019600386901b1c1916600185901b178555611096565b600085815260208120601f198616915b828110156141795788860151825594840194600190910190840161415a565b50858210156141975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000816141b6576141b6613fd0565b506000190190565b8181038181111561077557610775613fd0565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526034908201527f4552433732315073693a207472616e736665722063616c6c6572206973206e6f6040820152731d081bdddb995c881b9bdc88185c1c1c9bdd995960621b606082015260800190565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b600083516142ce81846020880161399e565b8351908301906142e281836020880161399e565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161432381601785016020880161399e565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161435481602884016020880161399e565b01602801949350505050565b634e487b7160e01b600052603160045260246000fd5b60208082526035908201527f4552433732315073693a207472616e7366657220746f206e6f6e20455243373260408201527418a932b1b2b4bb32b91034b6b83632b6b2b73a32b960591b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614495908301846139c2565b9695505050505050565b6000602082840312156144b157600080fd5b8151610e9c8161380256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0001020903110a19042112290b311a3905412245134d2a550c5d32651b6d3a7506264262237d468514804e8d2b95569d0d495ea533a966b11c886eb93bc176c9071727374353637324837e9b47af86c7155181ad4fd18ed32c9096db57d59ee30e2e4a6a5f92a6be3498aae067ddb2eb1d5989b56fd7baf33ca0c2ee77e5caf7ff0810182028303840444c545c646c7425617c847f8c949c48a4a8b087b8c0c816365272829aaec650acd0d28fdad4e22d6991bd97dfdcea58b4d6f29fede4f6fe0f1f2f3f4b5b6b607b8b93a3a7b7bf357199c5abcfd9e168bcdee9b3f1ecf5fd1e3e5a7a8aa2b670c4ced8bbe8f0f4fc3d79a1c3cde7effb78cce6facbf9f8a2646970667358221220216dd955505e933a17e6f45acb29b390eaf7241d0e86fad51fe9b9e3417836e264736f6c63430008110033";
30383
+ const isSuperArgs$2 = (xs) => xs.length > 1;
30384
+ class ImmutableERC721HybridPermissionedMintable__factory extends ContractFactory {
30001
30385
  constructor(...args) {
30002
- if (isSuperArgs$1(args)) {
30386
+ if (isSuperArgs$2(args)) {
30003
30387
  super(...args);
30004
30388
  }
30005
30389
  else {
30006
- super(_abi$1, _bytecode$1, args[0]);
30390
+ super(_abi$2, _bytecode$2, args[0]);
30007
30391
  }
30008
30392
  }
30009
- deploy(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides) {
30010
- return super.deploy(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides || {});
30393
+ deploy(owner_, name_, symbol_, baseURI_, contractURI_, royaltyAllowlist_, royaltyReceiver_, feeNumerator_, overrides) {
30394
+ return super.deploy(owner_, name_, symbol_, baseURI_, contractURI_, royaltyAllowlist_, royaltyReceiver_, feeNumerator_, overrides || {});
30011
30395
  }
30012
- getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides) {
30013
- return super.getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides || {});
30396
+ getDeployTransaction(owner_, name_, symbol_, baseURI_, contractURI_, royaltyAllowlist_, royaltyReceiver_, feeNumerator_, overrides) {
30397
+ return super.getDeployTransaction(owner_, name_, symbol_, baseURI_, contractURI_, royaltyAllowlist_, royaltyReceiver_, feeNumerator_, overrides || {});
30014
30398
  }
30015
30399
  attach(address) {
30016
30400
  return super.attach(address);
@@ -30018,63 +30402,1465 @@ class ImmutableERC721PermissionedMintable__factory extends ContractFactory {
30018
30402
  connect(signer) {
30019
30403
  return super.connect(signer);
30020
30404
  }
30021
- static bytecode = _bytecode$1;
30022
- static abi = _abi$1;
30405
+ static bytecode = _bytecode$2;
30406
+ static abi = _abi$2;
30023
30407
  static createInterface() {
30024
- return new utils$1.Interface(_abi$1);
30408
+ return new utils$1.Interface(_abi$2);
30025
30409
  }
30026
30410
  static connect(address, signerOrProvider) {
30027
- return new Contract$1(address, _abi$1, signerOrProvider);
30028
- }
30029
- }
30030
-
30031
- class ERC20 {
30032
- contract;
30033
- constructor(contractAddress) {
30034
- const factory = new ERC20__factory();
30035
- this.contract = factory.attach(contractAddress);
30036
- }
30037
- /**
30038
- * @returns a promise that resolves with a BigNumber that represents the amount of tokens in existence
30039
- */
30040
- async totalSupply(provider, overrides = {}) {
30041
- return this.contract.connect(provider).totalSupply(overrides);
30042
- }
30043
- /**
30044
- * @returns a promise that resolves with a BigNumber that represents the amount of tokens owned by account
30045
- */
30046
- async balanceOf(provider, account, overrides = {}) {
30047
- return this.contract.connect(provider).balanceOf(account, overrides);
30048
- }
30049
- /**
30050
- * @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
30051
- */
30052
- async allowance(provider, owner, spender, overrides = {}) {
30053
- return this.contract.connect(provider).allowance(owner, spender, overrides);
30054
- }
30055
- /**
30056
- * @returns a promise that resolves with a populated transaction
30057
- */
30058
- async populateTransfer(to, amount, overrides) {
30059
- return this.contract.populateTransaction.transfer(to, amount, overrides);
30060
- }
30061
- /**
30062
- * @returns a promise that resolves with a populated transaction
30063
- */
30064
- async populateApprove(spender, amount, overrides = {}) {
30065
- return this.contract.populateTransaction.approve(spender, amount, overrides);
30066
- }
30067
- /**
30068
- * @returns a promise that resolves with a populated transaction
30069
- */
30070
- async populateTransferFrom(from, to, amount, overrides = {}) {
30071
- return this.contract.populateTransaction.transferFrom(from, to, amount, overrides);
30411
+ return new Contract$1(address, _abi$2, signerOrProvider);
30072
30412
  }
30073
30413
  }
30074
30414
 
30075
- var erc20 = /*#__PURE__*/Object.freeze({
30076
- __proto__: null,
30077
- ERC20: ERC20
30415
+ /* Autogenerated file. Do not edit manually. */
30416
+ /* tslint:disable */
30417
+ /* eslint-disable */
30418
+ const _abi$1 = [
30419
+ {
30420
+ inputs: [
30421
+ {
30422
+ internalType: "address",
30423
+ name: "owner",
30424
+ type: "address",
30425
+ },
30426
+ {
30427
+ internalType: "string",
30428
+ name: "name_",
30429
+ type: "string",
30430
+ },
30431
+ {
30432
+ internalType: "string",
30433
+ name: "symbol_",
30434
+ type: "string",
30435
+ },
30436
+ {
30437
+ internalType: "string",
30438
+ name: "baseURI_",
30439
+ type: "string",
30440
+ },
30441
+ {
30442
+ internalType: "string",
30443
+ name: "contractURI_",
30444
+ type: "string",
30445
+ },
30446
+ {
30447
+ internalType: "address",
30448
+ name: "_royaltyAllowlist",
30449
+ type: "address",
30450
+ },
30451
+ {
30452
+ internalType: "address",
30453
+ name: "_receiver",
30454
+ type: "address",
30455
+ },
30456
+ {
30457
+ internalType: "uint96",
30458
+ name: "_feeNumerator",
30459
+ type: "uint96",
30460
+ },
30461
+ ],
30462
+ stateMutability: "nonpayable",
30463
+ type: "constructor",
30464
+ },
30465
+ {
30466
+ inputs: [
30467
+ {
30468
+ internalType: "address",
30469
+ name: "target",
30470
+ type: "address",
30471
+ },
30472
+ ],
30473
+ name: "ApproveTargetNotInAllowlist",
30474
+ type: "error",
30475
+ },
30476
+ {
30477
+ inputs: [
30478
+ {
30479
+ internalType: "address",
30480
+ name: "approver",
30481
+ type: "address",
30482
+ },
30483
+ ],
30484
+ name: "ApproverNotInAllowlist",
30485
+ type: "error",
30486
+ },
30487
+ {
30488
+ inputs: [
30489
+ {
30490
+ internalType: "address",
30491
+ name: "caller",
30492
+ type: "address",
30493
+ },
30494
+ ],
30495
+ name: "CallerNotInAllowlist",
30496
+ type: "error",
30497
+ },
30498
+ {
30499
+ inputs: [
30500
+ {
30501
+ internalType: "address",
30502
+ name: "from",
30503
+ type: "address",
30504
+ },
30505
+ ],
30506
+ name: "TransferFromNotInAllowlist",
30507
+ type: "error",
30508
+ },
30509
+ {
30510
+ inputs: [
30511
+ {
30512
+ internalType: "address",
30513
+ name: "to",
30514
+ type: "address",
30515
+ },
30516
+ ],
30517
+ name: "TransferToNotInAllowlist",
30518
+ type: "error",
30519
+ },
30520
+ {
30521
+ anonymous: false,
30522
+ inputs: [
30523
+ {
30524
+ indexed: true,
30525
+ internalType: "address",
30526
+ name: "owner",
30527
+ type: "address",
30528
+ },
30529
+ {
30530
+ indexed: true,
30531
+ internalType: "address",
30532
+ name: "approved",
30533
+ type: "address",
30534
+ },
30535
+ {
30536
+ indexed: true,
30537
+ internalType: "uint256",
30538
+ name: "tokenId",
30539
+ type: "uint256",
30540
+ },
30541
+ ],
30542
+ name: "Approval",
30543
+ type: "event",
30544
+ },
30545
+ {
30546
+ anonymous: false,
30547
+ inputs: [
30548
+ {
30549
+ indexed: true,
30550
+ internalType: "address",
30551
+ name: "owner",
30552
+ type: "address",
30553
+ },
30554
+ {
30555
+ indexed: true,
30556
+ internalType: "address",
30557
+ name: "operator",
30558
+ type: "address",
30559
+ },
30560
+ {
30561
+ indexed: false,
30562
+ internalType: "bool",
30563
+ name: "approved",
30564
+ type: "bool",
30565
+ },
30566
+ ],
30567
+ name: "ApprovalForAll",
30568
+ type: "event",
30569
+ },
30570
+ {
30571
+ anonymous: false,
30572
+ inputs: [
30573
+ {
30574
+ indexed: true,
30575
+ internalType: "bytes32",
30576
+ name: "role",
30577
+ type: "bytes32",
30578
+ },
30579
+ {
30580
+ indexed: true,
30581
+ internalType: "bytes32",
30582
+ name: "previousAdminRole",
30583
+ type: "bytes32",
30584
+ },
30585
+ {
30586
+ indexed: true,
30587
+ internalType: "bytes32",
30588
+ name: "newAdminRole",
30589
+ type: "bytes32",
30590
+ },
30591
+ ],
30592
+ name: "RoleAdminChanged",
30593
+ type: "event",
30594
+ },
30595
+ {
30596
+ anonymous: false,
30597
+ inputs: [
30598
+ {
30599
+ indexed: true,
30600
+ internalType: "bytes32",
30601
+ name: "role",
30602
+ type: "bytes32",
30603
+ },
30604
+ {
30605
+ indexed: true,
30606
+ internalType: "address",
30607
+ name: "account",
30608
+ type: "address",
30609
+ },
30610
+ {
30611
+ indexed: true,
30612
+ internalType: "address",
30613
+ name: "sender",
30614
+ type: "address",
30615
+ },
30616
+ ],
30617
+ name: "RoleGranted",
30618
+ type: "event",
30619
+ },
30620
+ {
30621
+ anonymous: false,
30622
+ inputs: [
30623
+ {
30624
+ indexed: true,
30625
+ internalType: "bytes32",
30626
+ name: "role",
30627
+ type: "bytes32",
30628
+ },
30629
+ {
30630
+ indexed: true,
30631
+ internalType: "address",
30632
+ name: "account",
30633
+ type: "address",
30634
+ },
30635
+ {
30636
+ indexed: true,
30637
+ internalType: "address",
30638
+ name: "sender",
30639
+ type: "address",
30640
+ },
30641
+ ],
30642
+ name: "RoleRevoked",
30643
+ type: "event",
30644
+ },
30645
+ {
30646
+ anonymous: false,
30647
+ inputs: [
30648
+ {
30649
+ indexed: false,
30650
+ internalType: "address",
30651
+ name: "oldRegistry",
30652
+ type: "address",
30653
+ },
30654
+ {
30655
+ indexed: false,
30656
+ internalType: "address",
30657
+ name: "newRegistry",
30658
+ type: "address",
30659
+ },
30660
+ ],
30661
+ name: "RoyaltytAllowlistRegistryUpdated",
30662
+ type: "event",
30663
+ },
30664
+ {
30665
+ anonymous: false,
30666
+ inputs: [
30667
+ {
30668
+ indexed: true,
30669
+ internalType: "address",
30670
+ name: "from",
30671
+ type: "address",
30672
+ },
30673
+ {
30674
+ indexed: true,
30675
+ internalType: "address",
30676
+ name: "to",
30677
+ type: "address",
30678
+ },
30679
+ {
30680
+ indexed: true,
30681
+ internalType: "uint256",
30682
+ name: "tokenId",
30683
+ type: "uint256",
30684
+ },
30685
+ ],
30686
+ name: "Transfer",
30687
+ type: "event",
30688
+ },
30689
+ {
30690
+ inputs: [],
30691
+ name: "DEFAULT_ADMIN_ROLE",
30692
+ outputs: [
30693
+ {
30694
+ internalType: "bytes32",
30695
+ name: "",
30696
+ type: "bytes32",
30697
+ },
30698
+ ],
30699
+ stateMutability: "view",
30700
+ type: "function",
30701
+ },
30702
+ {
30703
+ inputs: [],
30704
+ name: "MINTER_ROLE",
30705
+ outputs: [
30706
+ {
30707
+ internalType: "bytes32",
30708
+ name: "",
30709
+ type: "bytes32",
30710
+ },
30711
+ ],
30712
+ stateMutability: "view",
30713
+ type: "function",
30714
+ },
30715
+ {
30716
+ inputs: [
30717
+ {
30718
+ internalType: "uint256",
30719
+ name: "",
30720
+ type: "uint256",
30721
+ },
30722
+ ],
30723
+ name: "_burnedTokens",
30724
+ outputs: [
30725
+ {
30726
+ internalType: "bool",
30727
+ name: "",
30728
+ type: "bool",
30729
+ },
30730
+ ],
30731
+ stateMutability: "view",
30732
+ type: "function",
30733
+ },
30734
+ {
30735
+ inputs: [],
30736
+ name: "_totalSupply",
30737
+ outputs: [
30738
+ {
30739
+ internalType: "uint256",
30740
+ name: "",
30741
+ type: "uint256",
30742
+ },
30743
+ ],
30744
+ stateMutability: "view",
30745
+ type: "function",
30746
+ },
30747
+ {
30748
+ inputs: [
30749
+ {
30750
+ internalType: "address",
30751
+ name: "to",
30752
+ type: "address",
30753
+ },
30754
+ {
30755
+ internalType: "uint256",
30756
+ name: "tokenId",
30757
+ type: "uint256",
30758
+ },
30759
+ ],
30760
+ name: "approve",
30761
+ outputs: [],
30762
+ stateMutability: "nonpayable",
30763
+ type: "function",
30764
+ },
30765
+ {
30766
+ inputs: [
30767
+ {
30768
+ internalType: "address",
30769
+ name: "owner",
30770
+ type: "address",
30771
+ },
30772
+ ],
30773
+ name: "balanceOf",
30774
+ outputs: [
30775
+ {
30776
+ internalType: "uint256",
30777
+ name: "",
30778
+ type: "uint256",
30779
+ },
30780
+ ],
30781
+ stateMutability: "view",
30782
+ type: "function",
30783
+ },
30784
+ {
30785
+ inputs: [],
30786
+ name: "baseURI",
30787
+ outputs: [
30788
+ {
30789
+ internalType: "string",
30790
+ name: "",
30791
+ type: "string",
30792
+ },
30793
+ ],
30794
+ stateMutability: "view",
30795
+ type: "function",
30796
+ },
30797
+ {
30798
+ inputs: [
30799
+ {
30800
+ internalType: "uint256",
30801
+ name: "tokenId",
30802
+ type: "uint256",
30803
+ },
30804
+ ],
30805
+ name: "burn",
30806
+ outputs: [],
30807
+ stateMutability: "nonpayable",
30808
+ type: "function",
30809
+ },
30810
+ {
30811
+ inputs: [
30812
+ {
30813
+ internalType: "uint256[]",
30814
+ name: "tokenIDs",
30815
+ type: "uint256[]",
30816
+ },
30817
+ ],
30818
+ name: "burnBatch",
30819
+ outputs: [],
30820
+ stateMutability: "nonpayable",
30821
+ type: "function",
30822
+ },
30823
+ {
30824
+ inputs: [],
30825
+ name: "contractURI",
30826
+ outputs: [
30827
+ {
30828
+ internalType: "string",
30829
+ name: "",
30830
+ type: "string",
30831
+ },
30832
+ ],
30833
+ stateMutability: "view",
30834
+ type: "function",
30835
+ },
30836
+ {
30837
+ inputs: [],
30838
+ name: "getAdmins",
30839
+ outputs: [
30840
+ {
30841
+ internalType: "address[]",
30842
+ name: "",
30843
+ type: "address[]",
30844
+ },
30845
+ ],
30846
+ stateMutability: "view",
30847
+ type: "function",
30848
+ },
30849
+ {
30850
+ inputs: [
30851
+ {
30852
+ internalType: "uint256",
30853
+ name: "tokenId",
30854
+ type: "uint256",
30855
+ },
30856
+ ],
30857
+ name: "getApproved",
30858
+ outputs: [
30859
+ {
30860
+ internalType: "address",
30861
+ name: "",
30862
+ type: "address",
30863
+ },
30864
+ ],
30865
+ stateMutability: "view",
30866
+ type: "function",
30867
+ },
30868
+ {
30869
+ inputs: [
30870
+ {
30871
+ internalType: "bytes32",
30872
+ name: "role",
30873
+ type: "bytes32",
30874
+ },
30875
+ ],
30876
+ name: "getRoleAdmin",
30877
+ outputs: [
30878
+ {
30879
+ internalType: "bytes32",
30880
+ name: "",
30881
+ type: "bytes32",
30882
+ },
30883
+ ],
30884
+ stateMutability: "view",
30885
+ type: "function",
30886
+ },
30887
+ {
30888
+ inputs: [
30889
+ {
30890
+ internalType: "bytes32",
30891
+ name: "role",
30892
+ type: "bytes32",
30893
+ },
30894
+ {
30895
+ internalType: "uint256",
30896
+ name: "index",
30897
+ type: "uint256",
30898
+ },
30899
+ ],
30900
+ name: "getRoleMember",
30901
+ outputs: [
30902
+ {
30903
+ internalType: "address",
30904
+ name: "",
30905
+ type: "address",
30906
+ },
30907
+ ],
30908
+ stateMutability: "view",
30909
+ type: "function",
30910
+ },
30911
+ {
30912
+ inputs: [
30913
+ {
30914
+ internalType: "bytes32",
30915
+ name: "role",
30916
+ type: "bytes32",
30917
+ },
30918
+ ],
30919
+ name: "getRoleMemberCount",
30920
+ outputs: [
30921
+ {
30922
+ internalType: "uint256",
30923
+ name: "",
30924
+ type: "uint256",
30925
+ },
30926
+ ],
30927
+ stateMutability: "view",
30928
+ type: "function",
30929
+ },
30930
+ {
30931
+ inputs: [
30932
+ {
30933
+ internalType: "address",
30934
+ name: "user",
30935
+ type: "address",
30936
+ },
30937
+ ],
30938
+ name: "grantMinterRole",
30939
+ outputs: [],
30940
+ stateMutability: "nonpayable",
30941
+ type: "function",
30942
+ },
30943
+ {
30944
+ inputs: [
30945
+ {
30946
+ internalType: "bytes32",
30947
+ name: "role",
30948
+ type: "bytes32",
30949
+ },
30950
+ {
30951
+ internalType: "address",
30952
+ name: "account",
30953
+ type: "address",
30954
+ },
30955
+ ],
30956
+ name: "grantRole",
30957
+ outputs: [],
30958
+ stateMutability: "nonpayable",
30959
+ type: "function",
30960
+ },
30961
+ {
30962
+ inputs: [
30963
+ {
30964
+ internalType: "bytes32",
30965
+ name: "role",
30966
+ type: "bytes32",
30967
+ },
30968
+ {
30969
+ internalType: "address",
30970
+ name: "account",
30971
+ type: "address",
30972
+ },
30973
+ ],
30974
+ name: "hasRole",
30975
+ outputs: [
30976
+ {
30977
+ internalType: "bool",
30978
+ name: "",
30979
+ type: "bool",
30980
+ },
30981
+ ],
30982
+ stateMutability: "view",
30983
+ type: "function",
30984
+ },
30985
+ {
30986
+ inputs: [
30987
+ {
30988
+ internalType: "address",
30989
+ name: "owner",
30990
+ type: "address",
30991
+ },
30992
+ {
30993
+ internalType: "address",
30994
+ name: "operator",
30995
+ type: "address",
30996
+ },
30997
+ ],
30998
+ name: "isApprovedForAll",
30999
+ outputs: [
31000
+ {
31001
+ internalType: "bool",
31002
+ name: "",
31003
+ type: "bool",
31004
+ },
31005
+ ],
31006
+ stateMutability: "view",
31007
+ type: "function",
31008
+ },
31009
+ {
31010
+ inputs: [
31011
+ {
31012
+ internalType: "address",
31013
+ name: "to",
31014
+ type: "address",
31015
+ },
31016
+ {
31017
+ internalType: "uint256",
31018
+ name: "tokenID",
31019
+ type: "uint256",
31020
+ },
31021
+ ],
31022
+ name: "mint",
31023
+ outputs: [],
31024
+ stateMutability: "nonpayable",
31025
+ type: "function",
31026
+ },
31027
+ {
31028
+ inputs: [],
31029
+ name: "name",
31030
+ outputs: [
31031
+ {
31032
+ internalType: "string",
31033
+ name: "",
31034
+ type: "string",
31035
+ },
31036
+ ],
31037
+ stateMutability: "view",
31038
+ type: "function",
31039
+ },
31040
+ {
31041
+ inputs: [
31042
+ {
31043
+ internalType: "uint256",
31044
+ name: "tokenId",
31045
+ type: "uint256",
31046
+ },
31047
+ ],
31048
+ name: "ownerOf",
31049
+ outputs: [
31050
+ {
31051
+ internalType: "address",
31052
+ name: "",
31053
+ type: "address",
31054
+ },
31055
+ ],
31056
+ stateMutability: "view",
31057
+ type: "function",
31058
+ },
31059
+ {
31060
+ inputs: [
31061
+ {
31062
+ internalType: "bytes32",
31063
+ name: "role",
31064
+ type: "bytes32",
31065
+ },
31066
+ {
31067
+ internalType: "address",
31068
+ name: "account",
31069
+ type: "address",
31070
+ },
31071
+ ],
31072
+ name: "renounceRole",
31073
+ outputs: [],
31074
+ stateMutability: "nonpayable",
31075
+ type: "function",
31076
+ },
31077
+ {
31078
+ inputs: [
31079
+ {
31080
+ internalType: "address",
31081
+ name: "user",
31082
+ type: "address",
31083
+ },
31084
+ ],
31085
+ name: "revokeMinterRole",
31086
+ outputs: [],
31087
+ stateMutability: "nonpayable",
31088
+ type: "function",
31089
+ },
31090
+ {
31091
+ inputs: [
31092
+ {
31093
+ internalType: "bytes32",
31094
+ name: "role",
31095
+ type: "bytes32",
31096
+ },
31097
+ {
31098
+ internalType: "address",
31099
+ name: "account",
31100
+ type: "address",
31101
+ },
31102
+ ],
31103
+ name: "revokeRole",
31104
+ outputs: [],
31105
+ stateMutability: "nonpayable",
31106
+ type: "function",
31107
+ },
31108
+ {
31109
+ inputs: [],
31110
+ name: "royaltyAllowlist",
31111
+ outputs: [
31112
+ {
31113
+ internalType: "contract IRoyaltyAllowlist",
31114
+ name: "",
31115
+ type: "address",
31116
+ },
31117
+ ],
31118
+ stateMutability: "view",
31119
+ type: "function",
31120
+ },
31121
+ {
31122
+ inputs: [
31123
+ {
31124
+ internalType: "uint256",
31125
+ name: "tokenId",
31126
+ type: "uint256",
31127
+ },
31128
+ {
31129
+ internalType: "uint256",
31130
+ name: "salePrice",
31131
+ type: "uint256",
31132
+ },
31133
+ ],
31134
+ name: "royaltyInfo",
31135
+ outputs: [
31136
+ {
31137
+ internalType: "address",
31138
+ name: "",
31139
+ type: "address",
31140
+ },
31141
+ {
31142
+ internalType: "uint256",
31143
+ name: "",
31144
+ type: "uint256",
31145
+ },
31146
+ ],
31147
+ stateMutability: "view",
31148
+ type: "function",
31149
+ },
31150
+ {
31151
+ inputs: [
31152
+ {
31153
+ internalType: "address",
31154
+ name: "to",
31155
+ type: "address",
31156
+ },
31157
+ {
31158
+ internalType: "uint256",
31159
+ name: "tokenID",
31160
+ type: "uint256",
31161
+ },
31162
+ ],
31163
+ name: "safeMint",
31164
+ outputs: [],
31165
+ stateMutability: "nonpayable",
31166
+ type: "function",
31167
+ },
31168
+ {
31169
+ inputs: [
31170
+ {
31171
+ components: [
31172
+ {
31173
+ internalType: "address",
31174
+ name: "to",
31175
+ type: "address",
31176
+ },
31177
+ {
31178
+ internalType: "uint256[]",
31179
+ name: "tokenIds",
31180
+ type: "uint256[]",
31181
+ },
31182
+ ],
31183
+ internalType: "struct ImmutableERC721Base.IDMint[]",
31184
+ name: "mintRequests",
31185
+ type: "tuple[]",
31186
+ },
31187
+ ],
31188
+ name: "safeMintBatch",
31189
+ outputs: [],
31190
+ stateMutability: "nonpayable",
31191
+ type: "function",
31192
+ },
31193
+ {
31194
+ inputs: [
31195
+ {
31196
+ internalType: "address",
31197
+ name: "from",
31198
+ type: "address",
31199
+ },
31200
+ {
31201
+ internalType: "address",
31202
+ name: "to",
31203
+ type: "address",
31204
+ },
31205
+ {
31206
+ internalType: "uint256",
31207
+ name: "tokenId",
31208
+ type: "uint256",
31209
+ },
31210
+ ],
31211
+ name: "safeTransferFrom",
31212
+ outputs: [],
31213
+ stateMutability: "nonpayable",
31214
+ type: "function",
31215
+ },
31216
+ {
31217
+ inputs: [
31218
+ {
31219
+ internalType: "address",
31220
+ name: "from",
31221
+ type: "address",
31222
+ },
31223
+ {
31224
+ internalType: "address",
31225
+ name: "to",
31226
+ type: "address",
31227
+ },
31228
+ {
31229
+ internalType: "uint256",
31230
+ name: "tokenId",
31231
+ type: "uint256",
31232
+ },
31233
+ {
31234
+ internalType: "bytes",
31235
+ name: "data",
31236
+ type: "bytes",
31237
+ },
31238
+ ],
31239
+ name: "safeTransferFrom",
31240
+ outputs: [],
31241
+ stateMutability: "nonpayable",
31242
+ type: "function",
31243
+ },
31244
+ {
31245
+ inputs: [
31246
+ {
31247
+ components: [
31248
+ {
31249
+ internalType: "address",
31250
+ name: "from",
31251
+ type: "address",
31252
+ },
31253
+ {
31254
+ internalType: "address[]",
31255
+ name: "tos",
31256
+ type: "address[]",
31257
+ },
31258
+ {
31259
+ internalType: "uint256[]",
31260
+ name: "tokenIds",
31261
+ type: "uint256[]",
31262
+ },
31263
+ ],
31264
+ internalType: "struct ImmutableERC721Base.TransferRequest",
31265
+ name: "tr",
31266
+ type: "tuple",
31267
+ },
31268
+ ],
31269
+ name: "safeTransferFromBatch",
31270
+ outputs: [],
31271
+ stateMutability: "nonpayable",
31272
+ type: "function",
31273
+ },
31274
+ {
31275
+ inputs: [
31276
+ {
31277
+ internalType: "address",
31278
+ name: "operator",
31279
+ type: "address",
31280
+ },
31281
+ {
31282
+ internalType: "bool",
31283
+ name: "approved",
31284
+ type: "bool",
31285
+ },
31286
+ ],
31287
+ name: "setApprovalForAll",
31288
+ outputs: [],
31289
+ stateMutability: "nonpayable",
31290
+ type: "function",
31291
+ },
31292
+ {
31293
+ inputs: [
31294
+ {
31295
+ internalType: "string",
31296
+ name: "baseURI_",
31297
+ type: "string",
31298
+ },
31299
+ ],
31300
+ name: "setBaseURI",
31301
+ outputs: [],
31302
+ stateMutability: "nonpayable",
31303
+ type: "function",
31304
+ },
31305
+ {
31306
+ inputs: [
31307
+ {
31308
+ internalType: "string",
31309
+ name: "_contractURI",
31310
+ type: "string",
31311
+ },
31312
+ ],
31313
+ name: "setContractURI",
31314
+ outputs: [],
31315
+ stateMutability: "nonpayable",
31316
+ type: "function",
31317
+ },
31318
+ {
31319
+ inputs: [
31320
+ {
31321
+ internalType: "address",
31322
+ name: "receiver",
31323
+ type: "address",
31324
+ },
31325
+ {
31326
+ internalType: "uint96",
31327
+ name: "feeNumerator",
31328
+ type: "uint96",
31329
+ },
31330
+ ],
31331
+ name: "setDefaultRoyaltyReceiver",
31332
+ outputs: [],
31333
+ stateMutability: "nonpayable",
31334
+ type: "function",
31335
+ },
31336
+ {
31337
+ inputs: [
31338
+ {
31339
+ internalType: "uint256",
31340
+ name: "tokenId",
31341
+ type: "uint256",
31342
+ },
31343
+ {
31344
+ internalType: "address",
31345
+ name: "receiver",
31346
+ type: "address",
31347
+ },
31348
+ {
31349
+ internalType: "uint96",
31350
+ name: "feeNumerator",
31351
+ type: "uint96",
31352
+ },
31353
+ ],
31354
+ name: "setNFTRoyaltyReceiver",
31355
+ outputs: [],
31356
+ stateMutability: "nonpayable",
31357
+ type: "function",
31358
+ },
31359
+ {
31360
+ inputs: [
31361
+ {
31362
+ internalType: "uint256[]",
31363
+ name: "tokenIds",
31364
+ type: "uint256[]",
31365
+ },
31366
+ {
31367
+ internalType: "address",
31368
+ name: "receiver",
31369
+ type: "address",
31370
+ },
31371
+ {
31372
+ internalType: "uint96",
31373
+ name: "feeNumerator",
31374
+ type: "uint96",
31375
+ },
31376
+ ],
31377
+ name: "setNFTRoyaltyReceiverBatch",
31378
+ outputs: [],
31379
+ stateMutability: "nonpayable",
31380
+ type: "function",
31381
+ },
31382
+ {
31383
+ inputs: [
31384
+ {
31385
+ internalType: "address",
31386
+ name: "_royaltyAllowlist",
31387
+ type: "address",
31388
+ },
31389
+ ],
31390
+ name: "setRoyaltyAllowlistRegistry",
31391
+ outputs: [],
31392
+ stateMutability: "nonpayable",
31393
+ type: "function",
31394
+ },
31395
+ {
31396
+ inputs: [
31397
+ {
31398
+ internalType: "bytes4",
31399
+ name: "interfaceId",
31400
+ type: "bytes4",
31401
+ },
31402
+ ],
31403
+ name: "supportsInterface",
31404
+ outputs: [
31405
+ {
31406
+ internalType: "bool",
31407
+ name: "",
31408
+ type: "bool",
31409
+ },
31410
+ ],
31411
+ stateMutability: "view",
31412
+ type: "function",
31413
+ },
31414
+ {
31415
+ inputs: [],
31416
+ name: "symbol",
31417
+ outputs: [
31418
+ {
31419
+ internalType: "string",
31420
+ name: "",
31421
+ type: "string",
31422
+ },
31423
+ ],
31424
+ stateMutability: "view",
31425
+ type: "function",
31426
+ },
31427
+ {
31428
+ inputs: [
31429
+ {
31430
+ internalType: "uint256",
31431
+ name: "tokenId",
31432
+ type: "uint256",
31433
+ },
31434
+ ],
31435
+ name: "tokenURI",
31436
+ outputs: [
31437
+ {
31438
+ internalType: "string",
31439
+ name: "",
31440
+ type: "string",
31441
+ },
31442
+ ],
31443
+ stateMutability: "view",
31444
+ type: "function",
31445
+ },
31446
+ {
31447
+ inputs: [],
31448
+ name: "totalSupply",
31449
+ outputs: [
31450
+ {
31451
+ internalType: "uint256",
31452
+ name: "",
31453
+ type: "uint256",
31454
+ },
31455
+ ],
31456
+ stateMutability: "view",
31457
+ type: "function",
31458
+ },
31459
+ {
31460
+ inputs: [
31461
+ {
31462
+ internalType: "address",
31463
+ name: "from",
31464
+ type: "address",
31465
+ },
31466
+ {
31467
+ internalType: "address",
31468
+ name: "to",
31469
+ type: "address",
31470
+ },
31471
+ {
31472
+ internalType: "uint256",
31473
+ name: "tokenId",
31474
+ type: "uint256",
31475
+ },
31476
+ ],
31477
+ name: "transferFrom",
31478
+ outputs: [],
31479
+ stateMutability: "nonpayable",
31480
+ type: "function",
31481
+ },
31482
+ ];
31483
+ const _bytecode$1 = "0x60806040526000600d553480156200001657600080fd5b5060405162003f9238038062003f92833981016040819052620000399162000811565b8787878787868685856003620000508382620009a4565b5060046200005f8282620009a4565b505050620000748282620000fc60201b60201c565b6200008160008862000201565b600c6200008f8582620009a4565b50600b6200009e8482620009a4565b5050505050505050620000b88282620000fc60201b60201c565b620000c560008962000201565b620000d08362000244565b600c620000de8682620009a4565b50600b620000ed8582620009a4565b50505050505050505062000bb8565b6127106001600160601b0382161115620001705760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001c85760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000167565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b6200021882826200039160201b620013ca1760201c565b60008281526001602090815260409091206200023f9183906200144e62000432821b17901c565b505050565b6000620002518162000452565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa1580156200029d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c3919062000a70565b620003275760405162461bcd60e51b815260206004820152602d60248201527f636f6e747261637420646f6573206e6f7420696d706c656d656e742049526f7960448201526c185b1d1e505b1b1bdddb1a5cdd609a1b606482015260840162000167565b600254604080516001600160a01b03928316815291841660208301527f4a1d010d926ae0d4294a4afe61ae81bb378335fbf671e099a7138b5afeefdf84910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200042e576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003ed3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000449836001600160a01b03841662000461565b90505b92915050565b6200045e8133620004b3565b50565b6000818152600183016020526040812054620004aa575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200044c565b5060006200044c565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200042e57620004f2816200054360201b620014631760201c565b620005088360206200147562000556821b17811c565b6040516020016200051b92919062000a94565b60408051601f198184030181529082905262461bcd60e51b8252620001679160040162000b0d565b60606200044c6001600160a01b03831660145b606060006200056783600262000b58565b6200057490600262000b72565b6001600160401b038111156200058e576200058e6200072c565b6040519080825280601f01601f191660200182016040528015620005b9576020820181803683370190505b509050600360fc1b81600081518110620005d757620005d762000b88565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062000609576200060962000b88565b60200101906001600160f81b031916908160001a90535060006200062f84600262000b58565b6200063c90600162000b72565b90505b6001811115620006be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062000674576200067462000b88565b1a60f81b8282815181106200068d576200068d62000b88565b60200101906001600160f81b031916908160001a90535060049490941c93620006b68162000b9e565b90506200063f565b508315620004495760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640162000167565b80516001600160a01b03811681146200072757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200075f57818101518382015260200162000745565b50506000910152565b600082601f8301126200077a57600080fd5b81516001600160401b03808211156200079757620007976200072c565b604051601f8301601f19908116603f01168101908282118183101715620007c257620007c26200072c565b81604052838152866020858801011115620007dc57600080fd5b620007ef84602083016020890162000742565b9695505050505050565b80516001600160601b03811681146200072757600080fd5b600080600080600080600080610100898b0312156200082f57600080fd5b6200083a896200070f565b60208a01519098506001600160401b03808211156200085857600080fd5b620008668c838d0162000768565b985060408b01519150808211156200087d57600080fd5b6200088b8c838d0162000768565b975060608b0151915080821115620008a257600080fd5b620008b08c838d0162000768565b965060808b0151915080821115620008c757600080fd5b50620008d68b828c0162000768565b945050620008e760a08a016200070f565b9250620008f760c08a016200070f565b91506200090760e08a01620007f9565b90509295985092959890939650565b600181811c908216806200092b57607f821691505b6020821081036200094c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200023f57600081815260208120601f850160051c810160208610156200097b5750805b601f850160051c820191505b818110156200099c5782815560010162000987565b505050505050565b81516001600160401b03811115620009c057620009c06200072c565b620009d881620009d1845462000916565b8462000952565b602080601f83116001811462000a105760008415620009f75750858301515b600019600386901b1c1916600185901b1785556200099c565b600085815260208120601f198616915b8281101562000a415788860151825594840194600190910190840162000a20565b508582101562000a605787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a8357600080fd5b815180151581146200044957600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162000ace81601785016020880162000742565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162000b0181602884016020880162000742565b01602801949350505050565b602081526000825180602084015262000b2e81604085016020870162000742565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200044c576200044c62000b42565b808201808211156200044c576200044c62000b42565b634e487b7160e01b600052603260045260246000fd5b60008162000bb05762000bb062000b42565b506000190190565b6133ca8062000bc86000396000f3fe608060405234801561001057600080fd5b50600436106102735760003560e01c806369e2f0fb11610151578063a22cb465116100c3578063ca15c87311610087578063ca15c87314610590578063d5391393146105a3578063d547741f146105b8578063e4623c1b146105cb578063e8a3d485146105de578063e985e9c5146105e657600080fd5b8063a22cb46514610521578063a701281614610534578063b88d4fde14610547578063c720ee3e1461055a578063c87b56dd1461057d57600080fd5b80639010d07c116101155780639010d07c146104c557806391d14854146104d8578063938e3d7b146104eb57806395d89b41146104fe578063a144819414610506578063a217fddf1461051957600080fd5b806369e2f0fb146104715780636b3a0632146104845780636c0360eb1461049757806370a082311461049f578063885e7a08146104b257600080fd5b806331ae450b116101ea57806342842e0e116101ae57806342842e0e146103ff57806342966c6814610412578063439aed341461042557806355f804b3146104385780636352211e1461044b5780636588962a1461045e57600080fd5b806331ae450b146103a857806336568abe146103bd5780633dd1eb61146103d05780633eaaf86b146103e357806340c10f19146103ec57600080fd5b806318160ddd1161023c57806318160ddd14610308578063234af0461461031a57806323b872dd1461032d578063248a9ca3146103405780632a55205a146103635780632f2ff15d1461039557600080fd5b80628ad9461461027857806301ffc9a71461028d57806306fdde03146102b5578063081812fc146102ca578063095ea7b3146102f5575b600080fd5b61028b610286366004612800565b610622565b005b6102a061029b366004612850565b610752565b60405190151581526020015b60405180910390f35b6102bd610763565b6040516102ac91906128bd565b6102dd6102d83660046128d0565b6107f5565b6040516001600160a01b0390911681526020016102ac565b61028b610303366004612905565b61081c565b600d545b6040519081526020016102ac565b61028b6103283660046129c0565b610984565b61028b61033b366004612b11565b6109dc565b61030c61034e3660046128d0565b60009081526020819052604090206001015490565b610376610371366004612b4d565b610a0e565b604080516001600160a01b0390931683526020830191909152016102ac565b61028b6103a3366004612b6f565b610abc565b6103b0610ae1565b6040516102ac9190612b9b565b61028b6103cb366004612b6f565b610b8f565b61028b6103de366004612be8565b610c09565b61030c600d5481565b61028b6103fa366004612905565b610c2c565b61028b61040d366004612b11565b610c68565b61028b6104203660046128d0565b610c83565b61028b610433366004612c1a565b610cbb565b61028b610446366004612cad565b610ce4565b6102dd6104593660046128d0565b610cfb565b61028b61046c366004612be8565b610d5b565b61028b61047f366004612be8565b610ea1565b6002546102dd906001600160a01b031681565b6102bd610ec4565b61030c6104ad366004612be8565b610f52565b61028b6104c0366004612cf5565b610fd8565b6102dd6104d3366004612b4d565b610fed565b6102a06104e6366004612b6f565b61100c565b61028b6104f9366004612cad565b611035565b6102bd61104c565b61028b610514366004612905565b61105b565b61030c600081565b61028b61052f366004612d2d565b61108d565b61028b610542366004612da8565b6111f0565b61028b610555366004612e0c565b611250565b6102a06105683660046128d0565b600e6020526000908152604090205460ff1681565b6102bd61058b3660046128d0565b611282565b61030c61059e3660046128d0565b6112e8565b61030c6a4d494e5445525f524f4c4560a81b81565b61028b6105c6366004612b6f565b6112ff565b61028b6105d9366004612e87565b611324565b6102bd6113bd565b6102a06105f4366004612ec8565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b61062f6020820182612ef2565b905061063e6040830183612ef2565b9050146106b85760405162461bcd60e51b815260206004820152603760248201527f6e756d626572206f6620746f6b656e20696473206e6f74207468652073616d6560448201527f206173206e756d626572206f662072656365697665727300000000000000000060648201526084015b60405180910390fd5b60005b6106c86040830183612ef2565b905081101561074e5761073c6106e16020840184612be8565b6106ee6020850185612ef2565b848181106106fe576106fe612f3b565b90506020020160208101906107139190612be8565b6107206040860186612ef2565b8581811061073057610730612f3b565b90506020020135610c68565b8061074681612f67565b9150506106bb565b5050565b600061075d82611610565b92915050565b60606003805461077290612f80565b80601f016020809104026020016040519081016040528092919081815260200182805461079e90612f80565b80156107eb5780601f106107c0576101008083540402835291602001916107eb565b820191906000526020600020905b8154815290600101906020018083116107ce57829003601f168201915b5050505050905090565b60006108008261161b565b506000908152600760205260409020546001600160a01b031690565b60025482906001600160a01b03161561097557333b158015906108a857506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a69190612fba565b155b156108c85760405163f6fa4cbd60e01b81523360048201526024016106af565b6001600160a01b0381163b1580159061094c57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a9190612fba565b155b15610975576040516341b8d58160e11b81526001600160a01b03821660048201526024016106af565b61097f838361167d565b505050565b6a4d494e5445525f524f4c4560a81b61099c8161178d565b60005b825181101561097f576109ca8382815181106109bd576109bd612f3b565b6020026020010151611797565b806109d481612f67565b91505061099f565b6109e7335b82611847565b610a035760405162461bcd60e51b81526004016106af90612fd7565b61097f8383836118c6565b6000828152600a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a835750604080518082019091526009546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610aa2906001600160601b031687613024565b610aac919061303b565b91519350909150505b9250929050565b600082815260208190526040902060010154610ad78161178d565b61097f8383611ae0565b60606000610aee816112e8565b90506000816001600160401b03811115610b0a57610b0a61292f565b604051908082528060200260200182016040528015610b33578160200160208202803683370190505b50905060005b82811015610b8857610b4c600082610fed565b828281518110610b5e57610b5e612f3b565b6001600160a01b039092166020928302919091019091015280610b8081612f67565b915050610b39565b5092915050565b6001600160a01b0381163314610bff5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016106af565b61074e8282611b02565b6000610c148161178d565b61074e6a4d494e5445525f524f4c4560a81b83610abc565b6a4d494e5445525f524f4c4560a81b610c448161178d565b610c4e8383611b24565b600d8054906000610c5e83612f67565b9190505550505050565b61097f83838360405180602001604052806000815250611250565b610c8c81611b8d565b6000818152600e60205260408120805460ff19166001179055600d805491610cb38361305d565b919050555050565b6a4d494e5445525f524f4c4560a81b610cd38161178d565b610cde848484611bbb565b50505050565b6000610cef8161178d565b600c61097f83826130ba565b6000818152600560205260408120546001600160a01b03168061075d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106af565b6000610d668161178d565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd59190612fba565b610e375760405162461bcd60e51b815260206004820152602d60248201527f636f6e747261637420646f6573206e6f7420696d706c656d656e742049526f7960448201526c185b1d1e505b1b1bdddb1a5cdd609a1b60648201526084016106af565b600254604080516001600160a01b03928316815291841660208301527f4a1d010d926ae0d4294a4afe61ae81bb378335fbf671e099a7138b5afeefdf84910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000610eac8161178d565b61074e6a4d494e5445525f524f4c4560a81b836112ff565b600c8054610ed190612f80565b80601f0160208091040260200160405190810160405280929190818152602001828054610efd90612f80565b8015610f4a5780601f10610f1f57610100808354040283529160200191610f4a565b820191906000526020600020905b815481529060010190602001808311610f2d57829003601f168201915b505050505081565b60006001600160a01b038216610fbc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016106af565b506001600160a01b031660009081526006602052604090205490565b6000610fe38161178d565b61097f8383611c86565b60008281526001602052604081206110059083611d40565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60006110408161178d565b600b61097f83826130ba565b60606004805461077290612f80565b6a4d494e5445525f524f4c4560a81b6110738161178d565b610c4e838360405180602001604052806000815250611d4c565b60025482906001600160a01b0316156111e657333b1580159061111957506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111179190612fba565b155b156111395760405163f6fa4cbd60e01b81523360048201526024016106af565b6001600160a01b0381163b158015906111bd57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb9190612fba565b155b156111e6576040516341b8d58160e11b81526001600160a01b03821660048201526024016106af565b61097f8383611d7f565b6a4d494e5445525f524f4c4560a81b6112088161178d565b60005b848110156112485761123686868381811061122857611228612f3b565b905060200201358585611bbb565b8061124081612f67565b91505061120b565b505050505050565b61125a3383611847565b6112765760405162461bcd60e51b81526004016106af90612fd7565b610cde84848484611d8a565b606061128d8261161b565b6000611297611dbd565b905060008151116112b75760405180602001604052806000815250611005565b806112c184611dcc565b6040516020016112d2929190613179565b6040516020818303038152906040529392505050565b600081815260016020526040812061075d90611e5e565b60008281526020819052604090206001015461131a8161178d565b61097f8383611b02565b60005b818110156113a75761135083838381811061134457611344612f3b565b90506020020135611b8d565b6001600e600085858581811061136857611368612f3b565b90506020020135815260200190815260200160002060006101000a81548160ff021916908315150217905550808061139f90612f67565b915050611327565b50600d546113b69082906131a8565b600d555050565b600b8054610ed190612f80565b6113d4828261100c565b61074e576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561140a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611005836001600160a01b038416611e68565b606061075d6001600160a01b03831660145b60606000611484836002613024565b61148f9060026131bb565b6001600160401b038111156114a6576114a661292f565b6040519080825280601f01601f1916602001820160405280156114d0576020820181803683370190505b509050600360fc1b816000815181106114eb576114eb612f3b565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061151a5761151a612f3b565b60200101906001600160f81b031916908160001a905350600061153e846002613024565b6115499060016131bb565b90505b60018111156115c1576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061157d5761157d612f3b565b1a60f81b82828151811061159357611593612f3b565b60200101906001600160f81b031916908160001a90535060049490941c936115ba8161305d565b905061154c565b5083156110055760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106af565b600061075d82611eb7565b6000818152600560205260409020546001600160a01b031661167a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106af565b50565b600061168882610cfb565b9050806001600160a01b0316836001600160a01b0316036116f55760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016106af565b336001600160a01b0382161480611711575061171181336105f4565b6117835760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016106af565b61097f8383611edc565b61167a8133611f4a565b80516001600160a01b03166117e05760405162461bcd60e51b815260206004820152600f60248201526e41646472657373206973207a65726f60881b60448201526064016106af565b60005b81602001515181101561182d5761181b82600001518360200151838151811061180e5761180e612f3b565b6020026020010151611b24565b8061182581612f67565b9150506117e3565b50806020015151600d5461184191906131bb565b600d5550565b60008061185383610cfb565b9050806001600160a01b0316846001600160a01b0316148061189a57506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b806118be5750836001600160a01b03166118b3846107f5565b6001600160a01b0316145b949350505050565b600254839083906001600160a01b031615611ace5733321480159061195457506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561192e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119529190612fba565b155b156119745760405163937db65f60e01b81523360048201526024016106af565b6001600160a01b0382163b158015906119f857506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa1580156119d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f69190612fba565b155b15611a215760405163f934453160e01b81526001600160a01b03831660048201526024016106af565b6001600160a01b0381163b15801590611aa557506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa39190612fba565b155b15611ace57604051632a67242160e11b81526001600160a01b03821660048201526024016106af565b611ad9858585611fa3565b5050505050565b611aea82826113ca565b600082815260016020526040902061097f908261144e565b611b0c8282612107565b600082815260016020526040902061097f908261216c565b6000818152600e602052604090205460ff1615611b835760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206275726e65640000000060448201526064016106af565b61074e8282612181565b611b96336109e1565b611bb25760405162461bcd60e51b81526004016106af90612fd7565b61167a8161230c565b6127106001600160601b0382161115611be65760405162461bcd60e51b81526004016106af906131ce565b6001600160a01b038216611c3c5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d6574657273000000000060448201526064016106af565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600a90529190942093519051909116600160a01b029116179055565b6127106001600160601b0382161115611cb15760405162461bcd60e51b81526004016106af906131ce565b6001600160a01b038216611d075760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016106af565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b600061100583836123a1565b611d568383611b24565b611d6360008484846123cb565b61097f5760405162461bcd60e51b81526004016106af90613218565b61074e3383836124cc565b611d958484846118c6565b611da1848484846123cb565b610cde5760405162461bcd60e51b81526004016106af90613218565b6060600c805461077290612f80565b60606000611dd98361259a565b60010190506000816001600160401b03811115611df857611df861292f565b6040519080825280601f01601f191660200182016040528015611e22576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611e2c57509392505050565b600061075d825490565b6000818152600183016020526040812054611eaf5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561075d565b50600061075d565b60006001600160e01b0319821663152a902d60e11b148061075d575061075d82612672565b600081815260076020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611f1182610cfb565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611f54828261100c565b61074e57611f6181611463565b611f6c836020611475565b604051602001611f7d92919061326a565b60408051601f198184030181529082905262461bcd60e51b82526106af916004016128bd565b826001600160a01b0316611fb682610cfb565b6001600160a01b031614611fdc5760405162461bcd60e51b81526004016106af906132df565b6001600160a01b03821661203e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016106af565b826001600160a01b031661205182610cfb565b6001600160a01b0316146120775760405162461bcd60e51b81526004016106af906132df565b600081815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260068552838620805460001901905590871680865283862080546001019055868652600590945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b612111828261100c565b1561074e576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611005836001600160a01b0384166126b2565b6001600160a01b0382166121d75760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016106af565b6000818152600560205260409020546001600160a01b03161561223c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106af565b6000818152600560205260409020546001600160a01b0316156122a15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106af565b6001600160a01b038216600081815260066020908152604080832080546001019055848352600590915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600061231782610cfb565b905061232282610cfb565b600083815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526006845282852080546000190190558785526005909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60008260000182815481106123b8576123b8612f3b565b9060005260206000200154905092915050565b60006001600160a01b0384163b156124c157604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061240f903390899088908890600401613324565b6020604051808303816000875af192505050801561244a575060408051601f3d908101601f1916820190925261244791810190613361565b60015b6124a7573d808015612478576040519150601f19603f3d011682016040523d82523d6000602084013e61247d565b606091505b50805160000361249f5760405162461bcd60e51b81526004016106af90613218565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506118be565b506001949350505050565b816001600160a01b0316836001600160a01b03160361252d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016106af565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106125d95772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612605576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061262357662386f26fc10000830492506010015b6305f5e100831061263b576305f5e100830492506008015b612710831061264f57612710830492506004015b60648310612661576064830492506002015b600a831061075d5760010192915050565b60006001600160e01b031982166380ac58cd60e01b14806126a357506001600160e01b03198216635b5e139f60e01b145b8061075d575061075d826127a5565b6000818152600183016020526040812054801561279b5760006126d66001836131a8565b85549091506000906126ea906001906131a8565b905081811461274f57600086600001828154811061270a5761270a612f3b565b906000526020600020015490508087600001848154811061272d5761272d612f3b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806127605761276061337e565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061075d565b600091505061075d565b600061075d8260006001600160e01b03198216635a05180f60e01b148061075d575061075d8260006001600160e01b03198216637965db0b60e01b148061075d57506301ffc9a760e01b6001600160e01b031983161461075d565b60006020828403121561281257600080fd5b81356001600160401b0381111561282857600080fd5b82016060818503121561100557600080fd5b6001600160e01b03198116811461167a57600080fd5b60006020828403121561286257600080fd5b81356110058161283a565b60005b83811015612888578181015183820152602001612870565b50506000910152565b600081518084526128a981602086016020860161286d565b601f01601f19169290920160200192915050565b6020815260006110056020830184612891565b6000602082840312156128e257600080fd5b5035919050565b80356001600160a01b038116811461290057600080fd5b919050565b6000806040838503121561291857600080fd5b612921836128e9565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156129675761296761292f565b60405290565b604051601f8201601f191681016001600160401b03811182821017156129955761299561292f565b604052919050565b60006001600160401b038211156129b6576129b661292f565b5060051b60200190565b600060208083850312156129d357600080fd5b82356001600160401b03808211156129ea57600080fd5b818501915085601f8301126129fe57600080fd5b8135612a11612a0c8261299d565b61296d565b81815260059190911b83018401908481019088831115612a3057600080fd5b8585015b83811015612b0457803585811115612a4c5760008081fd5b86016040818c03601f1901811315612a645760008081fd5b612a6c612945565b612a778a84016128e9565b81528183013588811115612a8b5760008081fd5b8084019350508c603f840112612aa15760008081fd5b89830135612ab1612a0c8261299d565b81815260059190911b84018301908b8101908f831115612ad15760008081fd5b948401945b82861015612aef5785358252948c0194908c0190612ad6565b838d0152505085525050918601918601612a34565b5098975050505050505050565b600080600060608486031215612b2657600080fd5b612b2f846128e9565b9250612b3d602085016128e9565b9150604084013590509250925092565b60008060408385031215612b6057600080fd5b50508035926020909101359150565b60008060408385031215612b8257600080fd5b82359150612b92602084016128e9565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612bdc5783516001600160a01b031683529284019291840191600101612bb7565b50909695505050505050565b600060208284031215612bfa57600080fd5b611005826128e9565b80356001600160601b038116811461290057600080fd5b600080600060608486031215612c2f57600080fd5b83359250612c3f602085016128e9565b9150612c4d60408501612c03565b90509250925092565b60006001600160401b03831115612c6f57612c6f61292f565b612c82601f8401601f191660200161296d565b9050828152838383011115612c9657600080fd5b828260208301376000602084830101529392505050565b600060208284031215612cbf57600080fd5b81356001600160401b03811115612cd557600080fd5b8201601f81018413612ce657600080fd5b6118be84823560208401612c56565b60008060408385031215612d0857600080fd5b612d11836128e9565b9150612b9260208401612c03565b801515811461167a57600080fd5b60008060408385031215612d4057600080fd5b612d49836128e9565b91506020830135612d5981612d1f565b809150509250929050565b60008083601f840112612d7657600080fd5b5081356001600160401b03811115612d8d57600080fd5b6020830191508360208260051b8501011115610ab557600080fd5b60008060008060608587031215612dbe57600080fd5b84356001600160401b03811115612dd457600080fd5b612de087828801612d64565b9095509350612df39050602086016128e9565b9150612e0160408601612c03565b905092959194509250565b60008060008060808587031215612e2257600080fd5b612e2b856128e9565b9350612e39602086016128e9565b92506040850135915060608501356001600160401b03811115612e5b57600080fd5b8501601f81018713612e6c57600080fd5b612e7b87823560208401612c56565b91505092959194509250565b60008060208385031215612e9a57600080fd5b82356001600160401b03811115612eb057600080fd5b612ebc85828601612d64565b90969095509350505050565b60008060408385031215612edb57600080fd5b612ee4836128e9565b9150612b92602084016128e9565b6000808335601e19843603018112612f0957600080fd5b8301803591506001600160401b03821115612f2357600080fd5b6020019150600581901b3603821315610ab557600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612f7957612f79612f51565b5060010190565b600181811c90821680612f9457607f821691505b602082108103612fb457634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612fcc57600080fd5b815161100581612d1f565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b808202811582820484141761075d5761075d612f51565b60008261305857634e487b7160e01b600052601260045260246000fd5b500490565b60008161306c5761306c612f51565b506000190190565b601f82111561097f57600081815260208120601f850160051c8101602086101561309b5750805b601f850160051c820191505b81811015611248578281556001016130a7565b81516001600160401b038111156130d3576130d361292f565b6130e7816130e18454612f80565b84613074565b602080601f83116001811461311c57600084156131045750858301515b600019600386901b1c1916600185901b178555611248565b600085815260208120601f198616915b8281101561314b5788860151825594840194600190910190840161312c565b50858210156131695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000835161318b81846020880161286d565b83519083019061319f81836020880161286d565b01949350505050565b8181038181111561075d5761075d612f51565b8082018082111561075d5761075d612f51565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516132a281601785016020880161286d565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516132d381602884016020880161286d565b01602801949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061335790830184612891565b9695505050505050565b60006020828403121561337357600080fd5b81516110058161283a565b634e487b7160e01b600052603160045260246000fdfea264697066735822122006573083b437fa58c9681635170d4942384661ed89edd9510c0e1a1d6b4237d564736f6c63430008110033";
31484
+ const isSuperArgs$1 = (xs) => xs.length > 1;
31485
+ class ImmutableERC721PermissionedMintable__factory extends ContractFactory {
31486
+ constructor(...args) {
31487
+ if (isSuperArgs$1(args)) {
31488
+ super(...args);
31489
+ }
31490
+ else {
31491
+ super(_abi$1, _bytecode$1, args[0]);
31492
+ }
31493
+ }
31494
+ deploy(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides) {
31495
+ return super.deploy(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides || {});
31496
+ }
31497
+ getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides) {
31498
+ return super.getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_, _royaltyAllowlist, _receiver, _feeNumerator, overrides || {});
31499
+ }
31500
+ attach(address) {
31501
+ return super.attach(address);
31502
+ }
31503
+ connect(signer) {
31504
+ return super.connect(signer);
31505
+ }
31506
+ static bytecode = _bytecode$1;
31507
+ static abi = _abi$1;
31508
+ static createInterface() {
31509
+ return new utils$1.Interface(_abi$1);
31510
+ }
31511
+ static connect(address, signerOrProvider) {
31512
+ return new Contract$1(address, _abi$1, signerOrProvider);
31513
+ }
31514
+ }
31515
+
31516
+ class ERC20 {
31517
+ contract;
31518
+ constructor(contractAddress) {
31519
+ const factory = new ERC20__factory();
31520
+ this.contract = factory.attach(contractAddress);
31521
+ }
31522
+ /**
31523
+ * @returns a promise that resolves with a BigNumber that represents the amount of tokens in existence
31524
+ */
31525
+ async totalSupply(provider, overrides = {}) {
31526
+ return this.contract.connect(provider).totalSupply(overrides);
31527
+ }
31528
+ /**
31529
+ * @returns a promise that resolves with a BigNumber that represents the amount of tokens owned by account
31530
+ */
31531
+ async balanceOf(provider, account, overrides = {}) {
31532
+ return this.contract.connect(provider).balanceOf(account, overrides);
31533
+ }
31534
+ /**
31535
+ * @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
31536
+ */
31537
+ async allowance(provider, owner, spender, overrides = {}) {
31538
+ return this.contract.connect(provider).allowance(owner, spender, overrides);
31539
+ }
31540
+ /**
31541
+ * @returns a promise that resolves with a populated transaction
31542
+ */
31543
+ async populateTransfer(to, amount, overrides) {
31544
+ return this.contract.populateTransaction.transfer(to, amount, overrides);
31545
+ }
31546
+ /**
31547
+ * @returns a promise that resolves with a populated transaction
31548
+ */
31549
+ async populateApprove(spender, amount, overrides = {}) {
31550
+ return this.contract.populateTransaction.approve(spender, amount, overrides);
31551
+ }
31552
+ /**
31553
+ * @returns a promise that resolves with a populated transaction
31554
+ */
31555
+ async populateTransferFrom(from, to, amount, overrides = {}) {
31556
+ return this.contract.populateTransaction.transferFrom(from, to, amount, overrides);
31557
+ }
31558
+ }
31559
+
31560
+ var erc20 = /*#__PURE__*/Object.freeze({
31561
+ __proto__: null,
31562
+ ERC20: ERC20
31563
+ });
31564
+
31565
+ class ERC721HybridPermissionedMintable {
31566
+ contract;
31567
+ constructor(contractAddress) {
31568
+ const factory = new ImmutableERC721HybridPermissionedMintable__factory();
31569
+ this.contract = factory.attach(contractAddress);
31570
+ }
31571
+ /**
31572
+ * Read functions
31573
+ */
31574
+ /**
31575
+ * @returns the DEFAULT_ADMIN_ROLE as a string.
31576
+ */
31577
+ async DEFAULT_ADMIN_ROLE(provider, overrides = {}) {
31578
+ return await this.contract.connect(provider).DEFAULT_ADMIN_ROLE(overrides);
31579
+ }
31580
+ /**
31581
+ * @returns the MINTER_ROLE as a string.
31582
+ */
31583
+ async MINTER_ROLE(provider, overrides = {}) {
31584
+ return await this.contract.connect(provider).MINTER_ROLE(overrides);
31585
+ }
31586
+ /**
31587
+ * @returns the balance of an address as a BigNumber.
31588
+ */
31589
+ async balanceOf(provider, owner, overrides = {}) {
31590
+ return await this.contract.connect(provider).balanceOf(owner, overrides);
31591
+ }
31592
+ /**
31593
+ * @returns the baseURI as a string.
31594
+ */
31595
+ async baseURI(provider, overrides = {}) {
31596
+ return await this.contract.connect(provider).baseURI(overrides);
31597
+ }
31598
+ /**
31599
+ * @returns the contractURI as a string.
31600
+ */
31601
+ async contractURI(provider, overrides = {}) {
31602
+ return await this.contract.connect(provider).contractURI(overrides);
31603
+ }
31604
+ /**
31605
+ * @returns admin addresses as an array of strings.
31606
+ */
31607
+ async getAdmins(provider, overrides = {}) {
31608
+ return await this.contract.connect(provider).getAdmins(overrides);
31609
+ }
31610
+ /**
31611
+ * @returns the approved address for a token ID, or zero if no address set.
31612
+ */
31613
+ async getApproved(provider, tokenId, overrides = {}) {
31614
+ return await this.contract
31615
+ .connect(provider)
31616
+ .getApproved(tokenId, overrides);
31617
+ }
31618
+ /**
31619
+ * @returns the role admin address.
31620
+ */
31621
+ async getRoleAdmin(provider, role, overrides = {}) {
31622
+ return await this.contract.connect(provider).getRoleAdmin(role, overrides);
31623
+ }
31624
+ /**
31625
+ * @returns the role member address at a particular index.
31626
+ */
31627
+ async getRoleMember(provider, role, index, overrides = {}) {
31628
+ return await this.contract
31629
+ .connect(provider)
31630
+ .getRoleMember(role, index, overrides);
31631
+ }
31632
+ /**
31633
+ * @returns the role member count as a BigNumber.
31634
+ */
31635
+ async getRoleMemberCount(provider, role, overrides = {}) {
31636
+ return await this.contract
31637
+ .connect(provider)
31638
+ .getRoleMemberCount(role, overrides);
31639
+ }
31640
+ /**
31641
+ * @returns a boolean for whether an account has a particular role.
31642
+ */
31643
+ async hasRole(provider, role, account, overrides = {}) {
31644
+ return await this.contract
31645
+ .connect(provider)
31646
+ .hasRole(role, account, overrides);
31647
+ }
31648
+ /**
31649
+ * @returns a booolean that tells whether an operator is approved by a given owner.
31650
+ */
31651
+ async isApprovedForAll(provider, owner, operator, overrides = {}) {
31652
+ return await this.contract
31653
+ .connect(provider)
31654
+ .isApprovedForAll(owner, operator, overrides);
31655
+ }
31656
+ /**
31657
+ * @returns the name of the contract as a string.
31658
+ */
31659
+ async name(provider, overrides = {}) {
31660
+ return await this.contract.connect(provider).name(overrides);
31661
+ }
31662
+ /**
31663
+ * @returns the owner address of a particular tokenId.
31664
+ */
31665
+ async ownerOf(provider, tokenId, overrides = {}) {
31666
+ return await this.contract.connect(provider).ownerOf(tokenId, overrides);
31667
+ }
31668
+ /**
31669
+ * @returns the royalty allowlist as a string.
31670
+ */
31671
+ async royaltyAllowlist(provider, overrides = {}) {
31672
+ return await this.contract.connect(provider).royaltyAllowlist(overrides);
31673
+ }
31674
+ /**
31675
+ * @returns the royalty information for a particular tokenId.
31676
+ */
31677
+ async royaltyInfo(provider, _tokenId, _salePrice, overrides = {}) {
31678
+ return await this.contract
31679
+ .connect(provider)
31680
+ .royaltyInfo(_tokenId, _salePrice, overrides);
31681
+ }
31682
+ /**
31683
+ * @returns the symbol of the contract as a string.
31684
+ */
31685
+ async symbol(provider, overrides = {}) {
31686
+ return await this.contract.connect(provider).symbol(overrides);
31687
+ }
31688
+ /**
31689
+ * @returns the Uniform Resource Identifier (URI) for tokenId token.
31690
+ */
31691
+ async tokenURI(provider, tokenId, overrides = {}) {
31692
+ return await this.contract.connect(provider).tokenURI(tokenId, overrides);
31693
+ }
31694
+ /**
31695
+ * @returns returns the total amount of tokens stored by the contract.
31696
+ */
31697
+ async totalSupply(provider, overrides = {}) {
31698
+ return await this.contract.connect(provider).totalSupply(overrides);
31699
+ }
31700
+ /**
31701
+ * Write functions
31702
+ */
31703
+ /**
31704
+ * @returns a populated transaction for the approve contract function
31705
+ */
31706
+ async populateApprove(to, tokenId, overrides = {}) {
31707
+ return await this.contract.populateTransaction.approve(to, tokenId, overrides);
31708
+ }
31709
+ /**
31710
+ * @returns a populated transaction for the burn contract function
31711
+ */
31712
+ async populateBurn(tokenId, overrides = {}) {
31713
+ return await this.contract.populateTransaction.burn(tokenId, overrides);
31714
+ }
31715
+ /**
31716
+ * @returns a populated transaction for the batch burn contract function
31717
+ */
31718
+ async populateBurnBatch(tokenIds, overrides = {}) {
31719
+ return await this.contract.populateTransaction.burnBatch(tokenIds, overrides);
31720
+ }
31721
+ /**
31722
+ * @returns a populated transaction for the grantMinterRole contract function
31723
+ */
31724
+ async populateGrantMinterRole(user, overrides = {}) {
31725
+ return await this.contract.populateTransaction.grantMinterRole(user, overrides);
31726
+ }
31727
+ /**
31728
+ * @returns a populated transaction for the grantRole contract function
31729
+ */
31730
+ async populateGrantRole(role, account, overrides = {}) {
31731
+ return await this.contract.populateTransaction.grantRole(role, account, overrides);
31732
+ }
31733
+ /**
31734
+ * @returns a populated transaction for the mint by ID contract function
31735
+ */
31736
+ async populateMintByID(to, tokenId, overrides = {}) {
31737
+ return await this.contract.populateTransaction.mintByID(to, tokenId, overrides);
31738
+ }
31739
+ /**
31740
+ * @returns a populated transaction for the safe mint by ID contract function
31741
+ */
31742
+ async populateSafeMintByID(to, tokenId, overrides = {}) {
31743
+ return await this.contract.populateTransaction.safeMintByID(to, tokenId, overrides);
31744
+ }
31745
+ /**
31746
+ * @returns a populated transaction for the mint by quantity contract function
31747
+ */
31748
+ async populateMintByQuantity(to, quantity, overrides = {}) {
31749
+ return await this.contract.populateTransaction.mintByQuantity(to, quantity, overrides);
31750
+ }
31751
+ /**
31752
+ * @returns a populated transaction for the safe mint by quantity contract function
31753
+ */
31754
+ async populateSafeMintByQuantity(to, quantity, overrides = {}) {
31755
+ return await this.contract.populateTransaction.safeMintByQuantity(to, quantity, overrides);
31756
+ }
31757
+ /**
31758
+ * @returns a populated transaction for the batch mint by quantity contract function
31759
+ */
31760
+ async populateBatchMintByQuantity(mints, overrides = {}) {
31761
+ return await this.contract.populateTransaction.batchMintByQuantity(mints, overrides);
31762
+ }
31763
+ /**
31764
+ * @returns a populated transaction for the batch safe mint by quantity contract function
31765
+ */
31766
+ async populateBatchSafeMintByQuantity(mints, overrides = {}) {
31767
+ return await this.contract.populateTransaction.batchSafeMintByQuantity(mints, overrides);
31768
+ }
31769
+ /**
31770
+ * @returns a populated transaction for the batch mint by ID to multiple recipients contract function
31771
+ */
31772
+ async populateBatchMintByIDToMultiple(mints, overrides = {}) {
31773
+ return await this.contract.populateTransaction.batchMintByIDToMultiple(mints, overrides);
31774
+ }
31775
+ /**
31776
+ * @returns a populated transaction for the batch safe mint by ID to multiple recipients contract function
31777
+ */
31778
+ async populateBatchSafeMintByIDToMultiple(mints, overrides = {}) {
31779
+ return await this.contract.populateTransaction.batchSafeMintByIDToMultiple(mints, overrides);
31780
+ }
31781
+ /**
31782
+ * @returns a populated transaction for the renounceRole contract function
31783
+ */
31784
+ async populateRenounceRole(role, account, overrides = {}) {
31785
+ return await this.contract.populateTransaction.renounceRole(role, account, overrides);
31786
+ }
31787
+ /**
31788
+ * @returns a populated transaction for the revokeMinterRole contract function
31789
+ */
31790
+ async populateRevokeMinterRole(user, overrides = {}) {
31791
+ return await this.contract.populateTransaction.revokeMinterRole(user, overrides);
31792
+ }
31793
+ /**
31794
+ * @returns a populated transaction for the revokeRole contract function
31795
+ */
31796
+ async populateRevokeRole(role, account, overrides = {}) {
31797
+ return await this.contract.populateTransaction.revokeRole(role, account, overrides);
31798
+ }
31799
+ /**
31800
+ * @returns a populated transaction for the batch save transfer from function
31801
+ */
31802
+ async populateSafeTransferFromBatch(transfers, overrides = {}) {
31803
+ return await this.contract.populateTransaction.safeTransferFromBatch(transfers, overrides);
31804
+ }
31805
+ /**
31806
+ * @returns a populated transaction for the safeTransferFrom(address,address,uint256) contract function
31807
+ */
31808
+ async 'populateSafeTransferFrom(address,address,uint256)'(from, to, tokenId, overrides = {}) {
31809
+ return await this.contract.populateTransaction['safeTransferFrom(address,address,uint256)'](from, to, tokenId, overrides);
31810
+ }
31811
+ /**
31812
+ * @returns a populated transaction for the safeTransferFrom(address,address,uint256,bytes) contract function
31813
+ */
31814
+ async 'populateSafeTransferFrom(address,address,uint256,bytes)'(from, to, tokenId, data, overrides = {}) {
31815
+ return await this.contract.populateTransaction['safeTransferFrom(address,address,uint256,bytes)'](from, to, tokenId, data, overrides);
31816
+ }
31817
+ /**
31818
+ * @returns a populated transaction for the setApprovalForAll contract function
31819
+ */
31820
+ async populateSetApprovalForAll(operator, approved, overrides = {}) {
31821
+ return await this.contract.populateTransaction.setApprovalForAll(operator, approved, overrides);
31822
+ }
31823
+ /**
31824
+ * @returns a populated transaction for the setBaseURI contract function
31825
+ */
31826
+ async populateSetBaseURI(baseURI_, overrides = {}) {
31827
+ return await this.contract.populateTransaction.setBaseURI(baseURI_, overrides);
31828
+ }
31829
+ /**
31830
+ * @returns a populated transaction for the setContractURI contract function
31831
+ */
31832
+ async populateSetContractURI(_contractURI, overrides = {}) {
31833
+ return await this.contract.populateTransaction.setContractURI(_contractURI, overrides);
31834
+ }
31835
+ /**
31836
+ * @returns a populated transaction for the setDefaultRoyaltyReceiver contract function
31837
+ */
31838
+ async populateSetDefaultRoyaltyReceiver(receiver, feeNumerator, overrides = {}) {
31839
+ return await this.contract.populateTransaction.setDefaultRoyaltyReceiver(receiver, feeNumerator, overrides);
31840
+ }
31841
+ /**
31842
+ * @returns a populated transaction for the setNFTRoyaltyReceiver contract function
31843
+ */
31844
+ async populateSetNFTRoyaltyReceiver(tokenId, receiver, feeNumerator, overrides = {}) {
31845
+ return await this.contract.populateTransaction.setNFTRoyaltyReceiver(tokenId, receiver, feeNumerator, overrides);
31846
+ }
31847
+ /**
31848
+ * @returns a populated transaction for the setNFTRoyaltyReceiverBatch contract function
31849
+ */
31850
+ async populateSetNFTRoyaltyReceiverBatch(tokenIds, receiver, feeNumerator, overrides = {}) {
31851
+ return await this.contract.populateTransaction.setNFTRoyaltyReceiverBatch(tokenIds, receiver, feeNumerator, overrides);
31852
+ }
31853
+ /**
31854
+ * @returns a populated transaction for the setRoyaltyAllowlistRegistry contract function
31855
+ */
31856
+ async populateSetRoyaltyAllowlistRegistry(_royaltyAllowlist, overrides = {}) {
31857
+ return await this.contract.populateTransaction.setRoyaltyAllowlistRegistry(_royaltyAllowlist, overrides);
31858
+ }
31859
+ }
31860
+
31861
+ var erc721_hybrid_permissioned_mintable = /*#__PURE__*/Object.freeze({
31862
+ __proto__: null,
31863
+ ERC721HybridPermissionedMintable: ERC721HybridPermissionedMintable
30078
31864
  });
30079
31865
 
30080
31866
  class ERC721PermissionedMintable {
@@ -30342,4 +32128,4 @@ var erc721_permissioned_mintable = /*#__PURE__*/Object.freeze({
30342
32128
  ERC721PermissionedMintable: ERC721PermissionedMintable
30343
32129
  });
30344
32130
 
30345
- export { blockchain_data as blockchainData, checkout_sdk as checkoutSdk, checkout_widgets as checkoutWidgets, config, erc20, erc721_permissioned_mintable as erc721PermissionedMintable, immutablex_client as immutablexClient, orderbook, passport, provider };
32131
+ export { blockchain_data as blockchainData, checkout_sdk as checkoutSdk, checkout_widgets as checkoutWidgets, config, erc20, erc721_hybrid_permissioned_mintable as erc721HybridPermissionedMintable, erc721_permissioned_mintable as erc721PermissionedMintable, immutablex_client as immutablexClient, orderbook, passport, provider };