Legacy Fee Claims
clanker-sdk / legacyFeeClaims
legacyFeeClaims
Classes
LegacyCreatorFees
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:146
Legacy Creator Fee Claims for Clanker v0–v3.1 on Base.
Example
const clanker = new LegacyCreatorFees({ wallet, publicClient });
// v2/v3/v3.1 - simple!
await clanker.claimLegacyCreatorFees({ token: '0x...', version: 3.1 });
// v0/v1 - need locker info
await clanker.claimLegacyCreatorFees({
token: '0x...',
version: 1,
lockerParams: { locker: '0x...', positionId: 123n, recipient: '0x...' }
});Constructors
Constructor
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:150
Parameters
config?
LegacyFeeClaimsConfig
Returns
Properties
Methods
claimLegacyCreatorFees()
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:229
Claim legacy creator fees.
Parameters
Returns
Promise< | { error: undefined; txHash: `0x${string}`; } | { error: ClankerError; txHash: undefined; }>
Transaction hash or error
claimLegacyCreatorFeesSimulate()
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:205
Simulate claiming legacy creator fees.
Parameters
account?
Account
Optional account to simulate from
Returns
Promise< | SimulateContractReturnType<Abi | readonly unknown[], string, readonly unknown[], Chain | undefined, undefined, undefined, undefined, readonly [never], undefined> | { error: ClankerError; }>
Simulation result or error
getClaimLegacyCreatorFeesTransaction()
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:170
Get a transaction config for claiming legacy creator fees.
Parameters
Returns
Transaction config
getMetaLockerClaimTransaction()
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:184
Get a transaction config for claiming via meta-locker (some v0 tokens).
Parameters
locker
`0x${string}`
The locker contract address
positionId
bigint
The Uniswap V3 position NFT ID
Returns
Transaction config
LegacyFeeClaims
Defined in: src/legacyFeeClaims/index.ts:264
SDK for claiming legacy fees from Clanker v0-v3.1 tokens.
Creators of Clankers v0-v3.1 can claim their returned fees by interacting with the ClankerSafeErc20Spender contract.
Creators have three main actions:
Initialize their ownership of the token's fees, with optional ability to set a different admin key
Update the admin key that can trigger claims
Claim the generated fees for their token
Constructors
Constructor
Defined in: src/legacyFeeClaims/index.ts:268
Parameters
config?
LegacyFeeClaimsConfig
Returns
Properties
Methods
getClaimLegacyFeesTransaction()
Defined in: src/legacyFeeClaims/index.ts:285
Build a Base-only transaction for claiming legacy fees (v0-v3.1).
Parameters
Returns
Promise<LegacyClaimTx>
Transaction object with { kind, to, data, value? }
getInitializeTokenCreatorTransaction()
Defined in: src/legacyFeeClaims/index.ts:484
Get an abi-typed transaction for initializing token creator ownership.
This must be called once per token by the original creator to claim ownership of the token's fees. During this call, the creator can optionally set a different admin key to manage the token's rewards.
Parameters
token
{ newCreator: `0x${string}`; proof: `0x${string}`[]; token: `0x${string}`; }
The token address to initialize a creator for
token.newCreator
`0x${string}`
-
token.proof
`0x${string}`[]
-
token.token
`0x${string}`
-
Returns
Abi transaction config
abi
readonly [{ inputs: readonly [{ internalType: "address"; name: "owner_"; type: "address"; }, { internalType: "address"; name: "teamSpender_"; type: "address"; }, { internalType: "address[]"; name: "teamGrantedTokens_"; type: "address[]"; }]; stateMutability: "nonpayable"; type: "constructor"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }, { internalType: "bytes32[]"; name: "proof"; type: "bytes32[]"; }]; name: "initializeTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "owner"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "renounceOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "teamSpender_"; type: "address"; }]; name: "setTeamSpender"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot_"; type: "bytes32"; }]; name: "setTokenCreatorRoot"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; name: "teamGrantedTokens"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "teamGrantedTokensMap"; outputs: readonly [{ internalType: "bool"; name: "teamGranted"; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "teamSpender"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "teamTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }]; name: "teamTransferEth"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "tokenCreator"; outputs: readonly [{ internalType: "address"; name: "creator"; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "tokenCreatorRoot"; outputs: readonly [{ internalType: "bytes32"; name: ""; type: "bytes32"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }]; name: "tokenCreatorTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "newOwner"; type: "address"; }]; name: "transferOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }]; name: "updateTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "initializer"; type: "address"; }, { indexed: false; internalType: "address"; name: "creator"; type: "address"; }]; name: "InitializeTokenCreator"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousOwner"; type: "address"; }, { indexed: true; internalType: "address"; name: "newOwner"; type: "address"; }]; name: "OwnershipTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousTeamSpender"; type: "address"; }, { indexed: true; internalType: "address"; name: "newTeamSpender"; type: "address"; }]; name: "SetTeamSpender"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "SetTokenCreatorRoot"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "safe"; type: "address"; }, { indexed: true; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "amount"; type: "uint256"; }, { indexed: false; internalType: "address"; name: "spender"; type: "address"; }, { indexed: true; internalType: "address"; name: "recipient"; type: "address"; }]; name: "Transfer"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "previousCreator"; type: "address"; }, { indexed: false; internalType: "address"; name: "newCreator"; type: "address"; }]; name: "UpdateTokenCreator"; type: "event"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "uint256"; name: "balance"; type: "uint256"; }]; name: "InsufficientBalance"; type: "error"; }, { inputs: readonly []; name: "InvalidProof"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "sender"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }]; name: "NotAuthorizedToSpend"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "owner"; type: "address"; }]; name: "OwnableInvalidOwner"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }]; name: "OwnableUnauthorizedAccount"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "delegate"; type: "address"; }]; name: "TokenCreatorAlreadyInitialized"; type: "error"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "TokenCreatorRootAlreadySet"; type: "error"; }, { inputs: readonly []; name: "TokenCreatorRootNotSet"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "unauthorized"; type: "address"; }]; name: "Unauthorized"; type: "error"; }]
Clanker_v0_abi
address
"0x10F4485d6f90239B72c6A5eaD2F2320993D285E4"
LEGACY_FEE_CLAIMS_ADDRESS
getLegacyClaimableFees()
Defined in: src/legacyFeeClaims/index.ts:425
Estimate claimable Uniswap v3 LP fees for a legacy position on Base.
Parameters
opts
{ chainId: number; positionId: bigint; }
Options with chainId and positionId
opts.chainId
number
-
opts.positionId
bigint
-
Returns
Promise<LegacyClaimableFees>
Claimable fees with position owner, token0, token1, amount0, amount1
getTokenCreator()
Defined in: src/legacyFeeClaims/index.ts:794
Get the stored creator address for a token.
Returns the address that is authorized to claim fees for this token. Returns zero address if the token creator has not been initialized yet.
Parameters
token
{ token: `0x${string}`; }
The token address to check
token.token
`0x${string}`
-
Returns
Promise<`0x${string}`>
The creator address for the token
getTokenCreatorRoot()
Defined in: src/legacyFeeClaims/index.ts:812
Get the current Merkle root used for verifying token creator proofs.
This is used internally by the contract to verify initialization proofs.
Returns
Promise<`0x${string}`>
The current token creator Merkle root
getTokenCreatorTransferTransaction()
Defined in: src/legacyFeeClaims/index.ts:688
Get an abi-typed transaction for claiming token creator fees.
This allows the authorized creator to transfer all accumulated fees from the Safe wallet to any recipient address. Only callable by the authorized creator for the specified token.
Parameters
safe
{ recipient: `0x${string}`; safe: `0x${string}`; token: `0x${string}`; }
The Safe wallet address holding the fees
safe.recipient
`0x${string}`
-
safe.safe
`0x${string}`
-
safe.token
`0x${string}`
-
Returns
Abi transaction config
abi
readonly [{ inputs: readonly [{ internalType: "address"; name: "owner_"; type: "address"; }, { internalType: "address"; name: "teamSpender_"; type: "address"; }, { internalType: "address[]"; name: "teamGrantedTokens_"; type: "address[]"; }]; stateMutability: "nonpayable"; type: "constructor"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }, { internalType: "bytes32[]"; name: "proof"; type: "bytes32[]"; }]; name: "initializeTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "owner"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "renounceOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "teamSpender_"; type: "address"; }]; name: "setTeamSpender"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot_"; type: "bytes32"; }]; name: "setTokenCreatorRoot"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; name: "teamGrantedTokens"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "teamGrantedTokensMap"; outputs: readonly [{ internalType: "bool"; name: "teamGranted"; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "teamSpender"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "teamTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }]; name: "teamTransferEth"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "tokenCreator"; outputs: readonly [{ internalType: "address"; name: "creator"; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "tokenCreatorRoot"; outputs: readonly [{ internalType: "bytes32"; name: ""; type: "bytes32"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }]; name: "tokenCreatorTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "newOwner"; type: "address"; }]; name: "transferOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }]; name: "updateTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "initializer"; type: "address"; }, { indexed: false; internalType: "address"; name: "creator"; type: "address"; }]; name: "InitializeTokenCreator"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousOwner"; type: "address"; }, { indexed: true; internalType: "address"; name: "newOwner"; type: "address"; }]; name: "OwnershipTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousTeamSpender"; type: "address"; }, { indexed: true; internalType: "address"; name: "newTeamSpender"; type: "address"; }]; name: "SetTeamSpender"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "SetTokenCreatorRoot"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "safe"; type: "address"; }, { indexed: true; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "amount"; type: "uint256"; }, { indexed: false; internalType: "address"; name: "spender"; type: "address"; }, { indexed: true; internalType: "address"; name: "recipient"; type: "address"; }]; name: "Transfer"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "previousCreator"; type: "address"; }, { indexed: false; internalType: "address"; name: "newCreator"; type: "address"; }]; name: "UpdateTokenCreator"; type: "event"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "uint256"; name: "balance"; type: "uint256"; }]; name: "InsufficientBalance"; type: "error"; }, { inputs: readonly []; name: "InvalidProof"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "sender"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }]; name: "NotAuthorizedToSpend"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "owner"; type: "address"; }]; name: "OwnableInvalidOwner"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }]; name: "OwnableUnauthorizedAccount"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "delegate"; type: "address"; }]; name: "TokenCreatorAlreadyInitialized"; type: "error"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "TokenCreatorRootAlreadySet"; type: "error"; }, { inputs: readonly []; name: "TokenCreatorRootNotSet"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "unauthorized"; type: "address"; }]; name: "Unauthorized"; type: "error"; }]
Clanker_v0_abi
address
"0x10F4485d6f90239B72c6A5eaD2F2320993D285E4"
LEGACY_FEE_CLAIMS_ADDRESS
getUpdateTokenCreatorTransaction()
Defined in: src/legacyFeeClaims/index.ts:590
Get an abi-typed transaction for updating the token creator admin address.
This allows the current creator to change the address that can trigger claims. Only callable by the current creator address for the specified token.
Parameters
token
{ newCreator: `0x${string}`; token: `0x${string}`; }
The token address to update the creator for
token.newCreator
`0x${string}`
-
token.token
`0x${string}`
-
Returns
Abi transaction config
abi
readonly [{ inputs: readonly [{ internalType: "address"; name: "owner_"; type: "address"; }, { internalType: "address"; name: "teamSpender_"; type: "address"; }, { internalType: "address[]"; name: "teamGrantedTokens_"; type: "address[]"; }]; stateMutability: "nonpayable"; type: "constructor"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }, { internalType: "bytes32[]"; name: "proof"; type: "bytes32[]"; }]; name: "initializeTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "owner"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "renounceOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "teamSpender_"; type: "address"; }]; name: "setTeamSpender"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot_"; type: "bytes32"; }]; name: "setTokenCreatorRoot"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; name: "teamGrantedTokens"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "teamGrantedTokensMap"; outputs: readonly [{ internalType: "bool"; name: "teamGranted"; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "teamSpender"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "teamTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }]; name: "teamTransferEth"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "tokenCreator"; outputs: readonly [{ internalType: "address"; name: "creator"; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "tokenCreatorRoot"; outputs: readonly [{ internalType: "bytes32"; name: ""; type: "bytes32"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }]; name: "tokenCreatorTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "newOwner"; type: "address"; }]; name: "transferOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }]; name: "updateTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "initializer"; type: "address"; }, { indexed: false; internalType: "address"; name: "creator"; type: "address"; }]; name: "InitializeTokenCreator"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousOwner"; type: "address"; }, { indexed: true; internalType: "address"; name: "newOwner"; type: "address"; }]; name: "OwnershipTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousTeamSpender"; type: "address"; }, { indexed: true; internalType: "address"; name: "newTeamSpender"; type: "address"; }]; name: "SetTeamSpender"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "SetTokenCreatorRoot"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "safe"; type: "address"; }, { indexed: true; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "amount"; type: "uint256"; }, { indexed: false; internalType: "address"; name: "spender"; type: "address"; }, { indexed: true; internalType: "address"; name: "recipient"; type: "address"; }]; name: "Transfer"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "previousCreator"; type: "address"; }, { indexed: false; internalType: "address"; name: "newCreator"; type: "address"; }]; name: "UpdateTokenCreator"; type: "event"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "uint256"; name: "balance"; type: "uint256"; }]; name: "InsufficientBalance"; type: "error"; }, { inputs: readonly []; name: "InvalidProof"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "sender"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }]; name: "NotAuthorizedToSpend"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "owner"; type: "address"; }]; name: "OwnableInvalidOwner"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }]; name: "OwnableUnauthorizedAccount"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "delegate"; type: "address"; }]; name: "TokenCreatorAlreadyInitialized"; type: "error"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "TokenCreatorRootAlreadySet"; type: "error"; }, { inputs: readonly []; name: "TokenCreatorRootNotSet"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "unauthorized"; type: "address"; }]; name: "Unauthorized"; type: "error"; }]
Clanker_v0_abi
address
"0x10F4485d6f90239B72c6A5eaD2F2320993D285E4"
LEGACY_FEE_CLAIMS_ADDRESS
initializeTokenCreator()
Defined in: src/legacyFeeClaims/index.ts:552
Initialize token creator ownership to enable fee claims.
This must be called once per token by the original creator. The proof must be obtained from the Clanker team or frontend. During initialization, you can optionally set a different admin address to manage future claims.
Parameters
token
{ newCreator: `0x${string}`; proof: `0x${string}`[]; token: `0x${string}`; }
The token address to initialize a creator for
token.newCreator
`0x${string}`
-
token.proof
`0x${string}`[]
-
token.token
`0x${string}`
-
Returns
Promise< | { error: undefined; txHash: `0x${string}`; } | { error: ClankerError; txHash: undefined; }>
Transaction hash or error
initializeTokenCreatorSimulate()
Defined in: src/legacyFeeClaims/index.ts:510
Simulate initializing token creator ownership.
Parameters
token
{ newCreator: `0x${string}`; proof: `0x${string}`[]; token: `0x${string}`; }
The token address to initialize a creator for
token.newCreator
`0x${string}`
-
token.proof?
`0x${string}`[]
-
token.token?
`0x${string}`
-
account?
Account
Optional account to simulate calling for
Returns
Promise<any>
The simulated output
tokenCreatorTransfer()
Defined in: src/legacyFeeClaims/index.ts:758
Claim token creator fees by transferring them from the Safe to a recipient.
This transfers all accumulated fees for your token to the specified recipient. Only callable by the authorized creator address for the token.
Note: Not all Clanker tokens can be sent to the zero address. If you get an error, consider sending to 0x000000000000000000000000000000000000dEaD instead.
Parameters
safe
{ recipient: `0x${string}`; safe: `0x${string}`; token: `0x${string}`; }
The Safe wallet address holding the fees
safe.recipient
`0x${string}`
-
safe.safe
`0x${string}`
-
safe.token
`0x${string}`
-
Returns
Promise< | { error: undefined; txHash: `0x${string}`; } | { error: ClankerError; txHash: undefined; }>
Transaction hash or error
tokenCreatorTransferSimulate()
Defined in: src/legacyFeeClaims/index.ts:714
Simulate claiming token creator fees.
Parameters
safe
{ recipient: `0x${string}`; safe: `0x${string}`; token: `0x${string}`; }
The Safe wallet address holding the fees
safe.recipient
`0x${string}`
-
safe.safe?
`0x${string}`
-
safe.token?
`0x${string}`
-
account?
Account
Optional account to simulate calling for
Returns
Promise<any>
The simulated output
updateTokenCreator()
Defined in: src/legacyFeeClaims/index.ts:651
Update the token creator admin address.
This allows you to change which address can trigger fee claims for your token. Only callable by the current creator address.
Parameters
token
{ newCreator: `0x${string}`; token: `0x${string}`; }
The token address to update the creator for
token.newCreator
`0x${string}`
-
token.token
`0x${string}`
-
Returns
Promise< | { error: undefined; txHash: `0x${string}`; } | { error: ClankerError; txHash: undefined; }>
Transaction hash or error
updateTokenCreatorSimulate()
Defined in: src/legacyFeeClaims/index.ts:613
Simulate updating the token creator admin address.
Parameters
token
{ newCreator: `0x${string}`; token: `0x${string}`; }
The token address to update the creator for
token.newCreator
`0x${string}`
-
token.token?
`0x${string}`
-
account?
Account
Optional account to simulate calling for
Returns
Promise<any>
The simulated output
Interfaces
MerkleProofResult
Defined in: src/legacyFeeClaims/index.ts:839
Result of merkle proof generation
Properties
TokenCreatorEntry
Defined in: src/legacyFeeClaims/index.ts:831
Interface for token creator entries in the CSV data
Properties
Type Aliases
ClaimLegacyCreatorFeesInput
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:108
Input for claiming legacy creator fees.
For v2/v3/v3.1: Only token and version are required. For v0/v1: Additional lockerParams are required.
Type Declaration
lockerParams
Required for v0/v1: locker info from TokenCreated event
LegacyClaimableFees
Defined in: src/legacyFeeClaims/index.ts:245
Result of estimating claimable fees
Properties
LegacyClaimArgs
Defined in: src/legacyFeeClaims/index.ts:199
Input arguments for building a legacy fee claim transaction
Properties
factory?
`0x${string}`
Factory address (required for v2–v3.1 factory claim)
locker?
`0x${string}`
Locker address (required for v0–v1 locker claim)
positionId?
bigint
Uniswap V3 position NFT ID (required for v0–v1 claim and claimable estimation)
recipient?
`0x${string}`
Recipient address (required for Locker.collectFees)
tokenType?
Token type label (proxy, clanker, clanker_v2, clanker_v3, clanker_v3_1)
walletAddress?
`0x${string}`
Wallet address for v1 deployer gating and optional simulate account
LegacyClaimFeesInput
Defined in: src/legacyFeeClaims/index.ts:219
Deprecated
Use LegacyClaimArgs instead
LegacyClaimFeesTransaction
Defined in: src/legacyFeeClaims/index.ts:240
Deprecated
Use LegacyClaimTx instead
LegacyClaimTransactionConfig
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:83
Transaction config for legacy fee claiming. Compatible with walletClient.writeContract()
Properties
LegacyClaimTx
Defined in: src/legacyFeeClaims/index.ts:232
Transaction output for legacy fee claims
Properties
LegacyClaimTxKind
Defined in: src/legacyFeeClaims/index.ts:224
Transaction kind for legacy fee claims
LegacyTokenType
Defined in: src/legacyFeeClaims/index.ts:55
Legacy token type labels for v0–v3.1
LegacyVersion
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:31
LockerParams
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:93
v0/v1 locker params - required for versions 0 and 1
Properties
locker
`0x${string}`
The locker contract address that holds the LP position
Variables
BASE_CHAIN_ID
Defined in: src/legacyFeeClaims/index.ts:27
Base chain ID
CLANKER_FACTORIES_BASE
Defined in: src/legacyFeeClaims/index.ts:43
Clanker factories on Base (v0–v3.1)
Type Declaration
clanker_v0
"0x250c9FB2b411B48273f69879007803790A6AeA47"
'0x250c9FB2b411B48273f69879007803790A6AeA47'
clanker_v1
"0x9B84fcE5Dcd9a38d2D01d5D72373F6b6b067c3e1"
'0x9B84fcE5Dcd9a38d2D01d5D72373F6b6b067c3e1'
clanker_v2
"0x732560fa1d1A76350b1A500155BA978031B53833"
'0x732560fa1d1A76350b1A500155BA978031B53833'
clanker_v3
"0x375C15db32D28cEcdcAB5C03Ab889bf15cbD2c5E"
'0x375C15db32D28cEcdcAB5C03Ab889bf15cbD2c5E'
clanker_v3_1
"0x2A787b2362021cC3eEa3C24C4748a6cD5B687382"
'0x2A787b2362021cC3eEa3C24C4748a6cD5B687382'
clanker_v3_presale
"0x71cDc0bDF30F5601fb0ac80Cf1d20B771342C035"
'0x71cDc0bDF30F5601fb0ac80Cf1d20B771342C035'
ClankerClaimRewardsAbi
Defined in: src/legacyFeeClaims/index.ts:61
ClankerTokenDeployerAbi
Defined in: src/legacyFeeClaims/index.ts:94
EXPECTED_MERKLE_ROOT
Defined in: src/legacyFeeClaims/index.ts:921
Get the expected merkle root for the current dataset. This is the root that should be set in the contract.
LEGACY_FACTORIES
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:23
Clanker factory addresses on Base by version
Type Declaration
0
"0x250c9FB2b411B48273f69879007803790A6AeA47"
'0x250c9FB2b411B48273f69879007803790A6AeA47'
1
"0x9B84fcE5Dcd9a38d2D01d5D72373F6b6b067c3e1"
'0x9B84fcE5Dcd9a38d2D01d5D72373F6b6b067c3e1'
2
"0x732560fa1d1A76350b1A500155BA978031B53833"
'0x732560fa1d1A76350b1A500155BA978031B53833'
3
"0x375C15db32D28cEcdcAB5C03Ab889bf15cbD2c5E"
'0x375C15db32D28cEcdcAB5C03Ab889bf15cbD2c5E'
3.1
"0x2A787b2362021cC3eEa3C24C4748a6cD5B687382"
'0x2A787b2362021cC3eEa3C24C4748a6cD5B687382'
LEGACY_FEE_CLAIMS_ADDRESS
Defined in: src/legacyFeeClaims/index.ts:185
Contract address for ClankerSafeErc20Spender on Base network
LockerCollectFeesAbi
Defined in: src/legacyFeeClaims/index.ts:71
MetaLockerCollectFeesAbi
Defined in: src/legacyFeeClaims/index.ts:84
NonfungiblePositionManagerCollectAbi
Defined in: src/legacyFeeClaims/index.ts:137
NonfungiblePositionManagerOwnerOfAbi
Defined in: src/legacyFeeClaims/index.ts:104
NonfungiblePositionManagerPositionsAbi
Defined in: src/legacyFeeClaims/index.ts:114
UNISWAP_V3_BASE
Defined in: src/legacyFeeClaims/index.ts:34
Uniswap V3 addresses on Base
Type Declaration
factory
"0x33128a8fC17869897dcE68Ed026d694621f6FDfD"
'0x33128a8fC17869897dcE68Ed026d694621f6FDfD'
nonfungiblePositionManager
"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1"
'0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1'
weth
"0x4200000000000000000000000000000000000006"
'0x4200000000000000000000000000000000000006'
Functions
getClaimLegacyCreatorFeesTransaction()
Defined in: src/legacyFeeClaims/claimCreatorFees.ts:279
Get a transaction config for claiming legacy creator fees.
Parameters
Returns
Transaction config
Example
getClaimLegacyFeesTransaction()
Defined in: src/legacyFeeClaims/index.ts:1012
Build a claim transaction for legacy Clanker v0–v3.1 fees on Base.
v2/v3/v3.1: call factory.claimRewards(token)
v0/v1: call locker.collectFees(recipient, tokenId) or metaLocker.collectFees(tokenId)
Parameters
publicClient
{ }
Viem public client for Base
Returns
Promise<LegacyClaimTx>
Transaction object with { kind, to, data, value? }
getInitializeTokenCreatorTransaction()
Defined in: src/legacyFeeClaims/index.ts:934
Get a transaction config for initializing token creator ownership.
Parameters
token
{ newCreator: `0x${string}`; proof: `0x${string}`[]; token: `0x${string}`; }
The token address to initialize a creator for
token.newCreator
`0x${string}`
-
token.proof
`0x${string}`[]
-
token.token
`0x${string}`
-
Returns
Transaction config
abi
readonly [{ inputs: readonly [{ internalType: "address"; name: "owner_"; type: "address"; }, { internalType: "address"; name: "teamSpender_"; type: "address"; }, { internalType: "address[]"; name: "teamGrantedTokens_"; type: "address[]"; }]; stateMutability: "nonpayable"; type: "constructor"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }, { internalType: "bytes32[]"; name: "proof"; type: "bytes32[]"; }]; name: "initializeTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "owner"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "renounceOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "teamSpender_"; type: "address"; }]; name: "setTeamSpender"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot_"; type: "bytes32"; }]; name: "setTokenCreatorRoot"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; name: "teamGrantedTokens"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "teamGrantedTokensMap"; outputs: readonly [{ internalType: "bool"; name: "teamGranted"; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "teamSpender"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "teamTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }]; name: "teamTransferEth"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "tokenCreator"; outputs: readonly [{ internalType: "address"; name: "creator"; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "tokenCreatorRoot"; outputs: readonly [{ internalType: "bytes32"; name: ""; type: "bytes32"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }]; name: "tokenCreatorTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "newOwner"; type: "address"; }]; name: "transferOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }]; name: "updateTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "initializer"; type: "address"; }, { indexed: false; internalType: "address"; name: "creator"; type: "address"; }]; name: "InitializeTokenCreator"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousOwner"; type: "address"; }, { indexed: true; internalType: "address"; name: "newOwner"; type: "address"; }]; name: "OwnershipTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousTeamSpender"; type: "address"; }, { indexed: true; internalType: "address"; name: "newTeamSpender"; type: "address"; }]; name: "SetTeamSpender"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "SetTokenCreatorRoot"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "safe"; type: "address"; }, { indexed: true; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "amount"; type: "uint256"; }, { indexed: false; internalType: "address"; name: "spender"; type: "address"; }, { indexed: true; internalType: "address"; name: "recipient"; type: "address"; }]; name: "Transfer"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "previousCreator"; type: "address"; }, { indexed: false; internalType: "address"; name: "newCreator"; type: "address"; }]; name: "UpdateTokenCreator"; type: "event"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "uint256"; name: "balance"; type: "uint256"; }]; name: "InsufficientBalance"; type: "error"; }, { inputs: readonly []; name: "InvalidProof"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "sender"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }]; name: "NotAuthorizedToSpend"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "owner"; type: "address"; }]; name: "OwnableInvalidOwner"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }]; name: "OwnableUnauthorizedAccount"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "delegate"; type: "address"; }]; name: "TokenCreatorAlreadyInitialized"; type: "error"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "TokenCreatorRootAlreadySet"; type: "error"; }, { inputs: readonly []; name: "TokenCreatorRootNotSet"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "unauthorized"; type: "address"; }]; name: "Unauthorized"; type: "error"; }]
Clanker_v0_abi
address
"0x10F4485d6f90239B72c6A5eaD2F2320993D285E4"
LEGACY_FEE_CLAIMS_ADDRESS
getLegacyClaimableFees()
Defined in: src/legacyFeeClaims/index.ts:1154
Estimate claimable Uniswap V3 LP fees for a legacy position on Base.
Reads ownerOf(positionId) and simulates collect() to get the claimable amounts.
Parameters
publicClient
{ }
Viem public client for Base
opts
{ chainId: number; positionId: bigint; }
Options with chainId and positionId
opts.chainId
number
-
opts.positionId
bigint
-
Returns
Promise<LegacyClaimableFees>
Claimable fees with positionOwner, token0, token1, amount0, amount1
getTokenCreatorMerkleProof()
Defined in: src/legacyFeeClaims/index.ts:855
Build a merkle tree from token-creator entries and get a proof for a specific token.
Parameters
targetToken
`0x${string}`
The token address to generate a proof for
Returns
MerkleProofResult | null
Merkle proof result or null if token not found
getTokenCreatorTransferTransaction()
Defined in: src/legacyFeeClaims/index.ts:981
Get a transaction config for claiming token creator fees.
Parameters
safe
{ recipient: `0x${string}`; safe: `0x${string}`; token: `0x${string}`; }
The Safe wallet address holding the fees
safe.recipient
`0x${string}`
-
safe.safe
`0x${string}`
-
safe.token
`0x${string}`
-
Returns
Transaction config
abi
readonly [{ inputs: readonly [{ internalType: "address"; name: "owner_"; type: "address"; }, { internalType: "address"; name: "teamSpender_"; type: "address"; }, { internalType: "address[]"; name: "teamGrantedTokens_"; type: "address[]"; }]; stateMutability: "nonpayable"; type: "constructor"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }, { internalType: "bytes32[]"; name: "proof"; type: "bytes32[]"; }]; name: "initializeTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "owner"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "renounceOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "teamSpender_"; type: "address"; }]; name: "setTeamSpender"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot_"; type: "bytes32"; }]; name: "setTokenCreatorRoot"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; name: "teamGrantedTokens"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "teamGrantedTokensMap"; outputs: readonly [{ internalType: "bool"; name: "teamGranted"; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "teamSpender"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "teamTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }]; name: "teamTransferEth"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "tokenCreator"; outputs: readonly [{ internalType: "address"; name: "creator"; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "tokenCreatorRoot"; outputs: readonly [{ internalType: "bytes32"; name: ""; type: "bytes32"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }]; name: "tokenCreatorTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "newOwner"; type: "address"; }]; name: "transferOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }]; name: "updateTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "initializer"; type: "address"; }, { indexed: false; internalType: "address"; name: "creator"; type: "address"; }]; name: "InitializeTokenCreator"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousOwner"; type: "address"; }, { indexed: true; internalType: "address"; name: "newOwner"; type: "address"; }]; name: "OwnershipTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousTeamSpender"; type: "address"; }, { indexed: true; internalType: "address"; name: "newTeamSpender"; type: "address"; }]; name: "SetTeamSpender"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "SetTokenCreatorRoot"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "safe"; type: "address"; }, { indexed: true; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "amount"; type: "uint256"; }, { indexed: false; internalType: "address"; name: "spender"; type: "address"; }, { indexed: true; internalType: "address"; name: "recipient"; type: "address"; }]; name: "Transfer"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "previousCreator"; type: "address"; }, { indexed: false; internalType: "address"; name: "newCreator"; type: "address"; }]; name: "UpdateTokenCreator"; type: "event"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "uint256"; name: "balance"; type: "uint256"; }]; name: "InsufficientBalance"; type: "error"; }, { inputs: readonly []; name: "InvalidProof"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "sender"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }]; name: "NotAuthorizedToSpend"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "owner"; type: "address"; }]; name: "OwnableInvalidOwner"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }]; name: "OwnableUnauthorizedAccount"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "delegate"; type: "address"; }]; name: "TokenCreatorAlreadyInitialized"; type: "error"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "TokenCreatorRootAlreadySet"; type: "error"; }, { inputs: readonly []; name: "TokenCreatorRootNotSet"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "unauthorized"; type: "address"; }]; name: "Unauthorized"; type: "error"; }]
Clanker_v0_abi
address
"0x10F4485d6f90239B72c6A5eaD2F2320993D285E4"
LEGACY_FEE_CLAIMS_ADDRESS
getUpdateTokenCreatorTransaction()
Defined in: src/legacyFeeClaims/index.ts:958
Get a transaction config for updating the token creator admin address.
Parameters
token
{ newCreator: `0x${string}`; token: `0x${string}`; }
The token address to update the creator for
token.newCreator
`0x${string}`
-
token.token
`0x${string}`
-
Returns
Transaction config
abi
readonly [{ inputs: readonly [{ internalType: "address"; name: "owner_"; type: "address"; }, { internalType: "address"; name: "teamSpender_"; type: "address"; }, { internalType: "address[]"; name: "teamGrantedTokens_"; type: "address[]"; }]; stateMutability: "nonpayable"; type: "constructor"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }, { internalType: "bytes32[]"; name: "proof"; type: "bytes32[]"; }]; name: "initializeTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "owner"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "renounceOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "teamSpender_"; type: "address"; }]; name: "setTeamSpender"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot_"; type: "bytes32"; }]; name: "setTokenCreatorRoot"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; name: "teamGrantedTokens"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "teamGrantedTokensMap"; outputs: readonly [{ internalType: "bool"; name: "teamGranted"; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "teamSpender"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }, { internalType: "uint256"; name: "amount"; type: "uint256"; }]; name: "teamTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }]; name: "teamTransferEth"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }]; name: "tokenCreator"; outputs: readonly [{ internalType: "address"; name: "creator"; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "tokenCreatorRoot"; outputs: readonly [{ internalType: "bytes32"; name: ""; type: "bytes32"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "recipient"; type: "address"; }]; name: "tokenCreatorTransfer"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "newOwner"; type: "address"; }]; name: "transferOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "newCreator"; type: "address"; }]; name: "updateTokenCreator"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "initializer"; type: "address"; }, { indexed: false; internalType: "address"; name: "creator"; type: "address"; }]; name: "InitializeTokenCreator"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousOwner"; type: "address"; }, { indexed: true; internalType: "address"; name: "newOwner"; type: "address"; }]; name: "OwnershipTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "previousTeamSpender"; type: "address"; }, { indexed: true; internalType: "address"; name: "newTeamSpender"; type: "address"; }]; name: "SetTeamSpender"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "SetTokenCreatorRoot"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "safe"; type: "address"; }, { indexed: true; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "uint256"; name: "amount"; type: "uint256"; }, { indexed: false; internalType: "address"; name: "spender"; type: "address"; }, { indexed: true; internalType: "address"; name: "recipient"; type: "address"; }]; name: "Transfer"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "address"; name: "token"; type: "address"; }, { indexed: false; internalType: "address"; name: "previousCreator"; type: "address"; }, { indexed: false; internalType: "address"; name: "newCreator"; type: "address"; }]; name: "UpdateTokenCreator"; type: "event"; }, { inputs: readonly [{ internalType: "address"; name: "safe"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }, { internalType: "uint256"; name: "balance"; type: "uint256"; }]; name: "InsufficientBalance"; type: "error"; }, { inputs: readonly []; name: "InvalidProof"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "sender"; type: "address"; }, { internalType: "address"; name: "token"; type: "address"; }]; name: "NotAuthorizedToSpend"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "owner"; type: "address"; }]; name: "OwnableInvalidOwner"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "account"; type: "address"; }]; name: "OwnableUnauthorizedAccount"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "token"; type: "address"; }, { internalType: "address"; name: "delegate"; type: "address"; }]; name: "TokenCreatorAlreadyInitialized"; type: "error"; }, { inputs: readonly [{ internalType: "bytes32"; name: "tokenCreatorRoot"; type: "bytes32"; }]; name: "TokenCreatorRootAlreadySet"; type: "error"; }, { inputs: readonly []; name: "TokenCreatorRootNotSet"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "unauthorized"; type: "address"; }]; name: "Unauthorized"; type: "error"; }]
Clanker_v0_abi
address
"0x10F4485d6f90239B72c6A5eaD2F2320993D285E4"
LEGACY_FEE_CLAIMS_ADDRESS
parseTokenCreatorCSV()
Defined in: src/legacyFeeClaims/index.ts:902
Parse CSV content into token-creator entries.
Parameters
csvContent
string
CSV string with columns: tokenAddress,currentCreator
Returns
Array of token-creator entries
Last updated