Base MCP Server
Official
by base
export const COINBASE_COMMERCE_ABI = [
{
inputs: [
{
internalType: "contract IUniversalRouter",
name: "_uniswap",
type: "address",
},
{ internalType: "contract Permit2", name: "_permit2", type: "address" },
{ internalType: "address", name: "_initialOperator", type: "address" },
{
internalType: "address",
name: "_initialFeeDestination",
type: "address",
},
{
internalType: "contract IWrappedNativeCurrency",
name: "_wrappedNativeCurrency",
type: "address",
},
],
stateMutability: "nonpayable",
type: "constructor",
},
{ inputs: [], name: "AlreadyProcessed", type: "error" },
{ inputs: [], name: "ExpiredIntent", type: "error" },
{
inputs: [
{ internalType: "address", name: "attemptedCurrency", type: "address" },
],
name: "IncorrectCurrency",
type: "error",
},
{ inputs: [], name: "InexactTransfer", type: "error" },
{
inputs: [{ internalType: "uint256", name: "difference", type: "uint256" }],
name: "InsufficientAllowance",
type: "error",
},
{
inputs: [{ internalType: "uint256", name: "difference", type: "uint256" }],
name: "InsufficientBalance",
type: "error",
},
{
inputs: [{ internalType: "int256", name: "difference", type: "int256" }],
name: "InvalidNativeAmount",
type: "error",
},
{ inputs: [], name: "InvalidSignature", type: "error" },
{ inputs: [], name: "InvalidTransferDetails", type: "error" },
{
inputs: [
{ internalType: "address", name: "recipient", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" },
{ internalType: "bool", name: "isRefund", type: "bool" },
{ internalType: "bytes", name: "data", type: "bytes" },
],
name: "NativeTransferFailed",
type: "error",
},
{ inputs: [], name: "NullRecipient", type: "error" },
{ inputs: [], name: "OperatorNotRegistered", type: "error" },
{
inputs: [{ internalType: "bytes", name: "reason", type: "bytes" }],
name: "SwapFailedBytes",
type: "error",
},
{
inputs: [{ internalType: "string", name: "reason", type: "string" }],
name: "SwapFailedString",
type: "error",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "operator",
type: "address",
},
{
indexed: false,
internalType: "address",
name: "feeDestination",
type: "address",
},
],
name: "OperatorRegistered",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "operator",
type: "address",
},
],
name: "OperatorUnregistered",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "OwnershipTransferred",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "account",
type: "address",
},
],
name: "Paused",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "operator",
type: "address",
},
{ indexed: false, internalType: "bytes16", name: "id", type: "bytes16" },
{
indexed: false,
internalType: "address",
name: "recipient",
type: "address",
},
{
indexed: false,
internalType: "address",
name: "sender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "spentAmount",
type: "uint256",
},
{
indexed: false,
internalType: "address",
name: "spentCurrency",
type: "address",
},
],
name: "Transferred",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "account",
type: "address",
},
],
name: "Unpaused",
type: "event",
},
{
inputs: [],
name: "owner",
outputs: [{ internalType: "address", name: "", type: "address" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "paused",
outputs: [{ internalType: "bool", name: "", type: "bool" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "permit2",
outputs: [{ internalType: "contract Permit2", name: "", type: "address" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "registerOperator",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "_feeDestination", type: "address" },
],
name: "registerOperatorWithFeeDestination",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [{ internalType: "address", name: "newSweeper", type: "address" }],
name: "setSweeper",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "uint256", name: "recipientAmount", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
{
internalType: "address payable",
name: "recipient",
type: "address",
},
{
internalType: "address",
name: "recipientCurrency",
type: "address",
},
{
internalType: "address",
name: "refundDestination",
type: "address",
},
{ internalType: "uint256", name: "feeAmount", type: "uint256" },
{ internalType: "bytes16", name: "id", type: "bytes16" },
{ internalType: "address", name: "operator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
{ internalType: "bytes", name: "prefix", type: "bytes" },
],
internalType: "struct TransferIntent",
name: "_intent",
type: "tuple",
},
{
components: [
{ internalType: "address", name: "owner", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
],
internalType: "struct EIP2612SignatureTransferData",
name: "_signatureTransferData",
type: "tuple",
},
],
name: "subsidizedTransferToken",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "uint256", name: "recipientAmount", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
{
internalType: "address payable",
name: "recipient",
type: "address",
},
{
internalType: "address",
name: "recipientCurrency",
type: "address",
},
{
internalType: "address",
name: "refundDestination",
type: "address",
},
{ internalType: "uint256", name: "feeAmount", type: "uint256" },
{ internalType: "bytes16", name: "id", type: "bytes16" },
{ internalType: "address", name: "operator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
{ internalType: "bytes", name: "prefix", type: "bytes" },
],
internalType: "struct TransferIntent",
name: "_intent",
type: "tuple",
},
{ internalType: "uint24", name: "poolFeesTier", type: "uint24" },
],
name: "swapAndTransferUniswapV3Native",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "uint256", name: "recipientAmount", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
{
internalType: "address payable",
name: "recipient",
type: "address",
},
{
internalType: "address",
name: "recipientCurrency",
type: "address",
},
{
internalType: "address",
name: "refundDestination",
type: "address",
},
{ internalType: "uint256", name: "feeAmount", type: "uint256" },
{ internalType: "bytes16", name: "id", type: "bytes16" },
{ internalType: "address", name: "operator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
{ internalType: "bytes", name: "prefix", type: "bytes" },
],
internalType: "struct TransferIntent",
name: "_intent",
type: "tuple",
},
{
components: [
{
components: [
{
components: [
{ internalType: "address", name: "token", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" },
],
internalType: "struct ISignatureTransfer.TokenPermissions",
name: "permitted",
type: "tuple",
},
{ internalType: "uint256", name: "nonce", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
],
internalType: "struct ISignatureTransfer.PermitTransferFrom",
name: "permit",
type: "tuple",
},
{
components: [
{ internalType: "address", name: "to", type: "address" },
{
internalType: "uint256",
name: "requestedAmount",
type: "uint256",
},
],
internalType: "struct ISignatureTransfer.SignatureTransferDetails",
name: "transferDetails",
type: "tuple",
},
{ internalType: "bytes", name: "signature", type: "bytes" },
],
internalType: "struct Permit2SignatureTransferData",
name: "_signatureTransferData",
type: "tuple",
},
{ internalType: "uint24", name: "poolFeesTier", type: "uint24" },
],
name: "swapAndTransferUniswapV3Token",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "uint256", name: "recipientAmount", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
{
internalType: "address payable",
name: "recipient",
type: "address",
},
{
internalType: "address",
name: "recipientCurrency",
type: "address",
},
{
internalType: "address",
name: "refundDestination",
type: "address",
},
{ internalType: "uint256", name: "feeAmount", type: "uint256" },
{ internalType: "bytes16", name: "id", type: "bytes16" },
{ internalType: "address", name: "operator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
{ internalType: "bytes", name: "prefix", type: "bytes" },
],
internalType: "struct TransferIntent",
name: "_intent",
type: "tuple",
},
{ internalType: "address", name: "_tokenIn", type: "address" },
{ internalType: "uint256", name: "maxWillingToPay", type: "uint256" },
{ internalType: "uint24", name: "poolFeesTier", type: "uint24" },
],
name: "swapAndTransferUniswapV3TokenPreApproved",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address payable", name: "destination", type: "address" },
],
name: "sweepETH",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address payable", name: "destination", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" },
],
name: "sweepETHAmount",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "_token", type: "address" },
{ internalType: "address", name: "destination", type: "address" },
],
name: "sweepToken",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "_token", type: "address" },
{ internalType: "address", name: "destination", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" },
],
name: "sweepTokenAmount",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "sweeper",
outputs: [{ internalType: "address", name: "", type: "address" }],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "uint256", name: "recipientAmount", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
{
internalType: "address payable",
name: "recipient",
type: "address",
},
{
internalType: "address",
name: "recipientCurrency",
type: "address",
},
{
internalType: "address",
name: "refundDestination",
type: "address",
},
{ internalType: "uint256", name: "feeAmount", type: "uint256" },
{ internalType: "bytes16", name: "id", type: "bytes16" },
{ internalType: "address", name: "operator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
{ internalType: "bytes", name: "prefix", type: "bytes" },
],
internalType: "struct TransferIntent",
name: "_intent",
type: "tuple",
},
],
name: "transferNative",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [{ internalType: "address", name: "newOwner", type: "address" }],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "uint256", name: "recipientAmount", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
{
internalType: "address payable",
name: "recipient",
type: "address",
},
{
internalType: "address",
name: "recipientCurrency",
type: "address",
},
{
internalType: "address",
name: "refundDestination",
type: "address",
},
{ internalType: "uint256", name: "feeAmount", type: "uint256" },
{ internalType: "bytes16", name: "id", type: "bytes16" },
{ internalType: "address", name: "operator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
{ internalType: "bytes", name: "prefix", type: "bytes" },
],
internalType: "struct TransferIntent",
name: "_intent",
type: "tuple",
},
{
components: [
{
components: [
{
components: [
{ internalType: "address", name: "token", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" },
],
internalType: "struct ISignatureTransfer.TokenPermissions",
name: "permitted",
type: "tuple",
},
{ internalType: "uint256", name: "nonce", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
],
internalType: "struct ISignatureTransfer.PermitTransferFrom",
name: "permit",
type: "tuple",
},
{
components: [
{ internalType: "address", name: "to", type: "address" },
{
internalType: "uint256",
name: "requestedAmount",
type: "uint256",
},
],
internalType: "struct ISignatureTransfer.SignatureTransferDetails",
name: "transferDetails",
type: "tuple",
},
{ internalType: "bytes", name: "signature", type: "bytes" },
],
internalType: "struct Permit2SignatureTransferData",
name: "_signatureTransferData",
type: "tuple",
},
],
name: "transferToken",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "uint256", name: "recipientAmount", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
{
internalType: "address payable",
name: "recipient",
type: "address",
},
{
internalType: "address",
name: "recipientCurrency",
type: "address",
},
{
internalType: "address",
name: "refundDestination",
type: "address",
},
{ internalType: "uint256", name: "feeAmount", type: "uint256" },
{ internalType: "bytes16", name: "id", type: "bytes16" },
{ internalType: "address", name: "operator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
{ internalType: "bytes", name: "prefix", type: "bytes" },
],
internalType: "struct TransferIntent",
name: "_intent",
type: "tuple",
},
],
name: "transferTokenPreApproved",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "unregisterOperator",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "uint256", name: "recipientAmount", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
{
internalType: "address payable",
name: "recipient",
type: "address",
},
{
internalType: "address",
name: "recipientCurrency",
type: "address",
},
{
internalType: "address",
name: "refundDestination",
type: "address",
},
{ internalType: "uint256", name: "feeAmount", type: "uint256" },
{ internalType: "bytes16", name: "id", type: "bytes16" },
{ internalType: "address", name: "operator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
{ internalType: "bytes", name: "prefix", type: "bytes" },
],
internalType: "struct TransferIntent",
name: "_intent",
type: "tuple",
},
{
components: [
{
components: [
{
components: [
{ internalType: "address", name: "token", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" },
],
internalType: "struct ISignatureTransfer.TokenPermissions",
name: "permitted",
type: "tuple",
},
{ internalType: "uint256", name: "nonce", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
],
internalType: "struct ISignatureTransfer.PermitTransferFrom",
name: "permit",
type: "tuple",
},
{
components: [
{ internalType: "address", name: "to", type: "address" },
{
internalType: "uint256",
name: "requestedAmount",
type: "uint256",
},
],
internalType: "struct ISignatureTransfer.SignatureTransferDetails",
name: "transferDetails",
type: "tuple",
},
{ internalType: "bytes", name: "signature", type: "bytes" },
],
internalType: "struct Permit2SignatureTransferData",
name: "_signatureTransferData",
type: "tuple",
},
],
name: "unwrapAndTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "uint256", name: "recipientAmount", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
{
internalType: "address payable",
name: "recipient",
type: "address",
},
{
internalType: "address",
name: "recipientCurrency",
type: "address",
},
{
internalType: "address",
name: "refundDestination",
type: "address",
},
{ internalType: "uint256", name: "feeAmount", type: "uint256" },
{ internalType: "bytes16", name: "id", type: "bytes16" },
{ internalType: "address", name: "operator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
{ internalType: "bytes", name: "prefix", type: "bytes" },
],
internalType: "struct TransferIntent",
name: "_intent",
type: "tuple",
},
],
name: "unwrapAndTransferPreApproved",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "uint256", name: "recipientAmount", type: "uint256" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
{
internalType: "address payable",
name: "recipient",
type: "address",
},
{
internalType: "address",
name: "recipientCurrency",
type: "address",
},
{
internalType: "address",
name: "refundDestination",
type: "address",
},
{ internalType: "uint256", name: "feeAmount", type: "uint256" },
{ internalType: "bytes16", name: "id", type: "bytes16" },
{ internalType: "address", name: "operator", type: "address" },
{ internalType: "bytes", name: "signature", type: "bytes" },
{ internalType: "bytes", name: "prefix", type: "bytes" },
],
internalType: "struct TransferIntent",
name: "_intent",
type: "tuple",
},
],
name: "wrapAndTransfer",
outputs: [],
stateMutability: "payable",
type: "function",
},
{ stateMutability: "payable", type: "receive" },
] as const;