diff --git a/backend/contracts/ZkWalletFactory.sol b/backend/contracts/ZkWalletFactory.sol index 311a62e..8e3c682 100644 --- a/backend/contracts/ZkWalletFactory.sol +++ b/backend/contracts/ZkWalletFactory.sol @@ -7,20 +7,23 @@ contract ZkWalletFactory { mapping(address => address) userAddressToWalletAddress; event WalletCreated(address walletAddress); - constructor() {} + address public hashCheckVerifier; + + constructor(address _hashCheckVerifier) { + hashCheckVerifier = _hashCheckVerifier; + } function deployWallet( - address _hashCheckVerifier, uint256 _ownerPasswordHash, address[] memory _trustees, uint256[] memory _passwordHashes, uint256 _thresholdForRecovery, + address _otpVerifier, + uint256 _root - uint256 _root, - address _otpVerifier ) external returns (address walletAddress) { ZkSocialRecoveryWallet wallet = new ZkSocialRecoveryWallet( - _hashCheckVerifier, + hashCheckVerifier, _ownerPasswordHash, _trustees, _passwordHashes, diff --git a/backend/typechain-types/contracts/ZkSocialRecoveryWallet.sol/ZkSocialRecoveryWallet.ts b/backend/typechain-types/contracts/ZkSocialRecoveryWallet.sol/ZkSocialRecoveryWallet.ts index 2575ae6..1342d91 100644 --- a/backend/typechain-types/contracts/ZkSocialRecoveryWallet.sol/ZkSocialRecoveryWallet.ts +++ b/backend/typechain-types/contracts/ZkSocialRecoveryWallet.sol/ZkSocialRecoveryWallet.ts @@ -33,6 +33,7 @@ export interface ZkSocialRecoveryWalletInterface extends utils.Interface { "currentRecoveryNumber()": FunctionFragment; "executeRecoveryChange(uint256[2],uint256[2][2],uint256[2],uint256[1],uint256)": FunctionFragment; "executeTxn(uint256[2],uint256[2][2],uint256[2],uint256[2],address,uint256)": FunctionFragment; + "isRecoveryOn()": FunctionFragment; "onERC721Received(address,address,uint256,bytes)": FunctionFragment; "owner()": FunctionFragment; "startRecovery(uint256[2],uint256[2][2],uint256[2],uint256[1],address)": FunctionFragment; @@ -45,6 +46,7 @@ export interface ZkSocialRecoveryWalletInterface extends utils.Interface { | "currentRecoveryNumber" | "executeRecoveryChange" | "executeTxn" + | "isRecoveryOn" | "onERC721Received" | "owner" | "startRecovery" @@ -95,6 +97,10 @@ export interface ZkSocialRecoveryWalletInterface extends utils.Interface { PromiseOrValue ] ): string; + encodeFunctionData( + functionFragment: "isRecoveryOn", + values?: undefined + ): string; encodeFunctionData( functionFragment: "onERC721Received", values: [ @@ -145,6 +151,10 @@ export interface ZkSocialRecoveryWalletInterface extends utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "executeTxn", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "isRecoveryOn", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "onERC721Received", data: BytesLike @@ -287,6 +297,8 @@ export interface ZkSocialRecoveryWallet extends BaseContract { overrides?: Overrides & { from?: PromiseOrValue } ): Promise; + isRecoveryOn(overrides?: CallOverrides): Promise<[boolean]>; + onERC721Received( arg0: PromiseOrValue, arg1: PromiseOrValue, @@ -361,6 +373,8 @@ export interface ZkSocialRecoveryWallet extends BaseContract { overrides?: Overrides & { from?: PromiseOrValue } ): Promise; + isRecoveryOn(overrides?: CallOverrides): Promise; + onERC721Received( arg0: PromiseOrValue, arg1: PromiseOrValue, @@ -435,6 +449,8 @@ export interface ZkSocialRecoveryWallet extends BaseContract { overrides?: CallOverrides ): Promise; + isRecoveryOn(overrides?: CallOverrides): Promise; + onERC721Received( arg0: PromiseOrValue, arg1: PromiseOrValue, @@ -552,6 +568,8 @@ export interface ZkSocialRecoveryWallet extends BaseContract { overrides?: Overrides & { from?: PromiseOrValue } ): Promise; + isRecoveryOn(overrides?: CallOverrides): Promise; + onERC721Received( arg0: PromiseOrValue, arg1: PromiseOrValue, @@ -629,6 +647,8 @@ export interface ZkSocialRecoveryWallet extends BaseContract { overrides?: Overrides & { from?: PromiseOrValue } ): Promise; + isRecoveryOn(overrides?: CallOverrides): Promise; + onERC721Received( arg0: PromiseOrValue, arg1: PromiseOrValue, diff --git a/backend/typechain-types/contracts/ZkWalletFactory.ts b/backend/typechain-types/contracts/ZkWalletFactory.ts index a9ceff0..2a64fc2 100644 --- a/backend/typechain-types/contracts/ZkWalletFactory.ts +++ b/backend/typechain-types/contracts/ZkWalletFactory.ts @@ -29,28 +29,50 @@ import type { export interface ZkWalletFactoryInterface extends utils.Interface { functions: { - "deployWallet(address,uint256,address[],uint256[],uint256,uint256,address)": FunctionFragment; + "deployWallet(uint256,address[],uint256[],uint256,address,uint256)": FunctionFragment; + "getUserWalletAddress(address)": FunctionFragment; + "hashCheckVerifier()": FunctionFragment; }; - getFunction(nameOrSignatureOrTopic: "deployWallet"): FunctionFragment; + getFunction( + nameOrSignatureOrTopic: + | "deployWallet" + | "getUserWalletAddress" + | "hashCheckVerifier" + ): FunctionFragment; encodeFunctionData( functionFragment: "deployWallet", values: [ - PromiseOrValue, PromiseOrValue, PromiseOrValue[], PromiseOrValue[], PromiseOrValue, - PromiseOrValue, - PromiseOrValue + PromiseOrValue, + PromiseOrValue ] ): string; + encodeFunctionData( + functionFragment: "getUserWalletAddress", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "hashCheckVerifier", + values?: undefined + ): string; decodeFunctionResult( functionFragment: "deployWallet", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "getUserWalletAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "hashCheckVerifier", + data: BytesLike + ): Result; events: { "WalletCreated(address)": EventFragment; @@ -94,39 +116,57 @@ export interface ZkWalletFactory extends BaseContract { functions: { deployWallet( - _hashCheckVerifier: PromiseOrValue, _ownerPasswordHash: PromiseOrValue, _trustees: PromiseOrValue[], _passwordHashes: PromiseOrValue[], _thresholdForRecovery: PromiseOrValue, - _root: PromiseOrValue, _otpVerifier: PromiseOrValue, + _root: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; + + getUserWalletAddress( + _user: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string] & { _walletAddress: string }>; + + hashCheckVerifier(overrides?: CallOverrides): Promise<[string]>; }; deployWallet( - _hashCheckVerifier: PromiseOrValue, _ownerPasswordHash: PromiseOrValue, _trustees: PromiseOrValue[], _passwordHashes: PromiseOrValue[], _thresholdForRecovery: PromiseOrValue, - _root: PromiseOrValue, _otpVerifier: PromiseOrValue, + _root: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; + getUserWalletAddress( + _user: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + hashCheckVerifier(overrides?: CallOverrides): Promise; + callStatic: { deployWallet( - _hashCheckVerifier: PromiseOrValue, _ownerPasswordHash: PromiseOrValue, _trustees: PromiseOrValue[], _passwordHashes: PromiseOrValue[], _thresholdForRecovery: PromiseOrValue, - _root: PromiseOrValue, _otpVerifier: PromiseOrValue, + _root: PromiseOrValue, overrides?: CallOverrides ): Promise; + + getUserWalletAddress( + _user: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + hashCheckVerifier(overrides?: CallOverrides): Promise; }; filters: { @@ -136,27 +176,39 @@ export interface ZkWalletFactory extends BaseContract { estimateGas: { deployWallet( - _hashCheckVerifier: PromiseOrValue, _ownerPasswordHash: PromiseOrValue, _trustees: PromiseOrValue[], _passwordHashes: PromiseOrValue[], _thresholdForRecovery: PromiseOrValue, - _root: PromiseOrValue, _otpVerifier: PromiseOrValue, + _root: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; + + getUserWalletAddress( + _user: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + hashCheckVerifier(overrides?: CallOverrides): Promise; }; populateTransaction: { deployWallet( - _hashCheckVerifier: PromiseOrValue, _ownerPasswordHash: PromiseOrValue, _trustees: PromiseOrValue[], _passwordHashes: PromiseOrValue[], _thresholdForRecovery: PromiseOrValue, - _root: PromiseOrValue, _otpVerifier: PromiseOrValue, + _root: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; + + getUserWalletAddress( + _user: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + hashCheckVerifier(overrides?: CallOverrides): Promise; }; }