var name = "localhost";
var chainId = "31337";
var contracts = {
	ETSAccessControls: {
		address: "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",
		abi: [
			{
				inputs: [
				],
				stateMutability: "nonpayable",
				type: "constructor"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "previousAdmin",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "newAdmin",
						type: "address"
					}
				],
				name: "AdminChanged",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "beacon",
						type: "address"
					}
				],
				name: "BeaconUpgraded",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint8",
						name: "version",
						type: "uint8"
					}
				],
				name: "Initialized",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "newAddress",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "prevAddress",
						type: "address"
					}
				],
				name: "PlatformSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "relayer",
						type: "address"
					}
				],
				name: "RelayerAdded",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "relayer",
						type: "address"
					}
				],
				name: "RelayerLockToggled",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "bytes32",
						name: "role",
						type: "bytes32"
					},
					{
						indexed: true,
						internalType: "bytes32",
						name: "previousAdminRole",
						type: "bytes32"
					},
					{
						indexed: true,
						internalType: "bytes32",
						name: "newAdminRole",
						type: "bytes32"
					}
				],
				name: "RoleAdminChanged",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "bytes32",
						name: "role",
						type: "bytes32"
					},
					{
						indexed: true,
						internalType: "address",
						name: "account",
						type: "address"
					},
					{
						indexed: true,
						internalType: "address",
						name: "sender",
						type: "address"
					}
				],
				name: "RoleGranted",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "bytes32",
						name: "role",
						type: "bytes32"
					},
					{
						indexed: true,
						internalType: "address",
						name: "account",
						type: "address"
					},
					{
						indexed: true,
						internalType: "address",
						name: "sender",
						type: "address"
					}
				],
				name: "RoleRevoked",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "implementation",
						type: "address"
					}
				],
				name: "Upgraded",
				type: "event"
			},
			{
				inputs: [
				],
				name: "AUCTION_ORACLE_ROLE",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "DEFAULT_ADMIN_ROLE",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "NAME",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "RELAYER_ADMIN_ROLE",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "RELAYER_FACTORY_ROLE",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "RELAYER_ROLE",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "SMART_CONTRACT_ROLE",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "VERSION",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_currentOwner",
						type: "address"
					},
					{
						internalType: "address",
						name: "_newOwner",
						type: "address"
					}
				],
				name: "changeRelayerOwner",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getPlatformAddress",
				outputs: [
					{
						internalType: "address payable",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_name",
						type: "string"
					}
				],
				name: "getRelayerAddressFromName",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_address",
						type: "address"
					}
				],
				name: "getRelayerAddressFromOwner",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_address",
						type: "address"
					}
				],
				name: "getRelayerNameFromAddress",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "role",
						type: "bytes32"
					}
				],
				name: "getRoleAdmin",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "role",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "account",
						type: "address"
					}
				],
				name: "grantRole",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "role",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "account",
						type: "address"
					}
				],
				name: "hasRole",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_platformAddress",
						type: "address"
					}
				],
				name: "initialize",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_addr",
						type: "address"
					}
				],
				name: "isAdmin",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_addr",
						type: "address"
					}
				],
				name: "isAuctionOracle",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_addr",
						type: "address"
					}
				],
				name: "isRelayer",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_addr",
						type: "address"
					}
				],
				name: "isRelayerAdmin",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_addr",
						type: "address"
					}
				],
				name: "isRelayerAndNotPaused",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_addr",
						type: "address"
					}
				],
				name: "isRelayerByAddress",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_name",
						type: "string"
					}
				],
				name: "isRelayerByName",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_addr",
						type: "address"
					}
				],
				name: "isRelayerByOwner",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_addr",
						type: "address"
					}
				],
				name: "isRelayerFactory",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_addr",
						type: "address"
					}
				],
				name: "isRelayerLocked",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_addr",
						type: "address"
					}
				],
				name: "isSmartContract",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_relayerOwner",
						type: "address"
					}
				],
				name: "pauseRelayerByOwnerAddress",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "proxiableUUID",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "string",
						name: "_name",
						type: "string"
					},
					{
						internalType: "address",
						name: "_owner",
						type: "address"
					}
				],
				name: "registerRelayer",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				name: "relayerContractToName",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				name: "relayerLocked",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				name: "relayerNameToContract",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				name: "relayerOwnerToAddress",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "role",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "account",
						type: "address"
					}
				],
				name: "renounceRole",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "role",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "account",
						type: "address"
					}
				],
				name: "revokeRole",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address payable",
						name: "_platform",
						type: "address"
					}
				],
				name: "setPlatform",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "_role",
						type: "bytes32"
					},
					{
						internalType: "bytes32",
						name: "_adminRole",
						type: "bytes32"
					}
				],
				name: "setRoleAdmin",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes4",
						name: "interfaceId",
						type: "bytes4"
					}
				],
				name: "supportsInterface",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					}
				],
				name: "toggleRelayerLock",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					}
				],
				name: "upgradeTo",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					},
					{
						internalType: "bytes",
						name: "data",
						type: "bytes"
					}
				],
				name: "upgradeToAndCall",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			}
		]
	},
	ETSToken: {
		address: "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9",
		abi: [
			{
				inputs: [
				],
				stateMutability: "nonpayable",
				type: "constructor"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "etsAccessControls",
						type: "address"
					}
				],
				name: "AccessControlsSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "previousAdmin",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "newAdmin",
						type: "address"
					}
				],
				name: "AdminChanged",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "owner",
						type: "address"
					},
					{
						indexed: true,
						internalType: "address",
						name: "approved",
						type: "address"
					},
					{
						indexed: true,
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				name: "Approval",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "owner",
						type: "address"
					},
					{
						indexed: true,
						internalType: "address",
						name: "operator",
						type: "address"
					},
					{
						indexed: false,
						internalType: "bool",
						name: "approved",
						type: "bool"
					}
				],
				name: "ApprovalForAll",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "beacon",
						type: "address"
					}
				],
				name: "BeaconUpgraded",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "ets",
						type: "address"
					}
				],
				name: "ETSCoreSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint8",
						name: "version",
						type: "uint8"
					}
				],
				name: "Initialized",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "termLength",
						type: "uint256"
					}
				],
				name: "OwnershipTermLengthSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "account",
						type: "address"
					}
				],
				name: "Paused",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "tagId",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "bool",
						name: "isPremium",
						type: "bool"
					}
				],
				name: "PremiumFlagSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "string",
						name: "tag",
						type: "string"
					},
					{
						indexed: false,
						internalType: "bool",
						name: "isPremium",
						type: "bool"
					}
				],
				name: "PremiumTagPreSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "tagId",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "bool",
						name: "isReserved",
						type: "bool"
					}
				],
				name: "ReservedFlagSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "maxStringLength",
						type: "uint256"
					}
				],
				name: "TagMaxStringLengthSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "minStringLength",
						type: "uint256"
					}
				],
				name: "TagMinStringLengthSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					},
					{
						indexed: true,
						internalType: "address",
						name: "caller",
						type: "address"
					}
				],
				name: "TagRecycled",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					},
					{
						indexed: true,
						internalType: "address",
						name: "caller",
						type: "address"
					}
				],
				name: "TagRenewed",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "from",
						type: "address"
					},
					{
						indexed: true,
						internalType: "address",
						name: "to",
						type: "address"
					},
					{
						indexed: true,
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				name: "Transfer",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "account",
						type: "address"
					}
				],
				name: "Unpaused",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "implementation",
						type: "address"
					}
				],
				name: "Upgraded",
				type: "event"
			},
			{
				inputs: [
				],
				name: "NAME",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "VERSION",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "to",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				name: "approve",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "owner",
						type: "address"
					}
				],
				name: "balanceOf",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				name: "burn",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_tag",
						type: "string"
					}
				],
				name: "computeTagId",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "pure",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_tag",
						type: "string"
					},
					{
						internalType: "address payable",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address payable",
						name: "_creator",
						type: "address"
					}
				],
				name: "createTag",
				outputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "ets",
				outputs: [
					{
						internalType: "contract IETS",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsAccessControls",
				outputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				name: "getApproved",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "getCreatorAddress",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "getLastRenewed",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_tag",
						type: "string"
					},
					{
						internalType: "address payable",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address payable",
						name: "_creator",
						type: "address"
					}
				],
				name: "getOrCreateTag",
				outputs: [
					{
						components: [
							{
								internalType: "address",
								name: "relayer",
								type: "address"
							},
							{
								internalType: "address",
								name: "creator",
								type: "address"
							},
							{
								internalType: "string",
								name: "display",
								type: "string"
							},
							{
								internalType: "bool",
								name: "premium",
								type: "bool"
							},
							{
								internalType: "bool",
								name: "reserved",
								type: "bool"
							}
						],
						internalType: "struct IETSToken.Tag",
						name: "tag",
						type: "tuple"
					}
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_tag",
						type: "string"
					},
					{
						internalType: "address payable",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address payable",
						name: "_creator",
						type: "address"
					}
				],
				name: "getOrCreateTagId",
				outputs: [
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getOwnershipTermLength",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getPlatformAddress",
				outputs: [
					{
						internalType: "address payable",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "getTagById",
				outputs: [
					{
						components: [
							{
								internalType: "address",
								name: "relayer",
								type: "address"
							},
							{
								internalType: "address",
								name: "creator",
								type: "address"
							},
							{
								internalType: "string",
								name: "display",
								type: "string"
							},
							{
								internalType: "bool",
								name: "premium",
								type: "bool"
							},
							{
								internalType: "bool",
								name: "reserved",
								type: "bool"
							}
						],
						internalType: "struct IETSToken.Tag",
						name: "",
						type: "tuple"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_tag",
						type: "string"
					}
				],
				name: "getTagByString",
				outputs: [
					{
						components: [
							{
								internalType: "address",
								name: "relayer",
								type: "address"
							},
							{
								internalType: "address",
								name: "creator",
								type: "address"
							},
							{
								internalType: "string",
								name: "display",
								type: "string"
							},
							{
								internalType: "bool",
								name: "premium",
								type: "bool"
							},
							{
								internalType: "bool",
								name: "reserved",
								type: "bool"
							}
						],
						internalType: "struct IETSToken.Tag",
						name: "",
						type: "tuple"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "_etsAccessControls",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "_tagMinStringLength",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_tagMaxStringLength",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_ownershipTermLength",
						type: "uint256"
					}
				],
				name: "initialize",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "owner",
						type: "address"
					},
					{
						internalType: "address",
						name: "operator",
						type: "address"
					}
				],
				name: "isApprovedForAll",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				name: "isTagPremium",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "name",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				name: "ownerOf",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "ownershipTermLength",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "pause",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "paused",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string[]",
						name: "_tags",
						type: "string[]"
					},
					{
						internalType: "bool",
						name: "_enabled",
						type: "bool"
					}
				],
				name: "preSetPremiumTags",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "proxiableUUID",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "recycleTag",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "renewTag",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "from",
						type: "address"
					},
					{
						internalType: "address",
						name: "to",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				name: "safeTransferFrom",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "from",
						type: "address"
					},
					{
						internalType: "address",
						name: "to",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					},
					{
						internalType: "bytes",
						name: "data",
						type: "bytes"
					}
				],
				name: "safeTransferFrom",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "_accessControls",
						type: "address"
					}
				],
				name: "setAccessControls",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "operator",
						type: "address"
					},
					{
						internalType: "bool",
						name: "approved",
						type: "bool"
					}
				],
				name: "setApprovalForAll",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "contract IETS",
						name: "_ets",
						type: "address"
					}
				],
				name: "setETSCore",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_ownershipTermLength",
						type: "uint256"
					}
				],
				name: "setOwnershipTermLength",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256[]",
						name: "_tokenIds",
						type: "uint256[]"
					},
					{
						internalType: "bool",
						name: "_isPremium",
						type: "bool"
					}
				],
				name: "setPremiumFlag",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256[]",
						name: "_tokenIds",
						type: "uint256[]"
					},
					{
						internalType: "bool",
						name: "_reserved",
						type: "bool"
					}
				],
				name: "setReservedFlag",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tagMaxStringLength",
						type: "uint256"
					}
				],
				name: "setTagMaxStringLength",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tagMinStringLength",
						type: "uint256"
					}
				],
				name: "setTagMinStringLength",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes4",
						name: "interfaceId",
						type: "bytes4"
					}
				],
				name: "supportsInterface",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "symbol",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "tagExistsById",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_tag",
						type: "string"
					}
				],
				name: "tagExistsByString",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "tagMaxStringLength",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "tagMinStringLength",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "tagOwnershipTermExpired",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				name: "tokenIdToLastRenewed",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				name: "tokenIdToTag",
				outputs: [
					{
						internalType: "address",
						name: "relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "creator",
						type: "address"
					},
					{
						internalType: "string",
						name: "display",
						type: "string"
					},
					{
						internalType: "bool",
						name: "premium",
						type: "bool"
					},
					{
						internalType: "bool",
						name: "reserved",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				name: "tokenURI",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "from",
						type: "address"
					},
					{
						internalType: "address",
						name: "to",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				name: "transferFrom",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "unPause",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					}
				],
				name: "upgradeTo",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					},
					{
						internalType: "bytes",
						name: "data",
						type: "bytes"
					}
				],
				name: "upgradeToAndCall",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			}
		]
	},
	ETSAuctionHouse: {
		address: "0x0165878A594ca255338adfa4d48449f69242Eb8F",
		abi: [
			{
				inputs: [
				],
				stateMutability: "nonpayable",
				type: "constructor"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "previousAdmin",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "newAdmin",
						type: "address"
					}
				],
				name: "AdminChanged",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "uint256",
						name: "auctionId",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "address",
						name: "sender",
						type: "address"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "value",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "bool",
						name: "extended",
						type: "bool"
					}
				],
				name: "AuctionBid",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "uint256",
						name: "auctionId",
						type: "uint256"
					},
					{
						indexed: true,
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "tokenAuctionNumber",
						type: "uint256"
					}
				],
				name: "AuctionCreated",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "duration",
						type: "uint256"
					}
				],
				name: "AuctionDurationSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "uint256",
						name: "auctionId",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "endTime",
						type: "uint256"
					}
				],
				name: "AuctionExtended",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint8",
						name: "minBidIncrementPercentagePrice",
						type: "uint8"
					}
				],
				name: "AuctionMinBidIncrementPercentageSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "platformPercentage",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "relayerPercentage",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "creatorPercentage",
						type: "uint256"
					}
				],
				name: "AuctionProceedPercentagesSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "who",
						type: "address"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}
				],
				name: "AuctionProceedsWithdrawn",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "reservePrice",
						type: "uint256"
					}
				],
				name: "AuctionReservePriceSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "uint256",
						name: "auctionId",
						type: "uint256"
					}
				],
				name: "AuctionSettled",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "timeBuffer",
						type: "uint256"
					}
				],
				name: "AuctionTimeBufferSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "maxAuctions",
						type: "uint256"
					}
				],
				name: "AuctionsMaxSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "beacon",
						type: "address"
					}
				],
				name: "BeaconUpgraded",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint8",
						name: "version",
						type: "uint8"
					}
				],
				name: "Initialized",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "account",
						type: "address"
					}
				],
				name: "Paused",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
				],
				name: "RequestCreateAuction",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "account",
						type: "address"
					}
				],
				name: "Unpaused",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "implementation",
						type: "address"
					}
				],
				name: "Upgraded",
				type: "event"
			},
			{
				stateMutability: "payable",
				type: "fallback"
			},
			{
				inputs: [
				],
				name: "MODULO",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "NAME",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "VERSION",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				name: "accrued",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_auctionId",
						type: "uint256"
					}
				],
				name: "auctionEnded",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_auctionId",
						type: "uint256"
					}
				],
				name: "auctionExists",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "auctionExistsForTokenId",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_auctionId",
						type: "uint256"
					}
				],
				name: "auctionSettled",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				name: "auctions",
				outputs: [
					{
						internalType: "uint256",
						name: "auctionId",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "startTime",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "endTime",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "reservePrice",
						type: "uint256"
					},
					{
						internalType: "address payable",
						name: "bidder",
						type: "address"
					},
					{
						internalType: "address payable",
						name: "auctioneer",
						type: "address"
					},
					{
						internalType: "bool",
						name: "settled",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				name: "auctionsByTokenId",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_auctionId",
						type: "uint256"
					}
				],
				name: "createBid",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "createNextAuction",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "creatorPercentage",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address payable",
						name: "_account",
						type: "address"
					}
				],
				name: "drawDown",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "duration",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsAccessControls",
				outputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsToken",
				outputs: [
					{
						internalType: "contract IETSToken",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "fulfillRequestCreateAuction",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getActiveCount",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_auctionId",
						type: "uint256"
					}
				],
				name: "getAuction",
				outputs: [
					{
						components: [
							{
								internalType: "uint256",
								name: "auctionId",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "tokenId",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "amount",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "startTime",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "endTime",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "reservePrice",
								type: "uint256"
							},
							{
								internalType: "address payable",
								name: "bidder",
								type: "address"
							},
							{
								internalType: "address payable",
								name: "auctioneer",
								type: "address"
							},
							{
								internalType: "bool",
								name: "settled",
								type: "bool"
							}
						],
						internalType: "struct IETSAuctionHouse.Auction",
						name: "",
						type: "tuple"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "getAuctionCountForTokenId",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				name: "getAuctionForTokenId",
				outputs: [
					{
						components: [
							{
								internalType: "uint256",
								name: "auctionId",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "tokenId",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "amount",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "startTime",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "endTime",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "reservePrice",
								type: "uint256"
							},
							{
								internalType: "address payable",
								name: "bidder",
								type: "address"
							},
							{
								internalType: "address payable",
								name: "auctioneer",
								type: "address"
							},
							{
								internalType: "bool",
								name: "settled",
								type: "bool"
							}
						],
						internalType: "struct IETSAuctionHouse.Auction",
						name: "",
						type: "tuple"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getBalance",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getTotalCount",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "contract IETSToken",
						name: "_etsToken",
						type: "address"
					},
					{
						internalType: "contract IETSAccessControls",
						name: "_etsAccessControls",
						type: "address"
					},
					{
						internalType: "address",
						name: "_weth",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "_maxAuctions",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_timeBuffer",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_reservePrice",
						type: "uint256"
					},
					{
						internalType: "uint8",
						name: "_minBidIncrementPercentage",
						type: "uint8"
					},
					{
						internalType: "uint256",
						name: "_duration",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_relayerPercentage",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_platformPercentage",
						type: "uint256"
					}
				],
				name: "initialize",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "maxAuctions",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "minBidIncrementPercentage",
				outputs: [
					{
						internalType: "uint8",
						name: "",
						type: "uint8"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				name: "paid",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "pause",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "paused",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "platformPercentage",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "proxiableUUID",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "relayerPercentage",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "reservePrice",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_duration",
						type: "uint256"
					}
				],
				name: "setDuration",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_maxAuctions",
						type: "uint256"
					}
				],
				name: "setMaxAuctions",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint8",
						name: "_minBidIncrementPercentage",
						type: "uint8"
					}
				],
				name: "setMinBidIncrementPercentage",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_platformPercentage",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_relayerPercentage",
						type: "uint256"
					}
				],
				name: "setProceedPercentages",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_reservePrice",
						type: "uint256"
					}
				],
				name: "setReservePrice",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_timeBuffer",
						type: "uint256"
					}
				],
				name: "setTimeBuffer",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_auctionId",
						type: "uint256"
					}
				],
				name: "settleAuction",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_auctionId",
						type: "uint256"
					}
				],
				name: "settleCurrentAndCreateNewAuction",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "timeBuffer",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_account",
						type: "address"
					}
				],
				name: "totalDue",
				outputs: [
					{
						internalType: "uint256",
						name: "_due",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "unpause",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					}
				],
				name: "upgradeTo",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					},
					{
						internalType: "bytes",
						name: "data",
						type: "bytes"
					}
				],
				name: "upgradeToAndCall",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "weth",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				stateMutability: "payable",
				type: "receive"
			}
		]
	},
	ETSTarget: {
		address: "0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6",
		abi: [
			{
				inputs: [
				],
				stateMutability: "nonpayable",
				type: "constructor"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "etsAccessControls",
						type: "address"
					}
				],
				name: "AccessControlsSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "previousAdmin",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "newAdmin",
						type: "address"
					}
				],
				name: "AdminChanged",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "beacon",
						type: "address"
					}
				],
				name: "BeaconUpgraded",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "etsEnrichTarget",
						type: "address"
					}
				],
				name: "EnrichTargetSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint8",
						name: "version",
						type: "uint8"
					}
				],
				name: "Initialized",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "targetId",
						type: "uint256"
					}
				],
				name: "TargetCreated",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "targetId",
						type: "uint256"
					}
				],
				name: "TargetUpdated",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "implementation",
						type: "address"
					}
				],
				name: "Upgraded",
				type: "event"
			},
			{
				inputs: [
				],
				name: "NAME",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "VERSION",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_targetURI",
						type: "string"
					}
				],
				name: "computeTargetId",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "pure",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_targetURI",
						type: "string"
					}
				],
				name: "createTarget",
				outputs: [
					{
						internalType: "uint256",
						name: "targetId",
						type: "uint256"
					}
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsAccessControls",
				outputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsEnrichTarget",
				outputs: [
					{
						internalType: "contract IETSEnrichTarget",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_targetURI",
						type: "string"
					}
				],
				name: "getOrCreateTargetId",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					}
				],
				name: "getTargetById",
				outputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "address",
								name: "createdBy",
								type: "address"
							},
							{
								internalType: "uint256",
								name: "enriched",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "httpStatus",
								type: "uint256"
							},
							{
								internalType: "string",
								name: "arweaveTxId",
								type: "string"
							}
						],
						internalType: "struct IETSTarget.Target",
						name: "",
						type: "tuple"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_targetURI",
						type: "string"
					}
				],
				name: "getTargetByURI",
				outputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "address",
								name: "createdBy",
								type: "address"
							},
							{
								internalType: "uint256",
								name: "enriched",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "httpStatus",
								type: "uint256"
							},
							{
								internalType: "string",
								name: "arweaveTxId",
								type: "string"
							}
						],
						internalType: "struct IETSTarget.Target",
						name: "",
						type: "tuple"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_etsAccessControls",
						type: "address"
					}
				],
				name: "initialize",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "proxiableUUID",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "_accessControls",
						type: "address"
					}
				],
				name: "setAccessControls",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_etsEnrichTarget",
						type: "address"
					}
				],
				name: "setEnrichTarget",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					}
				],
				name: "targetExistsById",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_targetURI",
						type: "string"
					}
				],
				name: "targetExistsByURI",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				name: "targets",
				outputs: [
					{
						internalType: "string",
						name: "targetURI",
						type: "string"
					},
					{
						internalType: "address",
						name: "createdBy",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "enriched",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "httpStatus",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "arweaveTxId",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "_targetURI",
						type: "string"
					},
					{
						internalType: "uint256",
						name: "_enriched",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_httpStatus",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "_arweaveTxId",
						type: "string"
					}
				],
				name: "updateTarget",
				outputs: [
					{
						internalType: "bool",
						name: "success",
						type: "bool"
					}
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					}
				],
				name: "upgradeTo",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					},
					{
						internalType: "bytes",
						name: "data",
						type: "bytes"
					}
				],
				name: "upgradeToAndCall",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			}
		]
	},
	AirnodeRrpV0Proxy: {
		address: "0x8A791620dd6260079BF849Dc5567aDC3F2FdC318",
		abi: [
			{
				inputs: [
				],
				stateMutability: "nonpayable",
				type: "constructor"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "bytes32",
						name: "templateId",
						type: "bytes32"
					},
					{
						indexed: false,
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						indexed: false,
						internalType: "bytes32",
						name: "endpointId",
						type: "bytes32"
					},
					{
						indexed: false,
						internalType: "bytes",
						name: "parameters",
						type: "bytes"
					}
				],
				name: "CreatedTemplate",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						indexed: true,
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					},
					{
						indexed: false,
						internalType: "string",
						name: "errorMessage",
						type: "string"
					}
				],
				name: "FailedRequest",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						indexed: true,
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					},
					{
						indexed: false,
						internalType: "bytes",
						name: "data",
						type: "bytes"
					}
				],
				name: "FulfilledRequest",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						indexed: true,
						internalType: "address",
						name: "sponsor",
						type: "address"
					},
					{
						indexed: true,
						internalType: "bytes32",
						name: "withdrawalRequestId",
						type: "bytes32"
					},
					{
						indexed: false,
						internalType: "address",
						name: "sponsorWallet",
						type: "address"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}
				],
				name: "FulfilledWithdrawal",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						indexed: true,
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "requesterRequestCount",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "chainId",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "address",
						name: "requester",
						type: "address"
					},
					{
						indexed: false,
						internalType: "bytes32",
						name: "endpointId",
						type: "bytes32"
					},
					{
						indexed: false,
						internalType: "address",
						name: "sponsor",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "sponsorWallet",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "fulfillAddress",
						type: "address"
					},
					{
						indexed: false,
						internalType: "bytes4",
						name: "fulfillFunctionId",
						type: "bytes4"
					},
					{
						indexed: false,
						internalType: "bytes",
						name: "parameters",
						type: "bytes"
					}
				],
				name: "MadeFullRequest",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						indexed: true,
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "requesterRequestCount",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "chainId",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "address",
						name: "requester",
						type: "address"
					},
					{
						indexed: false,
						internalType: "bytes32",
						name: "templateId",
						type: "bytes32"
					},
					{
						indexed: false,
						internalType: "address",
						name: "sponsor",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "sponsorWallet",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "fulfillAddress",
						type: "address"
					},
					{
						indexed: false,
						internalType: "bytes4",
						name: "fulfillFunctionId",
						type: "bytes4"
					},
					{
						indexed: false,
						internalType: "bytes",
						name: "parameters",
						type: "bytes"
					}
				],
				name: "MadeTemplateRequest",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						indexed: true,
						internalType: "address",
						name: "sponsor",
						type: "address"
					},
					{
						indexed: true,
						internalType: "bytes32",
						name: "withdrawalRequestId",
						type: "bytes32"
					},
					{
						indexed: false,
						internalType: "address",
						name: "sponsorWallet",
						type: "address"
					}
				],
				name: "RequestedWithdrawal",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "sponsor",
						type: "address"
					},
					{
						indexed: true,
						internalType: "address",
						name: "requester",
						type: "address"
					},
					{
						indexed: false,
						internalType: "bool",
						name: "sponsorshipStatus",
						type: "bool"
					}
				],
				name: "SetSponsorshipStatus",
				type: "event"
			},
			{
				inputs: [
					{
						internalType: "address[]",
						name: "authorizers",
						type: "address[]"
					},
					{
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					},
					{
						internalType: "bytes32",
						name: "endpointId",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "sponsor",
						type: "address"
					},
					{
						internalType: "address",
						name: "requester",
						type: "address"
					}
				],
				name: "checkAuthorizationStatus",
				outputs: [
					{
						internalType: "bool",
						name: "status",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address[]",
						name: "authorizers",
						type: "address[]"
					},
					{
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						internalType: "bytes32[]",
						name: "requestIds",
						type: "bytes32[]"
					},
					{
						internalType: "bytes32[]",
						name: "endpointIds",
						type: "bytes32[]"
					},
					{
						internalType: "address[]",
						name: "sponsors",
						type: "address[]"
					},
					{
						internalType: "address[]",
						name: "requesters",
						type: "address[]"
					}
				],
				name: "checkAuthorizationStatuses",
				outputs: [
					{
						internalType: "bool[]",
						name: "statuses",
						type: "bool[]"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						internalType: "bytes32",
						name: "endpointId",
						type: "bytes32"
					},
					{
						internalType: "bytes",
						name: "parameters",
						type: "bytes"
					}
				],
				name: "createTemplate",
				outputs: [
					{
						internalType: "bytes32",
						name: "templateId",
						type: "bytes32"
					}
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						internalType: "address",
						name: "fulfillAddress",
						type: "address"
					},
					{
						internalType: "bytes4",
						name: "fulfillFunctionId",
						type: "bytes4"
					},
					{
						internalType: "string",
						name: "errorMessage",
						type: "string"
					}
				],
				name: "fail",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						internalType: "address",
						name: "fulfillAddress",
						type: "address"
					},
					{
						internalType: "bytes4",
						name: "fulfillFunctionId",
						type: "bytes4"
					},
					{
						internalType: "bytes",
						name: "data",
						type: "bytes"
					},
					{
						internalType: "bytes",
						name: "signature",
						type: "bytes"
					}
				],
				name: "fulfill",
				outputs: [
					{
						internalType: "bool",
						name: "callSuccess",
						type: "bool"
					},
					{
						internalType: "bytes",
						name: "callData",
						type: "bytes"
					}
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "withdrawalRequestId",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						internalType: "address",
						name: "sponsor",
						type: "address"
					}
				],
				name: "fulfillWithdrawal",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32[]",
						name: "templateIds",
						type: "bytes32[]"
					}
				],
				name: "getTemplates",
				outputs: [
					{
						internalType: "address[]",
						name: "airnodes",
						type: "address[]"
					},
					{
						internalType: "bytes32[]",
						name: "endpointIds",
						type: "bytes32[]"
					},
					{
						internalType: "bytes[]",
						name: "parameters",
						type: "bytes[]"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						internalType: "bytes32",
						name: "endpointId",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "sponsor",
						type: "address"
					},
					{
						internalType: "address",
						name: "sponsorWallet",
						type: "address"
					},
					{
						internalType: "address",
						name: "fulfillAddress",
						type: "address"
					},
					{
						internalType: "bytes4",
						name: "fulfillFunctionId",
						type: "bytes4"
					},
					{
						internalType: "bytes",
						name: "parameters",
						type: "bytes"
					}
				],
				name: "makeFullRequest",
				outputs: [
					{
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					}
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "templateId",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "sponsor",
						type: "address"
					},
					{
						internalType: "address",
						name: "sponsorWallet",
						type: "address"
					},
					{
						internalType: "address",
						name: "fulfillAddress",
						type: "address"
					},
					{
						internalType: "bytes4",
						name: "fulfillFunctionId",
						type: "bytes4"
					},
					{
						internalType: "bytes",
						name: "parameters",
						type: "bytes"
					}
				],
				name: "makeTemplateRequest",
				outputs: [
					{
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					}
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					}
				],
				name: "requestIsAwaitingFulfillment",
				outputs: [
					{
						internalType: "bool",
						name: "isAwaitingFulfillment",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						internalType: "address",
						name: "sponsorWallet",
						type: "address"
					}
				],
				name: "requestWithdrawal",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				name: "requesterToRequestCountPlusOne",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "requester",
						type: "address"
					},
					{
						internalType: "bool",
						name: "sponsorshipStatus",
						type: "bool"
					}
				],
				name: "setSponsorshipStatus",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					},
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				name: "sponsorToRequesterToSponsorshipStatus",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				name: "sponsorToWithdrawalRequestCount",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				name: "templates",
				outputs: [
					{
						internalType: "address",
						name: "airnode",
						type: "address"
					},
					{
						internalType: "bytes32",
						name: "endpointId",
						type: "bytes32"
					},
					{
						internalType: "bytes",
						name: "parameters",
						type: "bytes"
					}
				],
				stateMutability: "view",
				type: "function"
			}
		]
	},
	ETSEnrichTarget: {
		address: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
		abi: [
			{
				inputs: [
				],
				stateMutability: "nonpayable",
				type: "constructor"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "previousAdmin",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "newAdmin",
						type: "address"
					}
				],
				name: "AdminChanged",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "airnodeRrp",
						type: "address"
					}
				],
				name: "AirnodeRrpUpdated",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "beacon",
						type: "address"
					}
				],
				name: "BeaconUpgraded",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					},
					{
						indexed: true,
						internalType: "uint256",
						name: "targetId",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "string",
						name: "ipfsHash",
						type: "string"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "httpStatus",
						type: "uint256"
					}
				],
				name: "EnrichmentFulfilled",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint8",
						name: "version",
						type: "uint8"
					}
				],
				name: "Initialized",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "uint256",
						name: "targetId",
						type: "uint256"
					}
				],
				name: "RequestEnrichTarget",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "implementation",
						type: "address"
					}
				],
				name: "Upgraded",
				type: "event"
			},
			{
				inputs: [
				],
				name: "NAME",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "VERSION",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "airnode",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "airnodeRrp",
				outputs: [
					{
						internalType: "contract IAirnodeRrpV0",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "endpointId",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsAccessControls",
				outputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsTarget",
				outputs: [
					{
						internalType: "contract IETSTarget",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "requestId",
						type: "bytes32"
					},
					{
						internalType: "bytes",
						name: "data",
						type: "bytes"
					}
				],
				name: "fulfillEnrichTarget",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "_etsAccessControls",
						type: "address"
					},
					{
						internalType: "contract IETSTarget",
						name: "_etsTarget",
						type: "address"
					},
					{
						internalType: "contract IAirnodeRrpV0",
						name: "_airnodeRrp",
						type: "address"
					}
				],
				name: "initialize",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "proxiableUUID",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					}
				],
				name: "requestEnrichTarget",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				name: "requestIdToTargetId",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_airnode",
						type: "address"
					},
					{
						internalType: "bytes32",
						name: "_endpointId",
						type: "bytes32"
					},
					{
						internalType: "address",
						name: "_sponsorAddress",
						type: "address"
					},
					{
						internalType: "address",
						name: "_sponsorWallet",
						type: "address"
					}
				],
				name: "setAirnodeRequestParameters",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "contract IAirnodeRrpV0",
						name: "_airnodeRrp",
						type: "address"
					}
				],
				name: "setAirnodeRrp",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "sponsorAddress",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "sponsorWallet",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					}
				],
				name: "upgradeTo",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					},
					{
						internalType: "bytes",
						name: "data",
						type: "bytes"
					}
				],
				name: "upgradeToAndCall",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			}
		]
	},
	ETS: {
		address: "0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82",
		abi: [
			{
				inputs: [
				],
				stateMutability: "nonpayable",
				type: "constructor"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "newAccessControls",
						type: "address"
					}
				],
				name: "AccessControlsSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "previousAdmin",
						type: "address"
					},
					{
						indexed: false,
						internalType: "address",
						name: "newAdmin",
						type: "address"
					}
				],
				name: "AdminChanged",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "beacon",
						type: "address"
					}
				],
				name: "BeaconUpgraded",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "who",
						type: "address"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}
				],
				name: "FundsWithdrawn",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint8",
						name: "version",
						type: "uint8"
					}
				],
				name: "Initialized",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "platformPercentage",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "uint256",
						name: "relayerPercentage",
						type: "uint256"
					}
				],
				name: "PercentagesSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "newTaggingFee",
						type: "uint256"
					}
				],
				name: "TaggingFeeSet",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "taggingRecordId",
						type: "uint256"
					}
				],
				name: "TaggingRecordCreated",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint256",
						name: "taggingRecordId",
						type: "uint256"
					},
					{
						indexed: false,
						internalType: "enum IETS.TaggingAction",
						name: "action",
						type: "uint8"
					}
				],
				name: "TaggingRecordUpdated",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "implementation",
						type: "address"
					}
				],
				name: "Upgraded",
				type: "event"
			},
			{
				inputs: [
				],
				name: "MODULO",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "NAME",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "VERSION",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				name: "accrued",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_taggingRecordId",
						type: "uint256"
					},
					{
						internalType: "uint256[]",
						name: "_tagIds",
						type: "uint256[]"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					}
				],
				name: "appendTags",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256[]",
						name: "_tagIds",
						type: "uint256[]"
					},
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "_recordType",
						type: "string"
					},
					{
						internalType: "address payable",
						name: "_tagger",
						type: "address"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					}
				],
				name: "applyTagsWithCompositeKey",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput",
						name: "_rawInput",
						type: "tuple"
					},
					{
						internalType: "address payable",
						name: "_tagger",
						type: "address"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					}
				],
				name: "applyTagsWithRawInput",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_taggingRecordId",
						type: "uint256"
					},
					{
						internalType: "uint256[]",
						name: "_tagIds",
						type: "uint256[]"
					},
					{
						internalType: "enum IETS.TaggingAction",
						name: "_action",
						type: "uint8"
					}
				],
				name: "computeTaggingFee",
				outputs: [
					{
						internalType: "uint256",
						name: "fee",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "tagCount",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256[]",
						name: "_tagIds",
						type: "uint256[]"
					},
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "_recordType",
						type: "string"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					},
					{
						internalType: "enum IETS.TaggingAction",
						name: "_action",
						type: "uint8"
					}
				],
				name: "computeTaggingFeeFromCompositeKey",
				outputs: [
					{
						internalType: "uint256",
						name: "fee",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "tagCount",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput",
						name: "_rawInput",
						type: "tuple"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					},
					{
						internalType: "enum IETS.TaggingAction",
						name: "_action",
						type: "uint8"
					}
				],
				name: "computeTaggingFeeFromRawInput",
				outputs: [
					{
						internalType: "uint256",
						name: "fee",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "tagCount",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "_recordType",
						type: "string"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					}
				],
				name: "computeTaggingRecordIdFromCompositeKey",
				outputs: [
					{
						internalType: "uint256",
						name: "taggingRecordId",
						type: "uint256"
					}
				],
				stateMutability: "pure",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput",
						name: "_rawInput",
						type: "tuple"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					}
				],
				name: "computeTaggingRecordIdFromRawInput",
				outputs: [
					{
						internalType: "uint256",
						name: "taggingRecordId",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_tag",
						type: "string"
					},
					{
						internalType: "address payable",
						name: "_creator",
						type: "address"
					}
				],
				name: "createTag",
				outputs: [
					{
						internalType: "uint256",
						name: "_tokenId",
						type: "uint256"
					}
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256[]",
						name: "_tagIds",
						type: "uint256[]"
					},
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "_recordType",
						type: "string"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					}
				],
				name: "createTaggingRecord",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address payable",
						name: "_account",
						type: "address"
					}
				],
				name: "drawDown",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsAccessControls",
				outputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsTarget",
				outputs: [
					{
						internalType: "contract IETSTarget",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsToken",
				outputs: [
					{
						internalType: "contract IETSToken",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_tag",
						type: "string"
					},
					{
						internalType: "address payable",
						name: "_creator",
						type: "address"
					}
				],
				name: "getOrCreateTagId",
				outputs: [
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "_recordType",
						type: "string"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					}
				],
				name: "getTaggingRecordFromCompositeKey",
				outputs: [
					{
						internalType: "uint256[]",
						name: "tagIds",
						type: "uint256[]"
					},
					{
						internalType: "uint256",
						name: "targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "recordType",
						type: "string"
					},
					{
						internalType: "address",
						name: "relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "tagger",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_id",
						type: "uint256"
					}
				],
				name: "getTaggingRecordFromId",
				outputs: [
					{
						internalType: "uint256[]",
						name: "tagIds",
						type: "uint256[]"
					},
					{
						internalType: "uint256",
						name: "targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "recordType",
						type: "string"
					},
					{
						internalType: "address",
						name: "relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "tagger",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput",
						name: "_rawInput",
						type: "tuple"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					}
				],
				name: "getTaggingRecordFromRawInput",
				outputs: [
					{
						internalType: "uint256[]",
						name: "tagIds",
						type: "uint256[]"
					},
					{
						internalType: "uint256",
						name: "targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "recordType",
						type: "string"
					},
					{
						internalType: "address",
						name: "relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "tagger",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "_etsAccessControls",
						type: "address"
					},
					{
						internalType: "contract IETSToken",
						name: "_etsToken",
						type: "address"
					},
					{
						internalType: "contract IETSTarget",
						name: "_etsTarget",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "_taggingFee",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_platformPercentage",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_relayerPercentage",
						type: "uint256"
					}
				],
				name: "initialize",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				name: "paid",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "platformPercentage",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "proxiableUUID",
				outputs: [
					{
						internalType: "bytes32",
						name: "",
						type: "bytes32"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "relayerPercentage",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_taggingRecordId",
						type: "uint256"
					},
					{
						internalType: "uint256[]",
						name: "_tagIds",
						type: "uint256[]"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					}
				],
				name: "removeTags",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256[]",
						name: "_tagIds",
						type: "uint256[]"
					},
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "_recordType",
						type: "string"
					},
					{
						internalType: "address payable",
						name: "_tagger",
						type: "address"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					}
				],
				name: "removeTagsWithCompositeKey",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput",
						name: "_rawInput",
						type: "tuple"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					}
				],
				name: "removeTagsWithRawInput",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_taggingRecordId",
						type: "uint256"
					},
					{
						internalType: "uint256[]",
						name: "_tagIds",
						type: "uint256[]"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					}
				],
				name: "replaceTags",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256[]",
						name: "_tagIds",
						type: "uint256[]"
					},
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "_recordType",
						type: "string"
					},
					{
						internalType: "address payable",
						name: "_tagger",
						type: "address"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					}
				],
				name: "replaceTagsWithCompositeKey",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput",
						name: "_rawInput",
						type: "tuple"
					},
					{
						internalType: "address payable",
						name: "_tagger",
						type: "address"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					}
				],
				name: "replaceTagsWithRawInput",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "_accessControls",
						type: "address"
					}
				],
				name: "setAccessControls",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_platformPercentage",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "_relayerPercentage",
						type: "uint256"
					}
				],
				name: "setPercentages",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_fee",
						type: "uint256"
					}
				],
				name: "setTaggingFee",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "taggingFee",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_taggingRecordId",
						type: "uint256"
					}
				],
				name: "taggingRecordExists",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "_targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "_recordType",
						type: "string"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					}
				],
				name: "taggingRecordExistsByCompositeKey",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput",
						name: "_rawInput",
						type: "tuple"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "_tagger",
						type: "address"
					}
				],
				name: "taggingRecordExistsByRawInput",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				name: "taggingRecords",
				outputs: [
					{
						internalType: "uint256",
						name: "targetId",
						type: "uint256"
					},
					{
						internalType: "string",
						name: "recordType",
						type: "string"
					},
					{
						internalType: "address",
						name: "relayer",
						type: "address"
					},
					{
						internalType: "address",
						name: "tagger",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_account",
						type: "address"
					}
				],
				name: "totalDue",
				outputs: [
					{
						internalType: "uint256",
						name: "_due",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					}
				],
				name: "upgradeTo",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newImplementation",
						type: "address"
					},
					{
						internalType: "bytes",
						name: "data",
						type: "bytes"
					}
				],
				name: "upgradeToAndCall",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			}
		]
	},
	ETSRelayerFactory: {
		address: "0x0B306BF915C4d645ff596e518fAf3F9669b97016",
		abi: [
			{
				inputs: [
					{
						internalType: "address",
						name: "_etsRelayerLogic",
						type: "address"
					},
					{
						internalType: "contract IETSAccessControls",
						name: "_etsAccessControls",
						type: "address"
					},
					{
						internalType: "contract IETS",
						name: "_ets",
						type: "address"
					},
					{
						internalType: "contract IETSToken",
						name: "_etsToken",
						type: "address"
					},
					{
						internalType: "contract IETSTarget",
						name: "_etsTarget",
						type: "address"
					}
				],
				stateMutability: "nonpayable",
				type: "constructor"
			},
			{
				inputs: [
				],
				name: "NAME",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_relayerName",
						type: "string"
					}
				],
				name: "addRelayer",
				outputs: [
					{
						internalType: "address",
						name: "relayer",
						type: "address"
					}
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "ets",
				outputs: [
					{
						internalType: "contract IETS",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsAccessControls",
				outputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsTarget",
				outputs: [
					{
						internalType: "contract IETSTarget",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsToken",
				outputs: [
					{
						internalType: "contract IETSToken",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getBeacon",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getImplementation",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			}
		]
	},
	ETSRelayer: {
		address: "0x9A676e781A523b5d0C0e43731313A708CB607508",
		abi: [
			{
				inputs: [
				],
				stateMutability: "nonpayable",
				type: "constructor"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "uint8",
						name: "version",
						type: "uint8"
					}
				],
				name: "Initialized",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: true,
						internalType: "address",
						name: "previousOwner",
						type: "address"
					},
					{
						indexed: true,
						internalType: "address",
						name: "newOwner",
						type: "address"
					}
				],
				name: "OwnershipTransferred",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "account",
						type: "address"
					}
				],
				name: "Paused",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "relayerAddress",
						type: "address"
					}
				],
				name: "RelayerOwnerChanged",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "relayerAddress",
						type: "address"
					}
				],
				name: "RelayerPauseToggledByOwner",
				type: "event"
			},
			{
				anonymous: false,
				inputs: [
					{
						indexed: false,
						internalType: "address",
						name: "account",
						type: "address"
					}
				],
				name: "Unpaused",
				type: "event"
			},
			{
				stateMutability: "payable",
				type: "fallback"
			},
			{
				inputs: [
				],
				name: "IID_IETSRELAYER",
				outputs: [
					{
						internalType: "bytes4",
						name: "",
						type: "bytes4"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "NAME",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "VERSION",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput[]",
						name: "_rawInput",
						type: "tuple[]"
					}
				],
				name: "applyTags",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput[]",
						name: "_rawInput",
						type: "tuple[]"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					}
				],
				name: "applyTagsViaRelayer",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "_newOwner",
						type: "address"
					}
				],
				name: "changeOwner",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput",
						name: "_rawInput",
						type: "tuple"
					},
					{
						internalType: "enum IETS.TaggingAction",
						name: "_action",
						type: "uint8"
					}
				],
				name: "computeTaggingFee",
				outputs: [
					{
						internalType: "uint256",
						name: "fee",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "tagCount",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "creator",
				outputs: [
					{
						internalType: "address payable",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "ets",
				outputs: [
					{
						internalType: "contract IETS",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsAccessControls",
				outputs: [
					{
						internalType: "contract IETSAccessControls",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsTarget",
				outputs: [
					{
						internalType: "contract IETSTarget",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "etsToken",
				outputs: [
					{
						internalType: "contract IETSToken",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getBalance",
				outputs: [
					{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getCreator",
				outputs: [
					{
						internalType: "address payable",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string[]",
						name: "_tags",
						type: "string[]"
					}
				],
				name: "getOrCreateTagIds",
				outputs: [
					{
						internalType: "uint256[]",
						name: "_tagIds",
						type: "uint256[]"
					}
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getOwner",
				outputs: [
					{
						internalType: "address payable",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "getRelayerName",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "string",
						name: "_relayerName",
						type: "string"
					},
					{
						internalType: "contract IETS",
						name: "_ets",
						type: "address"
					},
					{
						internalType: "contract IETSToken",
						name: "_etsToken",
						type: "address"
					},
					{
						internalType: "contract IETSTarget",
						name: "_etsTarget",
						type: "address"
					},
					{
						internalType: "contract IETSAccessControls",
						name: "_etsAccessControls",
						type: "address"
					},
					{
						internalType: "address payable",
						name: "_creator",
						type: "address"
					},
					{
						internalType: "address payable",
						name: "_owner",
						type: "address"
					}
				],
				name: "initialize",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "isPaused",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "owner",
				outputs: [
					{
						internalType: "address",
						name: "",
						type: "address"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "pause",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "paused",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
				],
				name: "relayerName",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput[]",
						name: "_rawInput",
						type: "tuple[]"
					}
				],
				name: "removeTags",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput[]",
						name: "_rawInput",
						type: "tuple[]"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					}
				],
				name: "removeTagsViaRelayer",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "renounceOwnership",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput[]",
						name: "_rawInput",
						type: "tuple[]"
					}
				],
				name: "replaceTags",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						components: [
							{
								internalType: "string",
								name: "targetURI",
								type: "string"
							},
							{
								internalType: "string[]",
								name: "tagStrings",
								type: "string[]"
							},
							{
								internalType: "string",
								name: "recordType",
								type: "string"
							}
						],
						internalType: "struct IETS.TaggingRecordRawInput[]",
						name: "_rawInput",
						type: "tuple[]"
					},
					{
						internalType: "address",
						name: "_relayer",
						type: "address"
					}
				],
				name: "replaceTagsViaRelayer",
				outputs: [
				],
				stateMutability: "payable",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "bytes4",
						name: "interfaceId",
						type: "bytes4"
					}
				],
				name: "supportsInterface",
				outputs: [
					{
						internalType: "bool",
						name: "",
						type: "bool"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				inputs: [
					{
						internalType: "address",
						name: "newOwner",
						type: "address"
					}
				],
				name: "transferOwnership",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "unpause",
				outputs: [
				],
				stateMutability: "nonpayable",
				type: "function"
			},
			{
				inputs: [
				],
				name: "version",
				outputs: [
					{
						internalType: "string",
						name: "",
						type: "string"
					}
				],
				stateMutability: "view",
				type: "function"
			},
			{
				stateMutability: "payable",
				type: "receive"
			}
		]
	}
};
var localhost = {
	name: name,
	chainId: chainId,
	contracts: contracts
};

export { chainId, contracts, localhost as default, name };
