pimlico_sponsorMagicSpendWithdrawal
This method requests a sponsored withdrawal from FlashFund. It accepts different types of withdrawal parameters based on the withdrawal mode.
Request
For credits mode:
{
"jsonrpc": "2.0",
"method": "pimlico_sponsorMagicSpendWithdrawal",
"params": [
{
"type": "credits",
"data": {
"token": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
"recipient": "0x1234567890123456789012345678901234567890",
"amount": "1000000000000000000",
"signature": "0xabcdef..."
}
},
null
],
"id": 1
}
For pimlico_lock mode:
{
"jsonrpc": "2.0",
"method": "pimlico_sponsorMagicSpendWithdrawal",
"params": [
{
"type": "pimlico_lock",
"data": {
"allowance": {
"account": "0x1234567890123456789012345678901234567890",
"assets": [
{
"token": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
"amount": "1000000000000000000",
"chainId": "11155111"
}
],
"validUntil": "1709308800",
"validAfter": "1709222400",
"salt": "123456",
"version": "1",
"metadata": "0x"
},
"signature": "0xabcdef..."
}
},
null
],
"id": 1
}
For onebalance mode:
{
"jsonrpc": "2.0",
"method": "pimlico_sponsorMagicSpendWithdrawal",
"params": [
{
"type": "onebalance",
"data": {
"quote": {
// Quote object from pimlico_prepareMagicSpendAllowance
},
"amount": "1000000000000000000",
"recipient": "0x1234567890123456789012345678901234567890"
}
},
null
],
"id": 1
}
Response
{
"jsonrpc": "2.0",
"id": 1,
"result": [
"0x1234567890123456789012345678901234567890",
"0xabcdef..."
]
}
Types
type SponsorWithdrawalCreditParams = {
type: "credits";
data: {
token: Address;
recipient: Address;
amount: string;
signature: Hex;
};
};
type SponsorWithdrawalPimlicoLockParams = {
type: "pimlico_lock";
data: {
allowance: MagicSpendAllowance;
signature: Hex;
};
};
type SponsorWithdrawalOneBalanceParams = {
type: "onebalance";
data: {
quote: Quote;
amount: string;
recipient: Address;
};
};
type MagicSpendSponsorWithdrawalResponse = [Address, Hex];