{
  "contract": "Origin",
  "source": "contracts/src/Origin.sol",
  "compiler": "solc 0.8.24 · OpenZeppelin 5.4.0",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "treasury_",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timelockDelay_",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "l1Confirmations_",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "attesters_",
          "type": "address[]"
        },
        {
          "internalType": "uint256",
          "name": "threshold_",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AccessControlBadConfirmation",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "neededRole",
          "type": "bytes32"
        }
      ],
      "name": "AccessControlUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ECDSAInvalidSignature",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "ECDSAInvalidSignatureLength",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "ECDSAInvalidSignatureS",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "EnforcedPause",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ExpectedPause",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidShortString",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ReentrancyGuardReentrantCall",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "str",
          "type": "string"
        }
      ],
      "name": "StringTooLong",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "attester",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "allowed",
          "type": "bool"
        }
      ],
      "name": "AttesterSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldThreshold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newThreshold",
          "type": "uint256"
        }
      ],
      "name": "AttesterThresholdUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "l1Confirmations",
          "type": "uint256"
        }
      ],
      "name": "ConfirmationsUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bps",
          "type": "uint256"
        }
      ],
      "name": "CreatorShareSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "EIP712DomainChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "factId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "quarantined",
          "type": "bool"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "FactQuarantined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "requestId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "creatorCut",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "treasuryCut",
          "type": "uint256"
        }
      ],
      "name": "FactRequestFulfilled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "requestId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "requester",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "FactRequestRefunded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "requestId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "subject",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "plugId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "requester",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "FactRequested",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "subject",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "l1Height",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "attestedAt",
          "type": "uint64"
        }
      ],
      "name": "FactSubmitted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "paused",
          "type": "bool"
        }
      ],
      "name": "FactTypePaused",
      "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": "plugs",
          "type": "address"
        }
      ],
      "name": "PlugsSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "RequestFeeSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "seconds_",
          "type": "uint256"
        }
      ],
      "name": "RequestTimeoutSet",
      "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": "bytes32",
          "name": "actionId",
          "type": "bytes32"
        }
      ],
      "name": "TimelockCancelled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldDelay",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newDelay",
          "type": "uint256"
        }
      ],
      "name": "TimelockDelayUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "actionId",
          "type": "bytes32"
        }
      ],
      "name": "TimelockExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "actionId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "executeAfter",
          "type": "uint256"
        }
      ],
      "name": "TimelockQueued",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "treasury",
          "type": "address"
        }
      ],
      "name": "TreasurySet",
      "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": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Withdrawn",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ADDRESS_LINK",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "BPS",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "COLLECTION_COUNT",
      "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": "DOGE_BALANCE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DRC20_BALANCE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DRC20_MAX_SUPPLY",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DRC20_MINTED",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DRC20_TRANSFER_VALID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "FACT_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GOVERNANCE_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "INSCRIPTION_ACTION",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "INSCRIPTION_ENVELOPE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "INSCRIPTION_OWNER",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "INSCRIPTION_VALID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "L1_TIP",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_CONFIRMATIONS",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_CREATOR_SHARE_BPS",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_EXPIRY_SKEW",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_FUTURE_SKEW",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_REQUEST_FEE",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_REQUEST_TIMEOUT",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_TIMELOCK_DELAY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MIN_CONFIRMATIONS",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MIN_REQUEST_TIMEOUT",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MIN_TIMELOCK_DELAY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "OP_EQ",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "OP_GT",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "OP_GTE",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "OP_LT",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "OP_LTE",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PAUSER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "TX_INCLUDED",
      "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": "account",
          "type": "address"
        }
      ],
      "name": "accountKey",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "tag",
          "type": "string"
        },
        {
          "internalType": "bytes",
          "name": "args",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "actionId",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "action",
          "type": "string"
        }
      ],
      "name": "actionKey",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "attester",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "addAttester",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "dogeAddress",
          "type": "string"
        }
      ],
      "name": "addressKey",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "attesterThreshold",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "cancelAction",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "subject",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "internalType": "uint8",
          "name": "op",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "threshold",
          "type": "uint256"
        },
        {
          "internalType": "uint64",
          "name": "maxAge",
          "type": "uint64"
        }
      ],
      "name": "check",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "dogeAddress",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "collectionId",
          "type": "string"
        }
      ],
      "name": "collectionCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "count",
          "type": "uint256"
        },
        {
          "internalType": "uint64",
          "name": "l1Height",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "attestedAt",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "collectionId",
          "type": "string"
        }
      ],
      "name": "collectionKey",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "consumedTimelockActions",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "creatorShareBps",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "dogeAddressOf",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "dogeAddressHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "linkedAt",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "dogeAddress",
          "type": "string"
        }
      ],
      "name": "dogeBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "koinu",
          "type": "uint256"
        },
        {
          "internalType": "uint64",
          "name": "l1Height",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "attestedAt",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "dogeAddress",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "tick",
          "type": "string"
        }
      ],
      "name": "drc20Balance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint64",
          "name": "l1Height",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "attestedAt",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "tick",
          "type": "string"
        }
      ],
      "name": "drc20Supply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "minted",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxSupply",
          "type": "uint256"
        },
        {
          "internalType": "uint64",
          "name": "l1Height",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "txid",
          "type": "bytes32"
        }
      ],
      "name": "drc20TransferValid",
      "outputs": [
        {
          "internalType": "bool",
          "name": "ok",
          "type": "bool"
        },
        {
          "internalType": "uint64",
          "name": "l1Height",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "eip712Domain",
      "outputs": [
        {
          "internalType": "bytes1",
          "name": "fields",
          "type": "bytes1"
        },
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "version",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "verifyingContract",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        },
        {
          "internalType": "uint256[]",
          "name": "extensions",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "subject",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        }
      ],
      "name": "fact",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "l1BlockHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "l1Height",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "attestedAt",
              "type": "uint64"
            }
          ],
          "internalType": "struct IOrigin.StoredFact",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "factType",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "subject",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "key",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "uint64",
              "name": "l1Height",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "l1BlockHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "currentL1Height",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "attestedAt",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "expiry",
              "type": "uint64"
            }
          ],
          "internalType": "struct IOrigin.Fact",
          "name": "f",
          "type": "tuple"
        }
      ],
      "name": "factDigest",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "factQuarantined",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "factTypePaused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "requestId",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "factType",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "subject",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "key",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "uint64",
              "name": "l1Height",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "l1BlockHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "currentL1Height",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "attestedAt",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "expiry",
              "type": "uint64"
            }
          ],
          "internalType": "struct IOrigin.Fact",
          "name": "f",
          "type": "tuple"
        },
        {
          "internalType": "bytes[]",
          "name": "sigs",
          "type": "bytes[]"
        }
      ],
      "name": "fulfillRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAttesters",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "requestId",
          "type": "uint256"
        }
      ],
      "name": "getRequest",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint96",
              "name": "fee",
              "type": "uint96"
            },
            {
              "internalType": "bytes32",
              "name": "factType",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "subject",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "key",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "plugId",
              "type": "uint256"
            },
            {
              "internalType": "uint64",
              "name": "createdAt",
              "type": "uint64"
            },
            {
              "internalType": "enum IOrigin.RequestStatus",
              "name": "status",
              "type": "uint8"
            }
          ],
          "internalType": "struct IOrigin.FactRequest",
          "name": "",
          "type": "tuple"
        }
      ],
      "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"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "grantDogeSoftRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "pure",
      "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": "string",
          "name": "inscriptionId",
          "type": "string"
        }
      ],
      "name": "inscriptionAction",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "actionHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "envelopeHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "l1Height",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "inscriptionId",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "action",
          "type": "string"
        }
      ],
      "name": "inscriptionHasAction",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "inscriptionId",
          "type": "string"
        }
      ],
      "name": "inscriptionKey",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "inscriptionId",
          "type": "string"
        },
        {
          "internalType": "bytes32",
          "name": "envelopeHash",
          "type": "bytes32"
        }
      ],
      "name": "inscriptionMatches",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "inscriptionId",
          "type": "string"
        }
      ],
      "name": "inscriptionOwner",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "ownerHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "l1Height",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "attestedAt",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "inscriptionId",
          "type": "string"
        }
      ],
      "name": "inscriptionValid",
      "outputs": [
        {
          "internalType": "bool",
          "name": "ok",
          "type": "bool"
        },
        {
          "internalType": "bytes32",
          "name": "contentHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "l1Height",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isAttester",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "inscriptionId",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "dogeAddress",
          "type": "string"
        }
      ],
      "name": "isInscriptionOwner",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "dogeAddress",
          "type": "string"
        }
      ],
      "name": "isLinked",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "l1ConfirmationsRequired",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "l1Tip",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "height",
          "type": "uint64"
        },
        {
          "internalType": "bytes32",
          "name": "blockHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "attestedAt",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "originVersion",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "owed",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        }
      ],
      "name": "pauseFactType",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "plugs",
      "outputs": [
        {
          "internalType": "contract IOriginPlugs",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "queueAction",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "requestId",
          "type": "uint256"
        }
      ],
      "name": "reclaimRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "attester",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "removeAttester",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "subject",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "plugId",
          "type": "uint256"
        }
      ],
      "name": "requestFact",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "requestId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "requestFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "requestNonce",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "requestTimeout",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "revokeDogeSoftRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newThreshold",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "setAttesterThreshold",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newL1Confirmations",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "setConfirmations",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bps",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "setCreatorShare",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "plugs_",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "setPlugs",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "subject",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "quarantined",
          "type": "bool"
        },
        {
          "internalType": "string",
          "name": "reason",
          "type": "string"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "setQuarantine",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "fee",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "setRequestFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "seconds_",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "setRequestTimeout",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newDelay",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "setTimelockDelay",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "treasury_",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "setTreasury",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "factType",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "subject",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "key",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "uint64",
              "name": "l1Height",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "l1BlockHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "currentL1Height",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "attestedAt",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "expiry",
              "type": "uint64"
            }
          ],
          "internalType": "struct IOrigin.Fact",
          "name": "f",
          "type": "tuple"
        },
        {
          "internalType": "bytes[]",
          "name": "sigs",
          "type": "bytes[]"
        }
      ],
      "name": "submit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "factType",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "subject",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "key",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "uint64",
              "name": "l1Height",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "l1BlockHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "currentL1Height",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "attestedAt",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "expiry",
              "type": "uint64"
            }
          ],
          "internalType": "struct IOrigin.Fact[]",
          "name": "fs",
          "type": "tuple[]"
        },
        {
          "internalType": "bytes[][]",
          "name": "sigs",
          "type": "bytes[][]"
        }
      ],
      "name": "submitBatch",
      "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": "string",
          "name": "tick",
          "type": "string"
        }
      ],
      "name": "tickKey",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "timelockActions",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "executeAfter",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "timelockDelay",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "treasury",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "txid",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "minConfirmations",
          "type": "uint256"
        }
      ],
      "name": "txConfirmed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "ok",
          "type": "bool"
        },
        {
          "internalType": "uint64",
          "name": "l1Height",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "factType",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "unpauseFactType",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "factType",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "subject",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "key",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "uint64",
              "name": "l1Height",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "l1BlockHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "currentL1Height",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "attestedAt",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "expiry",
              "type": "uint64"
            }
          ],
          "internalType": "struct IOrigin.Fact",
          "name": "f",
          "type": "tuple"
        },
        {
          "internalType": "bytes[]",
          "name": "sigs",
          "type": "bytes[]"
        }
      ],
      "name": "verify",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "selectors": {
    "ADDRESS_LINK()": "19e731ce",
    "BPS()": "249d39e9",
    "COLLECTION_COUNT()": "6ae21770",
    "DEFAULT_ADMIN_ROLE()": "a217fddf",
    "DOGE_BALANCE()": "115dde49",
    "DRC20_BALANCE()": "db0d1e83",
    "DRC20_MAX_SUPPLY()": "3b44abcb",
    "DRC20_MINTED()": "96555e0b",
    "DRC20_TRANSFER_VALID()": "4911fa2d",
    "FACT_TYPEHASH()": "973e90f4",
    "GOVERNANCE_ROLE()": "f36c8f5c",
    "INSCRIPTION_ACTION()": "728771b6",
    "INSCRIPTION_ENVELOPE()": "f10b40ee",
    "INSCRIPTION_OWNER()": "a03053d9",
    "INSCRIPTION_VALID()": "cbe61dc2",
    "L1_TIP()": "7dd63095",
    "MAX_CONFIRMATIONS()": "60cf0b01",
    "MAX_CREATOR_SHARE_BPS()": "7aab2f69",
    "MAX_EXPIRY_SKEW()": "bf2588aa",
    "MAX_FUTURE_SKEW()": "15db04fc",
    "MAX_REQUEST_FEE()": "513e35d0",
    "MAX_REQUEST_TIMEOUT()": "6172890c",
    "MAX_TIMELOCK_DELAY()": "2a083ca3",
    "MIN_CONFIRMATIONS()": "9e42509e",
    "MIN_REQUEST_TIMEOUT()": "047e7a40",
    "MIN_TIMELOCK_DELAY()": "169070eb",
    "OP_EQ()": "16bcf3af",
    "OP_GT()": "dd383d06",
    "OP_GTE()": "43bb9521",
    "OP_LT()": "418de6ed",
    "OP_LTE()": "1df503ee",
    "PAUSER_ROLE()": "e63ab1e9",
    "TX_INCLUDED()": "5cd298b4",
    "VERSION()": "ffa1ad74",
    "accountKey(address)": "f5b46825",
    "actionId(string,bytes,bytes32)": "2f2cd951",
    "actionKey(string)": "4cd8e454",
    "addAttester(address,bytes32)": "017cf9a2",
    "addressKey(string)": "a90ac61d",
    "attesterThreshold()": "9cb20b73",
    "cancelAction(bytes32)": "781cc3d3",
    "check(bytes32,bytes32,bytes32,uint8,uint256,uint64)": "d1fdabbb",
    "collectionCount(string,string)": "8a975ad0",
    "collectionKey(string)": "5001bac9",
    "consumedTimelockActions(bytes32)": "f611b95d",
    "creatorShareBps()": "b1a25c94",
    "dogeAddressOf(address)": "7e583448",
    "dogeBalance(string)": "7de465ce",
    "drc20Balance(string,string)": "d19ba30d",
    "drc20Supply(string)": "9f0200fa",
    "drc20TransferValid(bytes32)": "1c59eeda",
    "eip712Domain()": "84b0196e",
    "fact(bytes32,bytes32,bytes32)": "35e0c1d8",
    "factDigest((bytes32,bytes32,bytes32,uint256,uint64,bytes32,uint64,uint64,uint64))": "0cd2399b",
    "factQuarantined(bytes32)": "6f7f875c",
    "factTypePaused(bytes32)": "d0c5670b",
    "fulfillRequest(uint256,(bytes32,bytes32,bytes32,uint256,uint64,bytes32,uint64,uint64,uint64),bytes[])": "0c3fef10",
    "getAttesters()": "4ed7e435",
    "getRequest(uint256)": "c58343ef",
    "getRoleAdmin(bytes32)": "248a9ca3",
    "grantDogeSoftRole(bytes32,address,bytes32)": "b2e88671",
    "grantRole(bytes32,address)": "2f2ff15d",
    "hasRole(bytes32,address)": "91d14854",
    "inscriptionAction(string)": "7151f737",
    "inscriptionHasAction(string,string)": "2e5d2f81",
    "inscriptionKey(string)": "4f63444c",
    "inscriptionMatches(string,bytes32)": "8543334b",
    "inscriptionOwner(string)": "ab6a4ff7",
    "inscriptionValid(string)": "cf3be731",
    "isAttester(address)": "b6ebe539",
    "isInscriptionOwner(string,string)": "0a9e1b0f",
    "isLinked(address,string)": "e7622e59",
    "l1ConfirmationsRequired()": "f096fa2c",
    "l1Tip()": "5fa1f818",
    "originVersion()": "41daa4c4",
    "owed(address)": "df18e047",
    "pause()": "8456cb59",
    "pauseFactType(bytes32)": "6f9c6a13",
    "paused()": "5c975abb",
    "plugs()": "e945bb92",
    "queueAction(bytes32)": "f9c703f4",
    "reclaimRequest(uint256)": "a372b5e3",
    "removeAttester(address,bytes32)": "a1d71134",
    "renounceRole(bytes32,address)": "36568abe",
    "requestFact(bytes32,bytes32,bytes32,uint256)": "fc5a4e42",
    "requestFee(bytes32)": "b6d0cd4a",
    "requestNonce()": "7c1a0302",
    "requestTimeout()": "3f20b4c9",
    "revokeDogeSoftRole(bytes32,address,bytes32)": "e00f7965",
    "revokeRole(bytes32,address)": "d547741f",
    "setAttesterThreshold(uint256,bytes32)": "f7a15792",
    "setConfirmations(uint256,bytes32)": "303aa111",
    "setCreatorShare(uint256,bytes32)": "da148280",
    "setPlugs(address,bytes32)": "e3834858",
    "setQuarantine(bytes32,bytes32,bytes32,bool,string,bytes32)": "4d9f8536",
    "setRequestFee(bytes32,uint256,bytes32)": "df082531",
    "setRequestTimeout(uint256,bytes32)": "85587111",
    "setTimelockDelay(uint256,bytes32)": "ec49825a",
    "setTreasury(address,bytes32)": "850ab690",
    "submit((bytes32,bytes32,bytes32,uint256,uint64,bytes32,uint64,uint64,uint64),bytes[])": "9c2de22e",
    "submitBatch((bytes32,bytes32,bytes32,uint256,uint64,bytes32,uint64,uint64,uint64)[],bytes[][])": "cfaf7a0f",
    "supportsInterface(bytes4)": "01ffc9a7",
    "tickKey(string)": "6d9dd0c2",
    "timelockActions(bytes32)": "4afb48d6",
    "timelockDelay()": "eef09bad",
    "treasury()": "61d027b3",
    "txConfirmed(bytes32,uint256)": "b4300f45",
    "unpause(bytes32)": "2f4dae9f",
    "unpauseFactType(bytes32,bytes32)": "c21dbecd",
    "verify((bytes32,bytes32,bytes32,uint256,uint64,bytes32,uint64,uint64,uint64),bytes[])": "0ace36df",
    "withdraw()": "3ccfd60b"
  },
  "bytecodeSize": 21973
}