Pular para o conteúdo principal

wallet_sendCalls

A Pali oferece suporte a wallet_sendCalls no estilo EIP-5792 para solicitações em lote EVM. Isso é especialmente importante para smart accounts com passkey, onde múltiplas chamadas podem ser autorizadas com uma única asserção WebAuthn.

Verificar capacidades

const capabilities = await window.ethereum.request({
method: 'wallet_getCapabilities',
params: [account],
});

A Pali reporta suporte atômico para smart accounts com passkey e execução atômica sem suporte para EOAs regulares.

Enviar um lote

const result = await window.ethereum.request({
method: 'wallet_sendCalls',
params: [
{
version: '2.0.0',
from: passkeyAccount,
chainId: '0x39',
atomicRequired: true,
calls: [
{
to: tokenAddress,
value: '0x0',
data: approveCalldata,
},
{
to: spenderAddress,
value: '0x0',
data: transferFromCalldata,
},
],
},
],
});

Comportamento de passkey

Para smart accounts com passkey, a Pali prepara todas as chamadas selecionadas como um único lote de execução de smart account, solicita uma asserção de passkey e envia uma transação. Se a conta ainda não estiver implantada, a implantação e a execução opcional de política inicial podem fazer parte do caminho da primeira transação.

Comportamento de EOA

Para contas EVM regulares, a Pali apresenta as chamadas e envia as chamadas selecionadas sequencialmente. Isso não é o mesmo que atomicidade on-chain. Se uma dapp exige execução verdadeiramente atômica, use uma smart account com passkey ou um contrato projetado para executar chamadas em lote atomicamente.

Métodos de status

wallet_getCallsStatus e wallet_showCallsStatus estão implementados conforme o EIP-5792. wallet_getCallsStatus retorna o objeto de status padrão (100 pendente, 200 confirmado, 500 revertido, 600 parcialmente revertido) com receipts on-chain; wallet_showCallsStatus abre um popup do Pali somente leitura com as mesmas informações. Os id fornecidos pela dapp em wallet_sendCalls são respeitados e retornados. Ids de bundle desconhecidos falham com o erro 5730; ids duplicados fornecidos pela dapp, com 5720.