For the complete documentation index, see llms.txt. This page is also available as Markdown.

Legacy Fee Claims

clanker-sdk


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

Parameter
Type

config?

LegacyFeeClaimsConfig

Returns

LegacyCreatorFees

Properties

Property
Modifier
Type
Defined in

Methods

claimLegacyCreatorFees()

Defined in: src/legacyFeeClaims/claimCreatorFees.ts:229

Claim legacy creator fees.

Parameters

Parameter
Type
Description

input

Token address, version, and locker params (for v0/v1)

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

Parameter
Type
Description

input

Token address, version, and locker params (for v0/v1)

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

Parameter
Type
Description

input

Token address, version, and locker params (for v0/v1)

Returns

LegacyClaimTransactionConfig

Transaction config

getMetaLockerClaimTransaction()

Defined in: src/legacyFeeClaims/claimCreatorFees.ts:184

Get a transaction config for claiming via meta-locker (some v0 tokens).

Parameters

Parameter
Type
Description

locker

`0x${string}`

The locker contract address

positionId

bigint

The Uniswap V3 position NFT ID

Returns

LegacyClaimTransactionConfig

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:

  1. Initialize their ownership of the token's fees, with optional ability to set a different admin key

  2. Update the admin key that can trigger claims

  3. Claim the generated fees for their token

Constructors

Constructor

Defined in: src/legacyFeeClaims/index.ts:268

Parameters

Parameter
Type

config?

LegacyFeeClaimsConfig

Returns

LegacyFeeClaims

Properties

Property
Modifier
Type
Defined in

Methods

getClaimLegacyFeesTransaction()

Defined in: src/legacyFeeClaims/index.ts:285

Build a Base-only transaction for claiming legacy fees (v0-v3.1).

Parameters

Parameter
Type
Description

args

Claim arguments

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

Parameter
Type
Description

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

Name
Type
Default value
Defined in

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

args

readonly [`0x${string}`, `0x${string}`, `0x${string}`[]]

-

functionName

"initializeTokenCreator"

-

getLegacyClaimableFees()

Defined in: src/legacyFeeClaims/index.ts:425

Estimate claimable Uniswap v3 LP fees for a legacy position on Base.

Parameters

Parameter
Type
Description

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

Parameter
Type
Description

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

Parameter
Type
Description

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

Name
Type
Default value
Defined in

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

args

readonly [`0x${string}`, `0x${string}`, `0x${string}`]

-

functionName

"tokenCreatorTransfer"

-

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

Parameter
Type
Description

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

Name
Type
Default value
Defined in

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

args

readonly [`0x${string}`, `0x${string}`]

-

functionName

"updateTokenCreator"

-

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

Parameter
Type
Description

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

Parameter
Type
Description

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

Parameter
Type
Description

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

Parameter
Type
Description

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

Parameter
Type
Description

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

Parameter
Type
Description

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

Property
Type
Defined in

TokenCreatorEntry

Defined in: src/legacyFeeClaims/index.ts:831

Interface for token creator entries in the CSV data

Properties

Property
Type
Defined in

currentCreator

`0x${string}`

tokenAddress

`0x${string}`

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

Name
Type
Description
Defined in

token

`0x${string}`

The Clanker token address

version

2 | 3 | 3.1

Token version

Name
Type
Description
Defined in

lockerParams

Required for v0/v1: locker info from TokenCreated event

token

`0x${string}`

The Clanker token address


LegacyClaimableFees

Defined in: src/legacyFeeClaims/index.ts:245

Result of estimating claimable fees

Properties

Property
Type
Defined in

LegacyClaimArgs

Defined in: src/legacyFeeClaims/index.ts:199

Input arguments for building a legacy fee claim transaction

Properties

Property
Type
Description
Defined in

chainId

number

Must be 8453 (Base)

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)

token

`0x${string}`

The Clanker token contract address

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

Property
Type
Description
Defined in

locker

`0x${string}`

The locker contract address that holds the LP position

positionId

bigint

The Uniswap V3 position NFT ID

recipient

`0x${string}`

The address to receive the fees

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

Name
Type
Default value
Defined in

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

Name
Type
Default value
Defined in

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

Name
Type
Default value
Defined in

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

Parameter
Type
Description

input

Token address, version, and locker params (for v0/v1)

Returns

LegacyClaimTransactionConfig

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

Parameter
Type
Description

publicClient

{ }

Viem public client for Base

args

Claim arguments

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

Parameter
Type
Description

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

Name
Type
Default value
Defined in

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

args

readonly [`0x${string}`, `0x${string}`, `0x${string}`[]]

-

functionName

"initializeTokenCreator"

-


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

Parameter
Type
Description

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

Parameter
Type
Description

entries

Array of token-creator pairs

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

Parameter
Type
Description

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

Name
Type
Default value
Defined in

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

args

readonly [`0x${string}`, `0x${string}`, `0x${string}`]

-

functionName

"tokenCreatorTransfer"

-


getUpdateTokenCreatorTransaction()

Defined in: src/legacyFeeClaims/index.ts:958

Get a transaction config for updating the token creator admin address.

Parameters

Parameter
Type
Description

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

Name
Type
Default value
Defined in

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

args

readonly [`0x${string}`, `0x${string}`]

-

functionName

"updateTokenCreator"

-


parseTokenCreatorCSV()

Defined in: src/legacyFeeClaims/index.ts:902

Parse CSV content into token-creator entries.

Parameters

Parameter
Type
Description

csvContent

string

CSV string with columns: tokenAddress,currentCreator

Returns

TokenCreatorEntry[]

Array of token-creator entries

Last updated