Wallet and Contracts
Creating wallets and using contracts
Verified wallets for users can be created either using a dynamically generated mnemonic or by importing mnemonics for an existing private key for the user on a supported ethereum network.
//Common Js
const { VerifiedWallet, Provider } = require('@verified-network/verified-sdk');
//ES Module
import { VerifiedWallet, Provider } from '@verified-network/verified-sdk'
/** Step 1: Create Verified Wallet **/
//Option 1: Generate new Mnemonics and Wallet
const investorMnemonics = await VerifiedWallet.generateMnemonics()
const investorWallet = await VerifiedWallet.importWallet(menmonics)
//Option 2: using existing wallet mnemonics
const investorMnemonics = 'your wallet mnemonics'
const investorWallet = await VerifiedWallet.importWallet(investorMnemonics);
/** Step 2: Set Provider for Wallet **/
//Option 1: using Default Providers by ethers.js(for networks like mainnet, sepolia, ropstan, polygon e.t.c)
const defaultProviderNetwork = 'sepolia' // or any other default provider network of your choice.
//Network/chain id(number) can be used in place of network name, for example:
const defaultProviderNetwork = 11155111 // where number 11155111 is chain id for sepolia. any other chain id of default provider network can be used.
const investorWalletProvider = investorWallet.setProvider(
Provider.defaultProvider(defaultProviderNetwork)
)
//Option 2: using custom providers(infura and alchemy)
const network = 'sepolia' // or any other network of your choice.
//Network/chain id(number) can be used in place of network name, for example:
const network = 11155111 // where number 11155111 is chain id for sepolia, any other chain id can be used.
//For infura; to get api key and enable networks checout: https://www.infura.io/
const INFURA_API_KEY = 'your infura api key'
const investorWalletProvider = investorWallet.setProvider(
Provider.infuraProvider(network, INFURA_API_KEY)
)
//For alchemy; to get api key and enable networks checout: https://www.alchemy.com/
const ALCHEMY_API_KEY = 'your alchemy api key'
const investorWalletProvider = investorWallet.setProvider(
Provider.alchemyProvider(network, ALCHEMY_API_KEY)
)Above, the investor wallet provider can be used to initialize Verified contracts and interact with them by calling various functions on contracts.
Wallets from web brower extensions/wallets of any choice like Metamask, Coinbase wallet e.t.c can be used with Verified Sdk to interact with Verified Contracts.
Above, the signer can be used to initialize Verified contracts and interact with them by calling various functions on contracts.
Certain contracts are proxies that indirect calls to concrete implementations. For example, cash tokens representing different currencies all have the same behavior and are produced by a cash token factory. In such cases, the contract needs to be parameterized (in this case, with a currency contract's address) before use.
Optionally, all the contract Calls take in an additional parameter: options?: { gasPrice: number, gasLimit: number } You can configure the gasPrice and gasLimit using this parameter as the last parameter to the contractCall function. Example: contract.function(arg 1, arg2, options) Where, options = {gasPrice: XXX, gasLimit: YYY}
Last updated