@ecp.eth/sdk / channel-manager / updateChannel
Variable: updateChannel()
const updateChannel: (...args) => Promise<WaitableWriteContractHelperResult<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: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
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";
}], "ChannelUpdated">>;
Defined in: packages/sdk/src/channel-manager/channel.ts:236
Update a channel
Parameters
args
...[UpdateChannelParams
]
Returns
Promise
<WaitableWriteContractHelperResult
<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
: ...;
name
: ...;
type
: ...;
}, {
internalType
: ...;
name
: ...;
type
: ...;
}, {
internalType
: ...;
name
: ...;
type
: ...;
}, {
internalType
: ...;
name
: ...;
type
: ...;
}, {
internalType
: ...;
name
: ...;
type
: ...;
}, {
internalType
: ...;
name
: ...;
type
: ...;
}];
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"
;
}], "ChannelUpdated"
>>
The transaction hash of the updated channel