var e = {
	accessTokenABI: [
		{
			inputs: [{
				internalType: "contract IAccessTokenStorage",
				name: "_accessTokenStorage",
				type: "address"
			}],
			stateMutability: "nonpayable",
			type: "constructor"
		},
		{
			inputs: [],
			name: "InvalidAddress",
			type: "error"
		},
		{
			inputs: [],
			name: "InvalidAddressString",
			type: "error"
		},
		{
			inputs: [],
			name: "NotApprovedByGateway",
			type: "error"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "uint256",
				name: "blacklistedAccessKey",
				type: "uint256"
			}],
			name: "AccessKeyBlacklisted",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "uint256",
				name: "accessKey",
				type: "uint256"
			}, {
				indexed: !1,
				internalType: "string",
				name: "sourceChain",
				type: "string"
			}],
			name: "AccessKeyMigrationReceived",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "address",
				name: "blacklistedAddress",
				type: "address"
			}],
			name: "AddressBlacklisted",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "address",
				name: "addressToRestore",
				type: "address"
			}],
			name: "AddressRemovedFromBlacklist",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "uint256",
				name: "newMintingFee",
				type: "uint256"
			}],
			name: "MintingFeeChanged",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !1,
					internalType: "uint256",
					name: "accessKey",
					type: "uint256"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "index",
					type: "uint256"
				},
				{
					indexed: !1,
					internalType: "address",
					name: "senderAddress",
					type: "address"
				}
			],
			name: "NewAccessKeyAdded",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !0,
				internalType: "address",
				name: "previousOwner",
				type: "address"
			}, {
				indexed: !0,
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "OwnershipTransferStarted",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !0,
				internalType: "address",
				name: "previousOwner",
				type: "address"
			}, {
				indexed: !0,
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "OwnershipTransferred",
			type: "event"
		},
		{
			inputs: [],
			name: "acceptOwnership",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [],
			name: "accessTokenStorage",
			outputs: [{
				internalType: "contract IAccessTokenStorage",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				components: [
					{
						internalType: "uint8",
						name: "v",
						type: "uint8"
					},
					{
						internalType: "bytes32",
						name: "r",
						type: "bytes32"
					},
					{
						internalType: "bytes32",
						name: "s",
						type: "bytes32"
					},
					{
						internalType: "uint256",
						name: "accessKey",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "nonce",
						type: "uint256"
					},
					{
						internalType: "address",
						name: "ethereumAddress",
						type: "address"
					}
				],
				internalType: "struct SignatureData",
				name: "signatureData",
				type: "tuple"
			}],
			name: "addToken",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				components: [{
					internalType: "uint256",
					name: "accessToken",
					type: "uint256"
				}, {
					internalType: "address",
					name: "ethAddress",
					type: "address"
				}],
				internalType: "struct AccessTokenWithAddress[]",
				name: "accessObjects",
				type: "tuple[]"
			}],
			name: "approveTokens",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "accessKey",
				type: "uint256"
			}, {
				internalType: "uint256",
				name: "index",
				type: "uint256"
			}],
			name: "blacklistAccessKey",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_address",
				type: "address"
			}],
			name: "blacklistAddress",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "rootHashAccessToken",
				type: "uint256"
			}, {
				internalType: "address",
				name: "sender",
				type: "address"
			}],
			name: "checkForRootHash",
			outputs: [{
				internalType: "bool",
				name: "",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "bytes32",
					name: "commandId",
					type: "bytes32"
				},
				{
					internalType: "string",
					name: "sourceChain",
					type: "string"
				},
				{
					internalType: "string",
					name: "sourceAddress",
					type: "string"
				},
				{
					internalType: "bytes",
					name: "payload",
					type: "bytes"
				}
			],
			name: "execute",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "bytes32",
					name: "commandId",
					type: "bytes32"
				},
				{
					internalType: "string",
					name: "sourceChain",
					type: "string"
				},
				{
					internalType: "string",
					name: "sourceAddress",
					type: "string"
				},
				{
					internalType: "bytes",
					name: "payload",
					type: "bytes"
				},
				{
					internalType: "string",
					name: "tokenSymbol",
					type: "string"
				},
				{
					internalType: "uint256",
					name: "amount",
					type: "uint256"
				}
			],
			name: "executeWithToken",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [],
			name: "gasService",
			outputs: [{
				internalType: "contract IAxelarGasService",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "gateway",
			outputs: [{
				internalType: "contract IAxelarGateway",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "getRootHash",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "accessKey",
				type: "uint256"
			}],
			name: "hasToken",
			outputs: [{
				internalType: "bool",
				name: "",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "hinkal",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				components: [{
					components: [
						{
							internalType: "string",
							name: "destinationChain",
							type: "string"
						},
						{
							internalType: "string",
							name: "destinationAddress",
							type: "string"
						},
						{
							internalType: "uint256",
							name: "messageFee",
							type: "uint256"
						}
					],
					internalType: "struct AxelarChainInfo[]",
					name: "chains",
					type: "tuple[]"
				}, {
					internalType: "uint256",
					name: "totalMessageFees",
					type: "uint256"
				}],
				internalType: "struct AxelarCapsule",
				name: "capsule",
				type: "tuple"
			}, {
				internalType: "uint256",
				name: "accessKey",
				type: "uint256"
			}],
			name: "migrateAccessToken",
			outputs: [],
			stateMutability: "payable",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "uint256",
					name: "",
					type: "uint256"
				},
				{
					internalType: "bytes",
					name: "",
					type: "bytes"
				}
			],
			name: "onERC721Received",
			outputs: [{
				internalType: "bytes4",
				name: "",
				type: "bytes4"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [],
			name: "owner",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "pendingOwner",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "sender",
				type: "address"
			}],
			name: "registerCheck",
			outputs: [],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_address",
				type: "address"
			}],
			name: "removeAddressFromBlacklist",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [],
			name: "renounceOwnership",
			outputs: [],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_gasService",
				type: "address"
			}],
			name: "setAxelarGasService",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "transferOwnership",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		}
	],
	hinkalABI: [
		{
			inputs: [
				{
					components: [
						{
							internalType: "uint128",
							name: "levels",
							type: "uint128"
						},
						{
							internalType: "address",
							name: "poseidon2",
							type: "address"
						},
						{
							internalType: "address",
							name: "poseidon4",
							type: "address"
						},
						{
							internalType: "address",
							name: "poseidon5",
							type: "address"
						}
					],
					internalType: "struct IMerkle.MerkleConstructorArgs",
					name: "constructorArgs",
					type: "tuple"
				},
				{
					internalType: "address",
					name: "_hinkalHelper",
					type: "address"
				},
				{
					internalType: "address",
					name: "_hinkalInLogic",
					type: "address"
				},
				{
					internalType: "address",
					name: "_hinkalHelperManager",
					type: "address"
				}
			],
			stateMutability: "nonpayable",
			type: "constructor"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !1,
					internalType: "address",
					name: "approvalTarget",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "address",
					name: "tokenAddress",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "inHinkalAddress",
					type: "uint256"
				}
			],
			name: "BufferReleased",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "address",
				name: "externalActionAddress",
				type: "address"
			}],
			name: "ExternalActionRegistered",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !1,
					internalType: "address",
					name: "approveTo",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "address",
					name: "tokenAddress",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "int256",
					name: "amount",
					type: "int256"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "inHinkalAddress",
					type: "uint256"
				}
			],
			name: "NewApprovedUtxo",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !1,
					internalType: "address",
					name: "approvalTarget",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "address",
					name: "tokenAddress",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "amount",
					type: "uint256"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "inHinkalAddress",
					type: "uint256"
				}
			],
			name: "NewBufferEntry",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !1,
					internalType: "uint256",
					name: "commitment",
					type: "uint256"
				},
				{
					indexed: !1,
					internalType: "int256",
					name: "index",
					type: "int256"
				},
				{
					indexed: !1,
					internalType: "bytes",
					name: "encryptedOutput",
					type: "bytes"
				}
			],
			name: "NewCommitment",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !1,
					internalType: "address",
					name: "sender",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "timestamp",
					type: "uint256"
				},
				{
					indexed: !1,
					internalType: "address",
					name: "erc20TokenAddress",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "int256",
					name: "publicAmount",
					type: "int256"
				}
			],
			name: "NewTransaction",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !1,
					internalType: "uint256",
					name: "amount",
					type: "uint256"
				},
				{
					indexed: !1,
					internalType: "address",
					name: "erc20Address",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "randomization",
					type: "uint256"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "stealthAddress",
					type: "uint256"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "timeStamp",
					type: "uint256"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "tokenId",
					type: "uint256"
				}
			],
			name: "NewUtxo",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "uint256",
				name: "nullifier",
				type: "uint256"
			}],
			name: "Nullified",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !0,
				internalType: "address",
				name: "previousOwner",
				type: "address"
			}, {
				indexed: !0,
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "OwnershipTransferStarted",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !0,
				internalType: "address",
				name: "previousOwner",
				type: "address"
			}, {
				indexed: !0,
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "OwnershipTransferred",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !0,
					internalType: "bytes32",
					name: "role",
					type: "bytes32"
				},
				{
					indexed: !0,
					internalType: "bytes32",
					name: "previousAdminRole",
					type: "bytes32"
				},
				{
					indexed: !0,
					internalType: "bytes32",
					name: "newAdminRole",
					type: "bytes32"
				}
			],
			name: "RoleAdminChanged",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !0,
					internalType: "bytes32",
					name: "role",
					type: "bytes32"
				},
				{
					indexed: !0,
					internalType: "address",
					name: "account",
					type: "address"
				},
				{
					indexed: !0,
					internalType: "address",
					name: "sender",
					type: "address"
				}
			],
			name: "RoleGranted",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !0,
					internalType: "bytes32",
					name: "role",
					type: "bytes32"
				},
				{
					indexed: !0,
					internalType: "address",
					name: "account",
					type: "address"
				},
				{
					indexed: !0,
					internalType: "address",
					name: "sender",
					type: "address"
				}
			],
			name: "RoleRevoked",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "uint256",
				name: "verifierId",
				type: "uint256"
			}, {
				indexed: !1,
				internalType: "address",
				name: "verifierAddress",
				type: "address"
			}],
			name: "VerifierRegistered",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "uint256",
				name: "verifierId",
				type: "uint256"
			}],
			name: "VerifierRemoved",
			type: "event"
		},
		{
			inputs: [],
			name: "DEFAULT_ADMIN_ROLE",
			outputs: [{
				internalType: "bytes32",
				name: "",
				type: "bytes32"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "HINKAL_HELPER_MANAGER",
			outputs: [{
				internalType: "bytes32",
				name: "",
				type: "bytes32"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "acceptOwnership",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address[]",
				name: "approvalTargets",
				type: "address[]"
			}, {
				internalType: "uint256[][]",
				name: "indexes",
				type: "uint256[][]"
			}],
			name: "bufferApprovals",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				components: [
					{
						internalType: "uint16",
						name: "tokenNumber",
						type: "uint16"
					},
					{
						internalType: "uint16",
						name: "nullifierAmount",
						type: "uint16"
					},
					{
						internalType: "uint16",
						name: "outputAmount",
						type: "uint16"
					}
				],
				internalType: "struct Dimensions",
				name: "dimensions",
				type: "tuple"
			}, {
				internalType: "uint256",
				name: "externalActionId",
				type: "uint256"
			}],
			name: "buildVerifierId",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			name: "externalActionMap",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address",
					name: "approveTo",
					type: "address"
				},
				{
					internalType: "address",
					name: "tokenAddress",
					type: "address"
				},
				{
					internalType: "uint256",
					name: "inHinkalAddress",
					type: "uint256"
				}
			],
			name: "getBufferEntry",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "interaction",
				type: "address"
			}],
			name: "getInteractionApprovals",
			outputs: [{
				components: [
					{
						internalType: "address",
						name: "tokenAddress",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "inHinkalAddress",
						type: "uint256"
					}
				],
				internalType: "struct ApprovedUtxo[]",
				name: "approvedUtxos",
				type: "tuple[]"
			}],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "bytes32",
				name: "role",
				type: "bytes32"
			}],
			name: "getRoleAdmin",
			outputs: [{
				internalType: "bytes32",
				name: "",
				type: "bytes32"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "getRootHash",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			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: "uint256",
				name: "a",
				type: "uint256"
			}, {
				internalType: "uint256",
				name: "b",
				type: "uint256"
			}],
			name: "hash2",
			outputs: [{
				internalType: "uint256",
				name: "poseidonHash",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "uint256",
					name: "a0",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "a1",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "a2",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "a3",
					type: "uint256"
				}
			],
			name: "hash4",
			outputs: [{
				internalType: "uint256",
				name: "poseidonHash",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "uint256",
					name: "a0",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "a1",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "a2",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "a3",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "a4",
					type: "uint256"
				}
			],
			name: "hash5",
			outputs: [{
				internalType: "uint256",
				name: "poseidonHash",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "hinkalHelper",
			outputs: [{
				internalType: "contract IHinkalHelper",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "hinkalInLogic",
			outputs: [{
				internalType: "contract IHinkalInLogic",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "x",
				type: "uint256"
			}],
			name: "logarithm2",
			outputs: [{
				internalType: "uint256",
				name: "y",
				type: "uint256"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [],
			name: "m_index",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			name: "nullifiers",
			outputs: [{
				internalType: "bool",
				name: "",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "uint256",
					name: "",
					type: "uint256"
				},
				{
					internalType: "bytes",
					name: "",
					type: "bytes"
				}
			],
			name: "onERC721Received",
			outputs: [{
				internalType: "bytes4",
				name: "",
				type: "bytes4"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [],
			name: "owner",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "pendingOwner",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "poseidon2",
			outputs: [{
				internalType: "contract IPoseidon2",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "poseidon4",
			outputs: [{
				internalType: "contract IPoseidon4",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "poseidon5",
			outputs: [{
				internalType: "contract IPoseidon5",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address[]",
					name: "erc20Addresses",
					type: "address[]"
				},
				{
					internalType: "uint256[]",
					name: "amounts",
					type: "uint256[]"
				},
				{
					internalType: "uint256[]",
					name: "tokenIds",
					type: "uint256[]"
				},
				{
					components: [
						{
							internalType: "uint256",
							name: "extraRandomization",
							type: "uint256"
						},
						{
							internalType: "uint256",
							name: "stealthAddress",
							type: "uint256"
						},
						{
							internalType: "uint256",
							name: "H0",
							type: "uint256"
						},
						{
							internalType: "uint256",
							name: "H1",
							type: "uint256"
						}
					],
					internalType: "struct StealthAddressStructure[]",
					name: "stealthAddressStructures",
					type: "tuple[]"
				}
			],
			name: "prooflessDeposit",
			outputs: [],
			stateMutability: "payable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "externalActionId",
				type: "uint256"
			}, {
				internalType: "address",
				name: "externalActionAddress",
				type: "address"
			}],
			name: "registerExternalAction",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256[]",
				name: "verifierIds",
				type: "uint256[]"
			}, {
				internalType: "address[]",
				name: "verifierAddresses",
				type: "address[]"
			}],
			name: "registerVerifiers",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "verifierId",
				type: "uint256"
			}],
			name: "removeVerifier",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [],
			name: "renounceOwnership",
			outputs: [],
			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: "uint256",
				name: "_root",
				type: "uint256"
			}],
			name: "rootHashExists",
			outputs: [{
				internalType: "bool",
				name: "",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "rootIndex",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			name: "roots",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_hinkalHelper",
				type: "address"
			}],
			name: "setHinkalHelper",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_hinkalLogic",
				type: "address"
			}],
			name: "setHinkalLogic",
			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: [
				{
					components: [
						{
							internalType: "uint8",
							name: "v",
							type: "uint8"
						},
						{
							internalType: "bytes32",
							name: "r",
							type: "bytes32"
						},
						{
							internalType: "bytes32",
							name: "s",
							type: "bytes32"
						}
					],
					internalType: "struct Signature",
					name: "proofSignature",
					type: "tuple"
				},
				{
					internalType: "uint256[2]",
					name: "a",
					type: "uint256[2]"
				},
				{
					internalType: "uint256[2][2]",
					name: "b",
					type: "uint256[2][2]"
				},
				{
					internalType: "uint256[2]",
					name: "c",
					type: "uint256[2]"
				},
				{
					components: [
						{
							internalType: "uint16",
							name: "tokenNumber",
							type: "uint16"
						},
						{
							internalType: "uint16",
							name: "nullifierAmount",
							type: "uint16"
						},
						{
							internalType: "uint16",
							name: "outputAmount",
							type: "uint16"
						}
					],
					internalType: "struct Dimensions",
					name: "dimensions",
					type: "tuple"
				},
				{
					components: [
						{
							internalType: "uint256",
							name: "rootHashHinkal",
							type: "uint256"
						},
						{
							internalType: "address[]",
							name: "erc20TokenAddresses",
							type: "address[]"
						},
						{
							internalType: "uint256[]",
							name: "tokenIds",
							type: "uint256[]"
						},
						{
							internalType: "int256[]",
							name: "amountChanges",
							type: "int256[]"
						},
						{
							internalType: "bool[]",
							name: "onChainCreation",
							type: "bool[]"
						},
						{
							internalType: "int256[]",
							name: "slippageValues",
							type: "int256[]"
						},
						{
							internalType: "uint256[][]",
							name: "inputNullifiers",
							type: "uint256[][]"
						},
						{
							internalType: "uint256[][]",
							name: "outCommitments",
							type: "uint256[][]"
						},
						{
							internalType: "bytes[][]",
							name: "encryptedOutputs",
							type: "bytes[][]"
						},
						{
							components: [
								{
									internalType: "address",
									name: "feeToken",
									type: "address"
								},
								{
									internalType: "uint256",
									name: "flatFee",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "variableRate",
									type: "uint256"
								}
							],
							internalType: "struct FeeStructure",
							name: "feeStructure",
							type: "tuple"
						},
						{
							internalType: "uint256",
							name: "timeStamp",
							type: "uint256"
						},
						{
							components: [
								{
									internalType: "uint256",
									name: "extraRandomization",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "stealthAddress",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "H0",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "H1",
									type: "uint256"
								}
							],
							internalType: "struct StealthAddressStructure",
							name: "stealthAddressStructure",
							type: "tuple"
						},
						{
							internalType: "uint256",
							name: "rootHashAccessToken",
							type: "uint256"
						},
						{
							internalType: "uint256",
							name: "calldataHash",
							type: "uint256"
						},
						{
							internalType: "uint16",
							name: "publicSignalCount",
							type: "uint16"
						},
						{
							internalType: "address",
							name: "relay",
							type: "address"
						},
						{
							internalType: "address",
							name: "externalAddress",
							type: "address"
						},
						{
							internalType: "uint256",
							name: "externalActionId",
							type: "uint256"
						},
						{
							internalType: "bytes",
							name: "externalActionMetadata",
							type: "bytes"
						},
						{
							components: [
								{
									internalType: "uint256",
									name: "hinkalLogicAction",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "inHinkalAddress",
									type: "uint256"
								},
								{
									internalType: "int256[]",
									name: "executeApprovalChanges",
									type: "int256[]"
								},
								{
									internalType: "bool",
									name: "doPreTxApproval",
									type: "bool"
								},
								{
									components: [
										{
											internalType: "int256[]",
											name: "approvalChanges",
											type: "int256[]"
										},
										{
											internalType: "address[]",
											name: "externalApprovalAddresses",
											type: "address[]"
										},
										{
											internalType: "uint256[]",
											name: "conversionInHinkalAddress",
											type: "uint256[]"
										}
									],
									internalType: "struct UseApprovalUTXOData[]",
									name: "useApprovalUtxoData",
									type: "tuple[]"
								}
							],
							internalType: "struct HinkalLogicArgs",
							name: "hinkalLogicArgs",
							type: "tuple"
						},
						{
							components: [
								{
									internalType: "address",
									name: "preHookContract",
									type: "address"
								},
								{
									internalType: "address",
									name: "hookContract",
									type: "address"
								},
								{
									internalType: "bytes",
									name: "preHookMetadata",
									type: "bytes"
								},
								{
									internalType: "bytes",
									name: "postHookMetadata",
									type: "bytes"
								}
							],
							internalType: "struct HookData",
							name: "hookData",
							type: "tuple"
						},
						{
							components: [
								{
									internalType: "uint8",
									name: "v",
									type: "uint8"
								},
								{
									internalType: "bytes32",
									name: "r",
									type: "bytes32"
								},
								{
									internalType: "bytes32",
									name: "s",
									type: "bytes32"
								},
								{
									internalType: "uint256",
									name: "accessKey",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "nonce",
									type: "uint256"
								},
								{
									internalType: "address",
									name: "ethereumAddress",
									type: "address"
								}
							],
							internalType: "struct SignatureData",
							name: "signatureData",
							type: "tuple"
						},
						{
							internalType: "address",
							name: "originalSender",
							type: "address"
						}
					],
					internalType: "struct CircomData",
					name: "circomData",
					type: "tuple"
				}
			],
			name: "transact",
			outputs: [],
			stateMutability: "payable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "transferOwnership",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			name: "tree",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			name: "verifierMap",
			outputs: [{
				internalType: "contract IVerifier",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			stateMutability: "payable",
			type: "receive"
		}
	],
	hinkalWrapperABI: [
		{
			inputs: [{
				internalType: "address",
				name: "_hinkal",
				type: "address"
			}],
			stateMutability: "nonpayable",
			type: "constructor"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !0,
				internalType: "address",
				name: "previousOwner",
				type: "address"
			}, {
				indexed: !0,
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "OwnershipTransferStarted",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !0,
				internalType: "address",
				name: "previousOwner",
				type: "address"
			}, {
				indexed: !0,
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "OwnershipTransferred",
			type: "event"
		},
		{
			inputs: [],
			name: "acceptOwnership",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [],
			name: "getEth",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [],
			name: "getSender",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "uint256[]",
					name: "",
					type: "uint256[]"
				},
				{
					internalType: "uint256[]",
					name: "",
					type: "uint256[]"
				},
				{
					internalType: "bytes",
					name: "",
					type: "bytes"
				}
			],
			name: "onERC1155BatchReceived",
			outputs: [{
				internalType: "bytes4",
				name: "",
				type: "bytes4"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "uint256",
					name: "",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "",
					type: "uint256"
				},
				{
					internalType: "bytes",
					name: "",
					type: "bytes"
				}
			],
			name: "onERC1155Received",
			outputs: [{
				internalType: "bytes4",
				name: "",
				type: "bytes4"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "uint256",
					name: "",
					type: "uint256"
				},
				{
					internalType: "bytes",
					name: "",
					type: "bytes"
				}
			],
			name: "onERC721Received",
			outputs: [{
				internalType: "bytes4",
				name: "",
				type: "bytes4"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [],
			name: "owner",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "pendingOwner",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "renounceOwnership",
			outputs: [],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_hinkal",
				type: "address"
			}],
			name: "setHinkalAddress",
			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: [
				{
					components: [
						{
							internalType: "uint8",
							name: "v",
							type: "uint8"
						},
						{
							internalType: "bytes32",
							name: "r",
							type: "bytes32"
						},
						{
							internalType: "bytes32",
							name: "s",
							type: "bytes32"
						}
					],
					internalType: "struct Signature",
					name: "proofSignature",
					type: "tuple"
				},
				{
					internalType: "uint256[2]",
					name: "a",
					type: "uint256[2]"
				},
				{
					internalType: "uint256[2][2]",
					name: "b",
					type: "uint256[2][2]"
				},
				{
					internalType: "uint256[2]",
					name: "c",
					type: "uint256[2]"
				},
				{
					components: [
						{
							internalType: "uint16",
							name: "tokenNumber",
							type: "uint16"
						},
						{
							internalType: "uint16",
							name: "nullifierAmount",
							type: "uint16"
						},
						{
							internalType: "uint16",
							name: "outputAmount",
							type: "uint16"
						}
					],
					internalType: "struct Dimensions",
					name: "dimensions",
					type: "tuple"
				},
				{
					components: [
						{
							internalType: "uint256",
							name: "rootHashHinkal",
							type: "uint256"
						},
						{
							internalType: "address[]",
							name: "erc20TokenAddresses",
							type: "address[]"
						},
						{
							internalType: "uint256[]",
							name: "tokenIds",
							type: "uint256[]"
						},
						{
							internalType: "int256[]",
							name: "amountChanges",
							type: "int256[]"
						},
						{
							internalType: "bool[]",
							name: "onChainCreation",
							type: "bool[]"
						},
						{
							internalType: "int256[]",
							name: "slippageValues",
							type: "int256[]"
						},
						{
							internalType: "uint256[][]",
							name: "inputNullifiers",
							type: "uint256[][]"
						},
						{
							internalType: "uint256[][]",
							name: "outCommitments",
							type: "uint256[][]"
						},
						{
							internalType: "bytes[][]",
							name: "encryptedOutputs",
							type: "bytes[][]"
						},
						{
							components: [
								{
									internalType: "address",
									name: "feeToken",
									type: "address"
								},
								{
									internalType: "uint256",
									name: "flatFee",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "variableRate",
									type: "uint256"
								}
							],
							internalType: "struct FeeStructure",
							name: "feeStructure",
							type: "tuple"
						},
						{
							internalType: "uint256",
							name: "timeStamp",
							type: "uint256"
						},
						{
							components: [
								{
									internalType: "uint256",
									name: "extraRandomization",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "stealthAddress",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "H0",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "H1",
									type: "uint256"
								}
							],
							internalType: "struct StealthAddressStructure",
							name: "stealthAddressStructure",
							type: "tuple"
						},
						{
							internalType: "uint256",
							name: "rootHashAccessToken",
							type: "uint256"
						},
						{
							internalType: "uint256",
							name: "calldataHash",
							type: "uint256"
						},
						{
							internalType: "uint16",
							name: "publicSignalCount",
							type: "uint16"
						},
						{
							internalType: "address",
							name: "relay",
							type: "address"
						},
						{
							internalType: "address",
							name: "externalAddress",
							type: "address"
						},
						{
							internalType: "uint256",
							name: "externalActionId",
							type: "uint256"
						},
						{
							internalType: "bytes",
							name: "externalActionMetadata",
							type: "bytes"
						},
						{
							components: [
								{
									internalType: "uint256",
									name: "hinkalLogicAction",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "inHinkalAddress",
									type: "uint256"
								},
								{
									internalType: "int256[]",
									name: "executeApprovalChanges",
									type: "int256[]"
								},
								{
									internalType: "bool",
									name: "doPreTxApproval",
									type: "bool"
								},
								{
									components: [
										{
											internalType: "int256[]",
											name: "approvalChanges",
											type: "int256[]"
										},
										{
											internalType: "address[]",
											name: "externalApprovalAddresses",
											type: "address[]"
										},
										{
											internalType: "uint256[]",
											name: "conversionInHinkalAddress",
											type: "uint256[]"
										}
									],
									internalType: "struct UseApprovalUTXOData[]",
									name: "useApprovalUtxoData",
									type: "tuple[]"
								}
							],
							internalType: "struct HinkalLogicArgs",
							name: "hinkalLogicArgs",
							type: "tuple"
						},
						{
							components: [
								{
									internalType: "address",
									name: "preHookContract",
									type: "address"
								},
								{
									internalType: "address",
									name: "hookContract",
									type: "address"
								},
								{
									internalType: "bytes",
									name: "preHookMetadata",
									type: "bytes"
								},
								{
									internalType: "bytes",
									name: "postHookMetadata",
									type: "bytes"
								}
							],
							internalType: "struct HookData",
							name: "hookData",
							type: "tuple"
						},
						{
							components: [
								{
									internalType: "uint8",
									name: "v",
									type: "uint8"
								},
								{
									internalType: "bytes32",
									name: "r",
									type: "bytes32"
								},
								{
									internalType: "bytes32",
									name: "s",
									type: "bytes32"
								},
								{
									internalType: "uint256",
									name: "accessKey",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "nonce",
									type: "uint256"
								},
								{
									internalType: "address",
									name: "ethereumAddress",
									type: "address"
								}
							],
							internalType: "struct SignatureData",
							name: "signatureData",
							type: "tuple"
						},
						{
							internalType: "address",
							name: "originalSender",
							type: "address"
						}
					],
					internalType: "struct CircomData",
					name: "circomData",
					type: "tuple"
				}
			],
			name: "transact",
			outputs: [],
			stateMutability: "payable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "transferOwnership",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			stateMutability: "payable",
			type: "receive"
		}
	],
	depositOnChainUtxosExternalActionABI: [
		{
			inputs: [{
				internalType: "address[]",
				name: "_allowedRecipients",
				type: "address[]"
			}, {
				internalType: "address",
				name: "_hinkalWrapper",
				type: "address"
			}],
			stateMutability: "nonpayable",
			type: "constructor"
		},
		{
			anonymous: !1,
			inputs: [
				{
					indexed: !1,
					internalType: "address",
					name: "sender",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "address",
					name: "tokenAddress",
					type: "address"
				},
				{
					indexed: !1,
					internalType: "uint256",
					name: "amount",
					type: "uint256"
				}
			],
			name: "BlockedUtxosCreated",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !0,
				internalType: "address",
				name: "previousOwner",
				type: "address"
			}, {
				indexed: !0,
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "OwnershipTransferStarted",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !0,
				internalType: "address",
				name: "previousOwner",
				type: "address"
			}, {
				indexed: !0,
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "OwnershipTransferred",
			type: "event"
		},
		{
			inputs: [],
			name: "acceptOwnership",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "uint256[]",
					name: "",
					type: "uint256[]"
				},
				{
					internalType: "uint256[]",
					name: "",
					type: "uint256[]"
				},
				{
					internalType: "bytes",
					name: "",
					type: "bytes"
				}
			],
			name: "onERC1155BatchReceived",
			outputs: [{
				internalType: "bytes4",
				name: "",
				type: "bytes4"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "uint256",
					name: "",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "",
					type: "uint256"
				},
				{
					internalType: "bytes",
					name: "",
					type: "bytes"
				}
			],
			name: "onERC1155Received",
			outputs: [{
				internalType: "bytes4",
				name: "",
				type: "bytes4"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "address",
					name: "",
					type: "address"
				},
				{
					internalType: "uint256",
					name: "",
					type: "uint256"
				},
				{
					internalType: "bytes",
					name: "",
					type: "bytes"
				}
			],
			name: "onERC721Received",
			outputs: [{
				internalType: "bytes4",
				name: "",
				type: "bytes4"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [],
			name: "owner",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "pendingOwner",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "renounceOwnership",
			outputs: [],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				components: [
					{
						internalType: "uint256",
						name: "rootHashHinkal",
						type: "uint256"
					},
					{
						internalType: "address[]",
						name: "erc20TokenAddresses",
						type: "address[]"
					},
					{
						internalType: "uint256[]",
						name: "tokenIds",
						type: "uint256[]"
					},
					{
						internalType: "int256[]",
						name: "amountChanges",
						type: "int256[]"
					},
					{
						internalType: "bool[]",
						name: "onChainCreation",
						type: "bool[]"
					},
					{
						internalType: "int256[]",
						name: "slippageValues",
						type: "int256[]"
					},
					{
						internalType: "uint256[][]",
						name: "inputNullifiers",
						type: "uint256[][]"
					},
					{
						internalType: "uint256[][]",
						name: "outCommitments",
						type: "uint256[][]"
					},
					{
						internalType: "bytes[][]",
						name: "encryptedOutputs",
						type: "bytes[][]"
					},
					{
						components: [
							{
								internalType: "address",
								name: "feeToken",
								type: "address"
							},
							{
								internalType: "uint256",
								name: "flatFee",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "variableRate",
								type: "uint256"
							}
						],
						internalType: "struct FeeStructure",
						name: "feeStructure",
						type: "tuple"
					},
					{
						internalType: "uint256",
						name: "timeStamp",
						type: "uint256"
					},
					{
						components: [
							{
								internalType: "uint256",
								name: "extraRandomization",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "stealthAddress",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "H0",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "H1",
								type: "uint256"
							}
						],
						internalType: "struct StealthAddressStructure",
						name: "stealthAddressStructure",
						type: "tuple"
					},
					{
						internalType: "uint256",
						name: "rootHashAccessToken",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "calldataHash",
						type: "uint256"
					},
					{
						internalType: "uint16",
						name: "publicSignalCount",
						type: "uint16"
					},
					{
						internalType: "address",
						name: "relay",
						type: "address"
					},
					{
						internalType: "address",
						name: "externalAddress",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "externalActionId",
						type: "uint256"
					},
					{
						internalType: "bytes",
						name: "externalActionMetadata",
						type: "bytes"
					},
					{
						components: [
							{
								internalType: "uint256",
								name: "hinkalLogicAction",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "inHinkalAddress",
								type: "uint256"
							},
							{
								internalType: "int256[]",
								name: "executeApprovalChanges",
								type: "int256[]"
							},
							{
								internalType: "bool",
								name: "doPreTxApproval",
								type: "bool"
							},
							{
								components: [
									{
										internalType: "int256[]",
										name: "approvalChanges",
										type: "int256[]"
									},
									{
										internalType: "address[]",
										name: "externalApprovalAddresses",
										type: "address[]"
									},
									{
										internalType: "uint256[]",
										name: "conversionInHinkalAddress",
										type: "uint256[]"
									}
								],
								internalType: "struct UseApprovalUTXOData[]",
								name: "useApprovalUtxoData",
								type: "tuple[]"
							}
						],
						internalType: "struct HinkalLogicArgs",
						name: "hinkalLogicArgs",
						type: "tuple"
					},
					{
						components: [
							{
								internalType: "address",
								name: "preHookContract",
								type: "address"
							},
							{
								internalType: "address",
								name: "hookContract",
								type: "address"
							},
							{
								internalType: "bytes",
								name: "preHookMetadata",
								type: "bytes"
							},
							{
								internalType: "bytes",
								name: "postHookMetadata",
								type: "bytes"
							}
						],
						internalType: "struct HookData",
						name: "hookData",
						type: "tuple"
					},
					{
						components: [
							{
								internalType: "uint8",
								name: "v",
								type: "uint8"
							},
							{
								internalType: "bytes32",
								name: "r",
								type: "bytes32"
							},
							{
								internalType: "bytes32",
								name: "s",
								type: "bytes32"
							},
							{
								internalType: "uint256",
								name: "accessKey",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "nonce",
								type: "uint256"
							},
							{
								internalType: "address",
								name: "ethereumAddress",
								type: "address"
							}
						],
						internalType: "struct SignatureData",
						name: "signatureData",
						type: "tuple"
					},
					{
						internalType: "address",
						name: "originalSender",
						type: "address"
					}
				],
				internalType: "struct CircomData",
				name: "circomData",
				type: "tuple"
			}, {
				internalType: "int256[]",
				name: "deltaAmounts",
				type: "int256[]"
			}],
			name: "runAction",
			outputs: [{
				components: [
					{
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					},
					{
						internalType: "address",
						name: "erc20Address",
						type: "address"
					},
					{
						components: [
							{
								internalType: "uint256",
								name: "extraRandomization",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "stealthAddress",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "H0",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "H1",
								type: "uint256"
							}
						],
						internalType: "struct StealthAddressStructure",
						name: "stealthAddressStructure",
						type: "tuple"
					},
					{
						internalType: "uint256",
						name: "timeStamp",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "tokenId",
						type: "uint256"
					}
				],
				internalType: "struct UTXO[]",
				name: "",
				type: "tuple[]"
			}],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address[]",
				name: "recipients",
				type: "address[]"
			}],
			name: "setAllowedRecipients",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_hinkalWrapper",
				type: "address"
			}],
			name: "setHinkalWrapper",
			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: "newOwner",
				type: "address"
			}],
			name: "transferOwnership",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			stateMutability: "payable",
			type: "receive"
		}
	],
	hinkalHelperABI: [
		{
			inputs: [
				{
					internalType: "bool",
					name: "_enabled",
					type: "bool"
				},
				{
					internalType: "address",
					name: "_accessToken",
					type: "address"
				},
				{
					internalType: "uint256[]",
					name: "_stakeCircuitIds",
					type: "uint256[]"
				},
				{
					internalType: "address[]",
					name: "_gasTokens",
					type: "address[]"
				},
				{
					internalType: "address[]",
					name: "_initialRelays",
					type: "address[]"
				},
				{
					internalType: "address[]",
					name: "_limitTokens",
					type: "address[]"
				},
				{
					internalType: "uint256[]",
					name: "_tokenLimits",
					type: "uint256[]"
				}
			],
			stateMutability: "nonpayable",
			type: "constructor"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "address",
				name: "erc20Token",
				type: "address"
			}],
			name: "GasTokenAdded",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "address",
				name: "erc20Token",
				type: "address"
			}],
			name: "GasTokenRemoved",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !0,
				internalType: "address",
				name: "previousOwner",
				type: "address"
			}, {
				indexed: !0,
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "OwnershipTransferred",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "bool",
				name: "isEnabled",
				type: "bool"
			}],
			name: "RegistryStateChanged",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "address",
				name: "relayAddress",
				type: "address"
			}],
			name: "RelayAdded",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "address",
				name: "relayAddress",
				type: "address"
			}],
			name: "RelayRemoved",
			type: "event"
		},
		{
			anonymous: !1,
			inputs: [{
				indexed: !1,
				internalType: "address",
				name: "erc20Token",
				type: "address"
			}, {
				indexed: !1,
				internalType: "uint256",
				name: "tokenLimit",
				type: "uint256"
			}],
			name: "TokenLimit",
			type: "event"
		},
		{
			inputs: [],
			name: "MAX_AMOUNT",
			outputs: [{
				internalType: "int256",
				name: "",
				type: "int256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "POINTER_SEPARATOR",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "accessToken",
			outputs: [{
				internalType: "contract IAccessToken",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_relayAddress",
				type: "address"
			}],
			name: "addRelay",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "uint256",
					name: "balance",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "flatFee",
					type: "uint256"
				},
				{
					internalType: "uint256",
					name: "variableRate",
					type: "uint256"
				}
			],
			name: "calculateRelayFee",
			outputs: [{
				internalType: "uint256",
				name: "relayFee",
				type: "uint256"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address[]",
				name: "_gasTokens",
				type: "address[]"
			}, {
				internalType: "bool[]",
				name: "values",
				type: "bool[]"
			}],
			name: "changeGasTokens",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "bool",
				name: "_enabled",
				type: "bool"
			}],
			name: "changeState",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address[]",
				name: "erc20TokenAddresses",
				type: "address[]"
			}, {
				internalType: "int256[]",
				name: "amountChanges",
				type: "int256[]"
			}],
			name: "checkTokenRegistry",
			outputs: [{
				internalType: "bool",
				name: "limitHit",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "enabled",
			outputs: [{
				internalType: "bool",
				name: "",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			name: "gasTokens",
			outputs: [{
				internalType: "bool",
				name: "",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "H",
				type: "uint256"
			}],
			name: "getPointSign",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "H",
				type: "uint256"
			}],
			name: "getPointY",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "pure",
			type: "function"
		},
		{
			inputs: [],
			name: "getRelayStore",
			outputs: [{
				internalType: "address[]",
				name: "",
				type: "address[]"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_token",
				type: "address"
			}],
			name: "getTokenLimit",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "hinkalAddress",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "token",
				type: "address"
			}],
			name: "isGasToken",
			outputs: [{
				internalType: "bool",
				name: "",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "relayAddress",
				type: "address"
			}],
			name: "isRelayInList",
			outputs: [{
				internalType: "bool",
				name: "",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [],
			name: "owner",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [
				{
					components: [
						{
							internalType: "uint256",
							name: "rootHashHinkal",
							type: "uint256"
						},
						{
							internalType: "address[]",
							name: "erc20TokenAddresses",
							type: "address[]"
						},
						{
							internalType: "uint256[]",
							name: "tokenIds",
							type: "uint256[]"
						},
						{
							internalType: "int256[]",
							name: "amountChanges",
							type: "int256[]"
						},
						{
							internalType: "bool[]",
							name: "onChainCreation",
							type: "bool[]"
						},
						{
							internalType: "int256[]",
							name: "slippageValues",
							type: "int256[]"
						},
						{
							internalType: "uint256[][]",
							name: "inputNullifiers",
							type: "uint256[][]"
						},
						{
							internalType: "uint256[][]",
							name: "outCommitments",
							type: "uint256[][]"
						},
						{
							internalType: "bytes[][]",
							name: "encryptedOutputs",
							type: "bytes[][]"
						},
						{
							components: [
								{
									internalType: "address",
									name: "feeToken",
									type: "address"
								},
								{
									internalType: "uint256",
									name: "flatFee",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "variableRate",
									type: "uint256"
								}
							],
							internalType: "struct FeeStructure",
							name: "feeStructure",
							type: "tuple"
						},
						{
							internalType: "uint256",
							name: "timeStamp",
							type: "uint256"
						},
						{
							components: [
								{
									internalType: "uint256",
									name: "extraRandomization",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "stealthAddress",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "H0",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "H1",
									type: "uint256"
								}
							],
							internalType: "struct StealthAddressStructure",
							name: "stealthAddressStructure",
							type: "tuple"
						},
						{
							internalType: "uint256",
							name: "rootHashAccessToken",
							type: "uint256"
						},
						{
							internalType: "uint256",
							name: "calldataHash",
							type: "uint256"
						},
						{
							internalType: "uint16",
							name: "publicSignalCount",
							type: "uint16"
						},
						{
							internalType: "address",
							name: "relay",
							type: "address"
						},
						{
							internalType: "address",
							name: "externalAddress",
							type: "address"
						},
						{
							internalType: "uint256",
							name: "externalActionId",
							type: "uint256"
						},
						{
							internalType: "bytes",
							name: "externalActionMetadata",
							type: "bytes"
						},
						{
							components: [
								{
									internalType: "uint256",
									name: "hinkalLogicAction",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "inHinkalAddress",
									type: "uint256"
								},
								{
									internalType: "int256[]",
									name: "executeApprovalChanges",
									type: "int256[]"
								},
								{
									internalType: "bool",
									name: "doPreTxApproval",
									type: "bool"
								},
								{
									components: [
										{
											internalType: "int256[]",
											name: "approvalChanges",
											type: "int256[]"
										},
										{
											internalType: "address[]",
											name: "externalApprovalAddresses",
											type: "address[]"
										},
										{
											internalType: "uint256[]",
											name: "conversionInHinkalAddress",
											type: "uint256[]"
										}
									],
									internalType: "struct UseApprovalUTXOData[]",
									name: "useApprovalUtxoData",
									type: "tuple[]"
								}
							],
							internalType: "struct HinkalLogicArgs",
							name: "hinkalLogicArgs",
							type: "tuple"
						},
						{
							components: [
								{
									internalType: "address",
									name: "preHookContract",
									type: "address"
								},
								{
									internalType: "address",
									name: "hookContract",
									type: "address"
								},
								{
									internalType: "bytes",
									name: "preHookMetadata",
									type: "bytes"
								},
								{
									internalType: "bytes",
									name: "postHookMetadata",
									type: "bytes"
								}
							],
							internalType: "struct HookData",
							name: "hookData",
							type: "tuple"
						},
						{
							components: [
								{
									internalType: "uint8",
									name: "v",
									type: "uint8"
								},
								{
									internalType: "bytes32",
									name: "r",
									type: "bytes32"
								},
								{
									internalType: "bytes32",
									name: "s",
									type: "bytes32"
								},
								{
									internalType: "uint256",
									name: "accessKey",
									type: "uint256"
								},
								{
									internalType: "uint256",
									name: "nonce",
									type: "uint256"
								},
								{
									internalType: "address",
									name: "ethereumAddress",
									type: "address"
								}
							],
							internalType: "struct SignatureData",
							name: "signatureData",
							type: "tuple"
						},
						{
							internalType: "address",
							name: "originalSender",
							type: "address"
						}
					],
					internalType: "struct CircomData",
					name: "circomData",
					type: "tuple"
				},
				{
					components: [
						{
							internalType: "uint16",
							name: "tokenNumber",
							type: "uint16"
						},
						{
							internalType: "uint16",
							name: "nullifierAmount",
							type: "uint16"
						},
						{
							internalType: "uint16",
							name: "outputAmount",
							type: "uint16"
						}
					],
					internalType: "struct Dimensions",
					name: "dimensions",
					type: "tuple"
				},
				{
					internalType: "address",
					name: "sender",
					type: "address"
				}
			],
			name: "performHinkalChecks",
			outputs: [{
				internalType: "uint256[]",
				name: "",
				type: "uint256[]"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [
				{
					internalType: "address[]",
					name: "erc20Addresses",
					type: "address[]"
				},
				{
					internalType: "uint256[]",
					name: "amounts",
					type: "uint256[]"
				},
				{
					internalType: "uint256[]",
					name: "tokenIds",
					type: "uint256[]"
				},
				{
					components: [
						{
							internalType: "uint256",
							name: "extraRandomization",
							type: "uint256"
						},
						{
							internalType: "uint256",
							name: "stealthAddress",
							type: "uint256"
						},
						{
							internalType: "uint256",
							name: "H0",
							type: "uint256"
						},
						{
							internalType: "uint256",
							name: "H1",
							type: "uint256"
						}
					],
					internalType: "struct StealthAddressStructure[]",
					name: "stealthAddressStructures",
					type: "tuple[]"
				}
			],
			name: "performProoflessDepositChecks",
			outputs: [{
				internalType: "bool",
				name: "",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				components: [
					{
						internalType: "uint256",
						name: "rootHashHinkal",
						type: "uint256"
					},
					{
						internalType: "address[]",
						name: "erc20TokenAddresses",
						type: "address[]"
					},
					{
						internalType: "uint256[]",
						name: "tokenIds",
						type: "uint256[]"
					},
					{
						internalType: "int256[]",
						name: "amountChanges",
						type: "int256[]"
					},
					{
						internalType: "bool[]",
						name: "onChainCreation",
						type: "bool[]"
					},
					{
						internalType: "int256[]",
						name: "slippageValues",
						type: "int256[]"
					},
					{
						internalType: "uint256[][]",
						name: "inputNullifiers",
						type: "uint256[][]"
					},
					{
						internalType: "uint256[][]",
						name: "outCommitments",
						type: "uint256[][]"
					},
					{
						internalType: "bytes[][]",
						name: "encryptedOutputs",
						type: "bytes[][]"
					},
					{
						components: [
							{
								internalType: "address",
								name: "feeToken",
								type: "address"
							},
							{
								internalType: "uint256",
								name: "flatFee",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "variableRate",
								type: "uint256"
							}
						],
						internalType: "struct FeeStructure",
						name: "feeStructure",
						type: "tuple"
					},
					{
						internalType: "uint256",
						name: "timeStamp",
						type: "uint256"
					},
					{
						components: [
							{
								internalType: "uint256",
								name: "extraRandomization",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "stealthAddress",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "H0",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "H1",
								type: "uint256"
							}
						],
						internalType: "struct StealthAddressStructure",
						name: "stealthAddressStructure",
						type: "tuple"
					},
					{
						internalType: "uint256",
						name: "rootHashAccessToken",
						type: "uint256"
					},
					{
						internalType: "uint256",
						name: "calldataHash",
						type: "uint256"
					},
					{
						internalType: "uint16",
						name: "publicSignalCount",
						type: "uint16"
					},
					{
						internalType: "address",
						name: "relay",
						type: "address"
					},
					{
						internalType: "address",
						name: "externalAddress",
						type: "address"
					},
					{
						internalType: "uint256",
						name: "externalActionId",
						type: "uint256"
					},
					{
						internalType: "bytes",
						name: "externalActionMetadata",
						type: "bytes"
					},
					{
						components: [
							{
								internalType: "uint256",
								name: "hinkalLogicAction",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "inHinkalAddress",
								type: "uint256"
							},
							{
								internalType: "int256[]",
								name: "executeApprovalChanges",
								type: "int256[]"
							},
							{
								internalType: "bool",
								name: "doPreTxApproval",
								type: "bool"
							},
							{
								components: [
									{
										internalType: "int256[]",
										name: "approvalChanges",
										type: "int256[]"
									},
									{
										internalType: "address[]",
										name: "externalApprovalAddresses",
										type: "address[]"
									},
									{
										internalType: "uint256[]",
										name: "conversionInHinkalAddress",
										type: "uint256[]"
									}
								],
								internalType: "struct UseApprovalUTXOData[]",
								name: "useApprovalUtxoData",
								type: "tuple[]"
							}
						],
						internalType: "struct HinkalLogicArgs",
						name: "hinkalLogicArgs",
						type: "tuple"
					},
					{
						components: [
							{
								internalType: "address",
								name: "preHookContract",
								type: "address"
							},
							{
								internalType: "address",
								name: "hookContract",
								type: "address"
							},
							{
								internalType: "bytes",
								name: "preHookMetadata",
								type: "bytes"
							},
							{
								internalType: "bytes",
								name: "postHookMetadata",
								type: "bytes"
							}
						],
						internalType: "struct HookData",
						name: "hookData",
						type: "tuple"
					},
					{
						components: [
							{
								internalType: "uint8",
								name: "v",
								type: "uint8"
							},
							{
								internalType: "bytes32",
								name: "r",
								type: "bytes32"
							},
							{
								internalType: "bytes32",
								name: "s",
								type: "bytes32"
							},
							{
								internalType: "uint256",
								name: "accessKey",
								type: "uint256"
							},
							{
								internalType: "uint256",
								name: "nonce",
								type: "uint256"
							},
							{
								internalType: "address",
								name: "ethereumAddress",
								type: "address"
							}
						],
						internalType: "struct SignatureData",
						name: "signatureData",
						type: "tuple"
					},
					{
						internalType: "address",
						name: "originalSender",
						type: "address"
					}
				],
				internalType: "struct CircomData",
				name: "circomData",
				type: "tuple"
			}],
			name: "performSideEffects",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			name: "relayList",
			outputs: [{
				internalType: "bool",
				name: "",
				type: "bool"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			name: "relayStore",
			outputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_relayAddress",
				type: "address"
			}],
			name: "removeRelay",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [],
			name: "renounceOwnership",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_accessToken",
				type: "address"
			}],
			name: "setAccessToken",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "_hinkalAddress",
				type: "address"
			}],
			name: "setHinkalAddress",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address[]",
				name: "_tokens",
				type: "address[]"
			}, {
				internalType: "uint256[]",
				name: "_tokenLimits",
				type: "uint256[]"
			}],
			name: "setTokenLimits",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "",
				type: "address"
			}],
			name: "tokenLimits",
			outputs: [{
				internalType: "uint256",
				name: "",
				type: "uint256"
			}],
			stateMutability: "view",
			type: "function"
		},
		{
			inputs: [{
				internalType: "address",
				name: "newOwner",
				type: "address"
			}],
			name: "transferOwnership",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		},
		{
			inputs: [{
				internalType: "uint256",
				name: "externalActionId",
				type: "uint256"
			}, {
				internalType: "bool",
				name: "value",
				type: "bool"
			}],
			name: "updateStakeCircuits",
			outputs: [],
			stateMutability: "nonpayable",
			type: "function"
		}
	]
};
//#endregion
export { e as default };
