KintoWalletFactory
Deployment Address
Mainnet: 0x8a4720488CA32f1223ccFE5A087e250fE3BC5D75
Interface: IKintoWalletFactory.sol
Basics
Creates
KintoWallet
instances using a beacon proxy pattern.Method to fund a
KintoWallet
account with ETH.Ensures KYC compliance of wallet owners through integration with
KintoID
.Supports deployment of custom contracts using
CREATE2
.Manages wallet recovery process.
Handles ETH transfers to various entities within the Kinto ecosystem.
Implements an upgradeable beacon for wallet implementations.
Constructor
Constructor Parameters:
_implAddressP
IKintoWallet
Address of the KintoWallet implementation
_appRegistry
IKintoAppRegistry
Address of the KintoAppRegistry contract
_kintoID
IKintoID
Address of the KintoID contract
Initialize
Initialize Function:
function initialize() external initializer;
Initializes the contract, setting up the beacon and initial wallet version.
State Functions
function upgradeAllWalletImplementations(IKintoWallet newImplementationWallet) external override onlyOwner;
function createAccount(address owner, address recoverer, bytes32 salt) external override returns (IKintoWallet ret);
function startWalletRecovery(address payable wallet) external override;
function completeWalletRecovery(address payable wallet, address[] calldata newSigners) external override;
function approveWalletRecovery(address wallet) external override onlyOwner;
function changeWalletRecoverer(address payable wallet, address _newRecoverer) external override;
function fundWallet(address payable wallet) external payable override;
function claimFromFaucet(address _faucet, IFaucet.SignatureData calldata _signatureData) external override;
function sendMoneyToAccount(address target) external payable override;
function sendMoneyToRecoverer(address wallet, address recoverer) external payable override;
function sendETHToDeployer(address deployer) external payable override;
function sendETHToEOA(address eoa, address app) external payable override;
1. upgradeAllWalletImplementations
(Admin only)
upgradeAllWalletImplementations
(Admin only)Upgrades all wallet implementations to the specified new implementation.
function upgradeAllWalletImplementations(IKintoWallet newImplementationWallet) external override onlyOwner;
newImplementationWallet
IKintoWallet
New wallet implementation address.
2. createAccount
createAccount
Creates an account and returns its address, using bytes32
for salt
.
function createAccount(address owner, address recoverer, bytes32 salt) external override returns (IKintoWallet ret);
owner
address
The owner address.
recoverer
address
The recoverer address.
salt
bytes32
The salt to use for the calculation.
3. startWalletRecovery
(Only callable by recoverer)
startWalletRecovery
(Only callable by recoverer)Initiates the wallet recovery process.
function startWalletRecovery(address payable wallet) external override;
wallet
address
The wallet address
4. completeWalletRecovery
(Only callable by recoverer)
completeWalletRecovery
(Only callable by recoverer)Completes the wallet recovery process.
function completeWalletRecovery(address payable wallet, address[] calldata newSigners) external override;
wallet
address
The wallet address
newSigners
address[]
New signers array
5. approveWalletRecovery
(Admin only)
approveWalletRecovery
(Admin only)Approves a wallet for recovery.
function approveWalletRecovery(address wallet) external override onlyOwner;
wallet
address
The wallet address to approve recovery.
6. changeWalletRecoverer
(Only callable by recoverer)
changeWalletRecoverer
(Only callable by recoverer)Changes the wallet's recoverer.
function changeWalletRecoverer(address payable wallet, address _newRecoverer) external override;
wallet
address
The wallet address
_newRecoverer
address
New recoverer address
7. fundWallet
fundWallet
Funds a KintoWallet
through the factory.
function fundWallet(address payable wallet) external payable override;
wallet
address
The wallet address to fund.
8. claimFromFaucet
claimFromFaucet
Claims from a faucet on behalf of a user.
function claimFromFaucet(address _faucet, IFaucet.SignatureData calldata _signatureData) external override;
_faucet
address
The faucet address to claim from.
_signatureData
IFaucet.SignatureData
The signature data for the claim.
9. sendMoneyToAccount
sendMoneyToAccount
Allows sending money to an account from privileged accounts or KYC accounts.
function sendMoneyToAccount(address target) external payable override;
target
address
The target account address to send money to.
10. sendMoneyToRecoverer
sendMoneyToRecoverer
Sends money to a recoverer from a wallet to facilitate the recovery process.
function sendMoneyToRecoverer(address wallet, address recoverer) external payable override;
wallet
address
The wallet address.
recoverer
address
The recoverer address to fund.
11. sendETHToDeployer
sendETHToDeployer
Sends ETH to the deployer of a wallet.
function sendETHToDeployer(address deployer) external payable override;
deployer
address
The deployer address to fund.
12. sendETHToEOA
sendETHToEOA
Sends ETH to the EOA of an app.
function sendETHToEOA(address eoa, address app) external payable override;
eoa
address
The EOA address to receive funds.
app
address
The associated app address.
View Functions
function getWalletTimestamp(address wallet) external view override returns (uint256);
function getAddress(address owner, address recoverer, bytes32 salt) public view override returns (address);
1. getWalletTimestamp
getWalletTimestamp
Returns the creation timestamp of a wallet.
function getWalletTimestamp(address wallet) external view override returns (uint256);
wallet
address
The wallet address to query.
2. getAddress
getAddress
Calculates the counterfactual address of an account.
function getAddress(address owner, address recoverer, bytes32 salt) public view override returns (address);
owner
address
The owner address of the account.
recoverer
address
The address that can recover the account.
salt
bytes32
The salt used for the address calculation.
Events
KintoWalletFactoryCreation
: Emitted when a new wallet is created.KintoWalletFactoryUpgraded
: Emitted when the wallet implementation is upgraded.
Last updated