src/lib/aa/coinbaseErc4337
creatorvault-miniapp / src/lib/aa/coinbaseErc4337
src/lib/aa/coinbaseErc4337
Type Aliases
CrossAppSignMessage()
CrossAppSignMessage = (
message,options) =>Promise<string>
Defined in: lib/aa/coinbaseErc4337.ts:688
Cross-app signing function type from Privy's useCrossAppAccounts
Parameters
message
string
options
address
string
Returns
Promise<string>
PublicClientLike
PublicClientLike =
object&Record<string,any>
Defined in: lib/aa/coinbaseErc4337.ts:84
Type Declaration
chain
chain:
object
chain.id
id:
number
readContract()
readContract: (
args) =>Promise<any>
Parameters
args
any
Returns
Promise<any>
WalletClientLike
WalletClientLike =
object&Record<string,any>
Defined in: lib/aa/coinbaseErc4337.ts:89
Type Declaration
request()
request: (
args) =>Promise<any>
Parameters
args
any
Returns
Promise<any>
signMessage()?
optionalsignMessage: (args) =>Promise<any>
Parameters
args
any
Returns
Promise<any>
signTransaction()?
optionalsignTransaction: (args) =>Promise<any>
Parameters
args
any
Returns
Promise<any>
signTypedData()?
optionalsignTypedData: (args) =>Promise<any>
Parameters
args
any
Returns
Promise<any>
Variables
ERC4337_ENTRYPOINT_V06
constERC4337_ENTRYPOINT_V06:`0x${string}`=ENTRYPOINT_V06
Defined in: lib/aa/coinbaseErc4337.ts:385
The canonical EntryPoint v0.6 address used by this module. This is the ONLY EntryPoint version supported.
Functions
assertEntryPointV06()
assertEntryPointV06(
address):void
Defined in: lib/aa/coinbaseErc4337.ts:391
Assert that a given address matches EntryPoint v0.6. Use this to verify configuration matches expectations.
Parameters
address
`0x${string}`
Returns
void
findCoinbaseSmartWalletOwnerIndex()
findCoinbaseSmartWalletOwnerIndex(
params):Promise<{ownerCount:number;ownerIndex:number|null; }>
Defined in: lib/aa/coinbaseErc4337.ts:401
Parameters
params
maxScan?
number
ownerAddress
`0x${string}`
publicClient
smartWallet
`0x${string}`
Returns
Promise<{ ownerCount: number; ownerIndex: number | null; }>
runSignatureExtractionHarness()
runSignatureExtractionHarness():
object[]
Defined in: lib/aa/coinbaseErc4337.ts:312
Returns
object[]
sendCoinbaseSmartWalletUserOperation()
sendCoinbaseSmartWalletUserOperation(
params):Promise<{transactionHash:`0x${string}`;userOpHash:`0x${string}`; }>
Defined in: lib/aa/coinbaseErc4337.ts:875
Parameters
params
bundlerUrl
string
calls
object[]
ownerAddress
`0x${string}`
ownerIsContract?
boolean
publicClient
smartWallet
`0x${string}`
userOpSignMode?
UserOpSignMode
version?
"1" | "1.1"
walletClient
Returns
Promise<{ transactionHash: `0x${string}`; userOpHash: `0x${string}`; }>
sendCrossAppUserOperation()
sendCrossAppUserOperation(
params):Promise<{transactionHash:`0x${string}`;userOpHash:`0x${string}`; }>
Defined in: lib/aa/coinbaseErc4337.ts:747
Send a UserOperation via ERC-4337 using cross-app signing.
This flow:
- Builds the UserOperation for the smart wallet
- Computes the UserOp hash
- Opens a popup to Zora for the user to sign (no gas needed!)
- Submits to bundler with paymaster (paymaster pays gas)
- Waits for on-chain confirmation
Parameters
params
bundlerUrl
string
calls
object[]
crossAppSignMessage
signMessage from useCrossAppAccounts
publicClient
smartWallet
`0x${string}`
The Coinbase Smart Wallet address
version?
"1" | "1.1"
zoraEmbeddedWalletAddress
`0x${string}`
The Zora EOA that will sign
Returns
Promise<{ transactionHash: `0x${string}`; userOpHash: `0x${string}`; }>