@ecp.eth/sdk / defaultExports / ChannelManagerABI
Variable: ChannelManagerABI
const ChannelManagerABI: readonly [{
inputs: readonly [{
internalType: "address";
name: "initialOwner";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
stateMutability: "payable";
type: "receive";
}, {
inputs: readonly [{
internalType: "address";
name: "to";
type: "address";
}, {
internalType: "uint256";
name: "tokenId";
type: "uint256";
}];
name: "approve";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "balanceOf";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "postFeeAmountForwardedToHook";
type: "uint256";
}];
name: "calculateMsgValueWithHookFee";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "cancelOwnershipHandover";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "channelId";
type: "uint256";
}];
name: "channelExists";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}, {
internalType: "bytes32";
name: "";
type: "bytes32";
}];
name: "channelMetadata";
outputs: readonly [{
internalType: "bytes";
name: "";
type: "bytes";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}, {
internalType: "uint256";
name: "";
type: "uint256";
}];
name: "channelMetadataKeys";
outputs: readonly [{
internalType: "bytes32";
name: "";
type: "bytes32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "collectCommentCreationFee";
outputs: readonly [{
internalType: "uint96";
name: "";
type: "uint96";
}];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "pendingOwner";
type: "address";
}];
name: "completeOwnershipHandover";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "description";
type: "string";
}, {
components: readonly [{
internalType: "bytes32";
name: "key";
type: "bytes32";
}, {
internalType: "bytes";
name: "value";
type: "bytes";
}];
internalType: "struct Metadata.MetadataEntry[]";
name: "metadata";
type: "tuple[]";
}, {
internalType: "address";
name: "hook";
type: "address";
}];
name: "createChannel";
outputs: readonly [{
internalType: "uint256";
name: "channelId";
type: "uint256";
}];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "value";
type: "uint256";
}];
name: "deductProtocolHookTransactionFee";
outputs: readonly [{
internalType: "uint256";
name: "hookValue";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "tokenId";
type: "uint256";
}];
name: "getApproved";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "channelId";
type: "uint256";
}];
name: "getChannel";
outputs: readonly [{
components: readonly [{
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "description";
type: "string";
}, {
internalType: "address";
name: "hook";
type: "address";
}, {
components: readonly [{
internalType: "bool";
name: "onInitialize";
type: "bool";
}, {
internalType: "bool";
name: "onCommentAdd";
type: "bool";
}, {
internalType: "bool";
name: "onCommentDelete";
type: "bool";
}, {
internalType: "bool";
name: "onCommentEdit";
type: "bool";
}, {
internalType: "bool";
name: "onChannelUpdate";
type: "bool";
}, {
internalType: "bool";
name: "onCommentHookDataUpdate";
type: "bool";
}];
internalType: "struct Hooks.Permissions";
name: "permissions";
type: "tuple";
}];
internalType: "struct Channels.Channel";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getChannelCreationFee";
outputs: readonly [{
internalType: "uint96";
name: "";
type: "uint96";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "channelId";
type: "uint256";
}];
name: "getChannelMetadata";
outputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "key";
type: "bytes32";
}, {
internalType: "bytes";
name: "value";
type: "bytes";
}];
internalType: "struct Metadata.MetadataEntry[]";
name: "";
type: "tuple[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "channelId";
type: "uint256";
}];
name: "getChannelMetadataKeys";
outputs: readonly [{
internalType: "bytes32[]";
name: "";
type: "bytes32[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "channelId";
type: "uint256";
}, {
internalType: "bytes32";
name: "key";
type: "bytes32";
}];
name: "getChannelMetadataValue";
outputs: readonly [{
internalType: "bytes";
name: "";
type: "bytes";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getCommentCreationFee";
outputs: readonly [{
internalType: "uint96";
name: "";
type: "uint96";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getHookTransactionFee";
outputs: readonly [{
internalType: "uint16";
name: "";
type: "uint16";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}, {
internalType: "address";
name: "operator";
type: "address";
}];
name: "isApprovedForAll";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "name";
outputs: readonly [{
internalType: "string";
name: "";
type: "string";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "result";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "tokenId";
type: "uint256";
}];
name: "ownerOf";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "pendingOwner";
type: "address";
}];
name: "ownershipHandoverExpiresAt";
outputs: readonly [{
internalType: "uint256";
name: "result";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "renounceOwnership";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [];
name: "requestOwnershipHandover";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "from";
type: "address";
}, {
internalType: "address";
name: "to";
type: "address";
}, {
internalType: "uint256";
name: "tokenId";
type: "uint256";
}];
name: "safeTransferFrom";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "from";
type: "address";
}, {
internalType: "address";
name: "to";
type: "address";
}, {
internalType: "uint256";
name: "tokenId";
type: "uint256";
}, {
internalType: "bytes";
name: "data";
type: "bytes";
}];
name: "safeTransferFrom";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "operator";
type: "address";
}, {
internalType: "bool";
name: "approved";
type: "bool";
}];
name: "setApprovalForAll";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "string";
name: "baseURI_";
type: "string";
}];
name: "setBaseURI";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint96";
name: "fee";
type: "uint96";
}];
name: "setChannelCreationFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint96";
name: "fee";
type: "uint96";
}];
name: "setCommentCreationFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "channelId";
type: "uint256";
}, {
internalType: "address";
name: "hook";
type: "address";
}];
name: "setHook";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint16";
name: "feeBasisPoints";
type: "uint16";
}];
name: "setHookTransactionFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes4";
name: "interfaceId";
type: "bytes4";
}];
name: "supportsInterface";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "symbol";
outputs: readonly [{
internalType: "string";
name: "";
type: "string";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "index";
type: "uint256";
}];
name: "tokenByIndex";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}, {
internalType: "uint256";
name: "index";
type: "uint256";
}];
name: "tokenOfOwnerByIndex";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "tokenId";
type: "uint256";
}];
name: "tokenURI";
outputs: readonly [{
internalType: "string";
name: "";
type: "string";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "totalSupply";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "from";
type: "address";
}, {
internalType: "address";
name: "to";
type: "address";
}, {
internalType: "uint256";
name: "tokenId";
type: "uint256";
}];
name: "transferFrom";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "channelId";
type: "uint256";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "description";
type: "string";
}, {
components: readonly [{
internalType: "enum Metadata.MetadataOperation";
name: "operation";
type: "uint8";
}, {
internalType: "bytes32";
name: "key";
type: "bytes32";
}, {
internalType: "bytes";
name: "value";
type: "bytes";
}];
internalType: "struct Metadata.MetadataEntryOp[]";
name: "metadataOperations";
type: "tuple[]";
}];
name: "updateChannel";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "recipient";
type: "address";
}];
name: "withdrawFees";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "owner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "approved";
type: "address";
}, {
indexed: true;
internalType: "uint256";
name: "tokenId";
type: "uint256";
}];
name: "Approval";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "owner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "operator";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "approved";
type: "bool";
}];
name: "ApprovalForAll";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "string";
name: "baseURI";
type: "string";
}];
name: "BaseURIUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "channelId";
type: "uint256";
}, {
indexed: false;
internalType: "string";
name: "name";
type: "string";
}, {
indexed: false;
internalType: "string";
name: "description";
type: "string";
}, {
components: readonly [{
internalType: "bytes32";
name: "key";
type: "bytes32";
}, {
internalType: "bytes";
name: "value";
type: "bytes";
}];
indexed: false;
internalType: "struct Metadata.MetadataEntry[]";
name: "metadata";
type: "tuple[]";
}, {
indexed: false;
internalType: "address";
name: "hook";
type: "address";
}, {
indexed: false;
internalType: "address";
name: "owner";
type: "address";
}];
name: "ChannelCreated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint96";
name: "newFee";
type: "uint96";
}];
name: "ChannelCreationFeeUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "channelId";
type: "uint256";
}, {
indexed: true;
internalType: "bytes32";
name: "key";
type: "bytes32";
}, {
indexed: false;
internalType: "bytes";
name: "value";
type: "bytes";
}];
name: "ChannelMetadataSet";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "channelId";
type: "uint256";
}, {
indexed: false;
internalType: "string";
name: "name";
type: "string";
}, {
indexed: false;
internalType: "string";
name: "description";
type: "string";
}, {
components: readonly [{
internalType: "bytes32";
name: "key";
type: "bytes32";
}, {
internalType: "bytes";
name: "value";
type: "bytes";
}];
indexed: false;
internalType: "struct Metadata.MetadataEntry[]";
name: "metadata";
type: "tuple[]";
}];
name: "ChannelUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint96";
name: "newFee";
type: "uint96";
}];
name: "CommentCreationFeeUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "FeesWithdrawn";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "channelId";
type: "uint256";
}, {
indexed: true;
internalType: "address";
name: "hook";
type: "address";
}];
name: "HookSet";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "channelId";
type: "uint256";
}, {
indexed: true;
internalType: "address";
name: "hook";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "HookStatusUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint16";
name: "newBasisPoints";
type: "uint16";
}];
name: "HookTransactionFeeUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "pendingOwner";
type: "address";
}];
name: "OwnershipHandoverCanceled";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "pendingOwner";
type: "address";
}];
name: "OwnershipHandoverRequested";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "oldOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "from";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "to";
type: "address";
}, {
indexed: true;
internalType: "uint256";
name: "tokenId";
type: "uint256";
}];
name: "Transfer";
type: "event";
}, {
inputs: readonly [];
name: "AlreadyInitialized";
type: "error";
}, {
inputs: readonly [];
name: "ChannelAlreadyExists";
type: "error";
}, {
inputs: readonly [];
name: "ChannelDoesNotExist";
type: "error";
}, {
inputs: readonly [];
name: "ERC721EnumerableForbiddenBatchMint";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "sender";
type: "address";
}, {
internalType: "uint256";
name: "tokenId";
type: "uint256";
}, {
internalType: "address";
name: "owner";
type: "address";
}];
name: "ERC721IncorrectOwner";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "operator";
type: "address";
}, {
internalType: "uint256";
name: "tokenId";
type: "uint256";
}];
name: "ERC721InsufficientApproval";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "approver";
type: "address";
}];
name: "ERC721InvalidApprover";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "operator";
type: "address";
}];
name: "ERC721InvalidOperator";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "ERC721InvalidOwner";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "receiver";
type: "address";
}];
name: "ERC721InvalidReceiver";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "sender";
type: "address";
}];
name: "ERC721InvalidSender";
type: "error";
}, {
inputs: readonly [{
internalType: "uint256";
name: "tokenId";
type: "uint256";
}];
name: "ERC721NonexistentToken";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}, {
internalType: "uint256";
name: "index";
type: "uint256";
}];
name: "ERC721OutOfBoundsIndex";
type: "error";
}, {
inputs: readonly [];
name: "EmptyChannelName";
type: "error";
}, {
inputs: readonly [];
name: "HookAlreadySet";
type: "error";
}, {
inputs: readonly [];
name: "InsufficientFee";
type: "error";
}, {
inputs: readonly [];
name: "InvalidBaseURI";
type: "error";
}, {
inputs: readonly [];
name: "InvalidFee";
type: "error";
}, {
inputs: readonly [];
name: "InvalidHookInterface";
type: "error";
}, {
inputs: readonly [];
name: "InvalidKey";
type: "error";
}, {
inputs: readonly [];
name: "NewOwnerIsZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "NoHandoverRequest";
type: "error";
}, {
inputs: readonly [];
name: "Reentrancy";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}, {
inputs: readonly [];
name: "UnauthorizedCaller";
type: "error";
}, {
inputs: readonly [];
name: "ZeroAddress";
type: "error";
}];
Defined in: packages/sdk/src/abis.ts:1975
ABI of the ChannelManager contract.