viem
Version:
311 lines • 9.93 kB
TypeScript
import type { Address } from 'abitype';
import type { PrivateKeyAccount } from '../../../accounts/types.js';
import type { Prettify } from '../../../types/utils.js';
import { entryPoint08Abi } from '../../constants/abis.js';
import type { SmartAccount, SmartAccountImplementation } from '../types.js';
export type ToSimple7702SmartAccountParameters = {
client: Simple7702SmartAccountImplementation['client'];
implementation?: Address | undefined;
getNonce?: SmartAccountImplementation['getNonce'] | undefined;
owner: PrivateKeyAccount;
};
export type ToSimple7702SmartAccountReturnType = Prettify<SmartAccount<Simple7702SmartAccountImplementation>>;
export type Simple7702SmartAccountImplementation = SmartAccountImplementation<typeof entryPoint08Abi, '0.8', {
abi: typeof abi;
owner: PrivateKeyAccount;
}, true>;
/**
* @description Create a Simple7702 Smart Account – based off [eth-infinitism's `Simple7702Account.sol`](https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/accounts/Simple7702Account.sol).
*
* @param parameters - {@link ToSimple7702SmartAccountParameters}
* @returns Simple7702 Smart Account. {@link ToSimple7702SmartAccountReturnType}
*
* @example
* import { toSimple7702SmartAccount } from 'viem/account-abstraction'
* import { client } from './client.js'
*
* const implementation = toSimple7702SmartAccount({
* client,
* owner: '0x...',
* })
*/
export declare function toSimple7702SmartAccount(parameters: ToSimple7702SmartAccountParameters): Promise<ToSimple7702SmartAccountReturnType>;
declare const abi: readonly [{
readonly inputs: readonly [];
readonly name: "ECDSAInvalidSignature";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "length";
readonly type: "uint256";
}];
readonly name: "ECDSAInvalidSignatureLength";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "bytes32";
readonly name: "s";
readonly type: "bytes32";
}];
readonly name: "ECDSAInvalidSignatureS";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "index";
readonly type: "uint256";
}, {
readonly internalType: "bytes";
readonly name: "error";
readonly type: "bytes";
}];
readonly name: "ExecuteError";
readonly type: "error";
}, {
readonly stateMutability: "payable";
readonly type: "fallback";
}, {
readonly inputs: readonly [];
readonly name: "entryPoint";
readonly outputs: readonly [{
readonly internalType: "contract IEntryPoint";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "pure";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "target";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "value";
readonly type: "uint256";
}, {
readonly internalType: "bytes";
readonly name: "data";
readonly type: "bytes";
}];
readonly name: "execute";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "target";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "value";
readonly type: "uint256";
}, {
readonly internalType: "bytes";
readonly name: "data";
readonly type: "bytes";
}];
readonly internalType: "struct BaseAccount.Call[]";
readonly name: "calls";
readonly type: "tuple[]";
}];
readonly name: "executeBatch";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "getNonce";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "bytes32";
readonly name: "hash";
readonly type: "bytes32";
}, {
readonly internalType: "bytes";
readonly name: "signature";
readonly type: "bytes";
}];
readonly name: "isValidSignature";
readonly outputs: readonly [{
readonly internalType: "bytes4";
readonly name: "magicValue";
readonly type: "bytes4";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}, {
readonly internalType: "uint256[]";
readonly name: "";
readonly type: "uint256[]";
}, {
readonly internalType: "uint256[]";
readonly name: "";
readonly type: "uint256[]";
}, {
readonly internalType: "bytes";
readonly name: "";
readonly type: "bytes";
}];
readonly name: "onERC1155BatchReceived";
readonly outputs: readonly [{
readonly internalType: "bytes4";
readonly name: "";
readonly type: "bytes4";
}];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}, {
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}, {
readonly internalType: "bytes";
readonly name: "";
readonly type: "bytes";
}];
readonly name: "onERC1155Received";
readonly outputs: readonly [{
readonly internalType: "bytes4";
readonly name: "";
readonly type: "bytes4";
}];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}, {
readonly internalType: "bytes";
readonly name: "";
readonly type: "bytes";
}];
readonly name: "onERC721Received";
readonly outputs: readonly [{
readonly internalType: "bytes4";
readonly name: "";
readonly type: "bytes4";
}];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "bytes4";
readonly name: "id";
readonly type: "bytes4";
}];
readonly name: "supportsInterface";
readonly outputs: readonly [{
readonly internalType: "bool";
readonly name: "";
readonly type: "bool";
}];
readonly stateMutability: "pure";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "sender";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "nonce";
readonly type: "uint256";
}, {
readonly internalType: "bytes";
readonly name: "initCode";
readonly type: "bytes";
}, {
readonly internalType: "bytes";
readonly name: "callData";
readonly type: "bytes";
}, {
readonly internalType: "bytes32";
readonly name: "accountGasLimits";
readonly type: "bytes32";
}, {
readonly internalType: "uint256";
readonly name: "preVerificationGas";
readonly type: "uint256";
}, {
readonly internalType: "bytes32";
readonly name: "gasFees";
readonly type: "bytes32";
}, {
readonly internalType: "bytes";
readonly name: "paymasterAndData";
readonly type: "bytes";
}, {
readonly internalType: "bytes";
readonly name: "signature";
readonly type: "bytes";
}];
readonly internalType: "struct PackedUserOperation";
readonly name: "userOp";
readonly type: "tuple";
}, {
readonly internalType: "bytes32";
readonly name: "userOpHash";
readonly type: "bytes32";
}, {
readonly internalType: "uint256";
readonly name: "missingAccountFunds";
readonly type: "uint256";
}];
readonly name: "validateUserOp";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "validationData";
readonly type: "uint256";
}];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly stateMutability: "payable";
readonly type: "receive";
}];
export {};
//# sourceMappingURL=toSimple7702SmartAccount.d.ts.map