@abstract-foundation/agw-client
Version:
Abstract Global Wallet Client SDK
63 lines • 4.52 kB
JavaScript
import { parseAccount } from "viem/accounts";
import { getChainId, } from "viem/actions";
import { createSession, } from "../../actions/createSession.js";
import { deployContract } from "../../actions/deployContract.js";
import { getCallsStatus } from "../../actions/getCallsStatus.js";
import { getCapabilities } from "../../actions/getCapabilities.js";
import { getLinkedAccounts, } from "../../actions/getLinkedAccounts.js";
import { isLinkedAccount, } from "../../actions/getLinkedAgw.js";
import { getSessionStatus } from "../../actions/getSessionStatus.js";
import { prepareTransactionRequest, } from "../../actions/prepareTransaction.js";
import { revokeSessions, } from "../../actions/revokeSessions.js";
import { sendCalls } from "../../actions/sendCalls.js";
import { sendTransaction } from "../../actions/sendTransaction.js";
import { sendTransactionBatch } from "../../actions/sendTransactionBatch.js";
import { sendTransactionSync } from "../../actions/sendTransactionSync.js";
import { signMessage } from "../../actions/signMessage.js";
import { signTransaction } from "../../actions/signTransaction.js";
import { signTransactionBatch } from "../../actions/signTransactionBatch.js";
import { signTypedData } from "../../actions/signTypedData.js";
import { writeContract } from "../../actions/writeContract.js";
import { writeContractSync } from "../../actions/writeContractSync.js";
import { EOA_VALIDATOR_ADDRESS } from "../../constants.js";
import { toSessionClient } from "../sessionClient.js";
export function globalWalletActions(signerClient, publicClient, isPrivyCrossApp = false, customPaymasterHandler) {
return (client) => ({
getChainId: () => getChainId(client),
getLinkedAccounts: () => getLinkedAccounts(client, {
agwAddress: parseAccount(client.account).address,
}),
isLinkedAccount: (args) => isLinkedAccount(client, args),
createSession: (args) => createSession(client, args),
revokeSessions: (args) => revokeSessions(client, args),
prepareAbstractTransactionRequest: (args) => prepareTransactionRequest(client, signerClient, publicClient, args),
sendTransaction: (args) => sendTransaction(client, signerClient, publicClient, args, isPrivyCrossApp, customPaymasterHandler),
sendTransactionBatch: (args) => sendTransactionBatch(client, signerClient, publicClient, args, isPrivyCrossApp, customPaymasterHandler),
signMessage: (args) => signMessage(client, signerClient, args, isPrivyCrossApp),
signTransaction: (args) => signTransaction(client, signerClient, publicClient, args, EOA_VALIDATOR_ADDRESS, {}, customPaymasterHandler, isPrivyCrossApp),
signTransactionBatch: (args) => signTransactionBatch(client, signerClient, publicClient, args, EOA_VALIDATOR_ADDRESS, {}, customPaymasterHandler, isPrivyCrossApp),
signTypedData: (args) => signTypedData(client, signerClient, publicClient, args, isPrivyCrossApp),
deployContract: (args) => deployContract(client, signerClient, publicClient, args, isPrivyCrossApp),
writeContract: (args) => writeContract(Object.assign(client, {
sendTransaction: (args) => sendTransaction(client, signerClient, publicClient, args, isPrivyCrossApp, customPaymasterHandler),
}), signerClient, publicClient, args, isPrivyCrossApp),
sendTransactionSync: (args) => sendTransactionSync(client, signerClient, publicClient, args, isPrivyCrossApp, customPaymasterHandler),
writeContractSync: (args) => writeContractSync(client, signerClient, publicClient, args, isPrivyCrossApp, customPaymasterHandler),
toSessionClient: (signer, session) => toSessionClient({
client: client,
signer,
session: session,
paymasterHandler: customPaymasterHandler,
}),
getSessionStatus: (sessionHashOrConfig) => getSessionStatus(publicClient, parseAccount(client.account).address, sessionHashOrConfig),
/** EIP-5792 actions - see https://eips.ethereum.org/EIPS/eip-5792 */
getCallsStatus: (args) => getCallsStatus(publicClient, args),
sendCalls: (args) => sendCalls(client, signerClient, publicClient, args, isPrivyCrossApp, customPaymasterHandler),
getCapabilities: (args) => getCapabilities(client, args),
showCallsStatus: (_args) => {
// requires UI implementation; not implemented in raw client
return Promise.resolve();
},
});
}
//# sourceMappingURL=abstract.js.map