@decent-bet/odenplan
v1.0.0
Published
A VET Wallet library
Downloads
10
Keywords
Readme
odenplan
A VET Wallet library
Install
npm i -S @decent-bet/odenplan
Usage
Configure wallet passphrase
const wallet = new ProviderWallet();
await wallet.configurePassphrase('q2w3e4r5t6y7');
Create a wallet account
// if passphrase not set, it will ask for passphrase using subscribeToAskPassphrase
const { publicAddress } = await wallet.createAccount();
// last parameter if set to true returns mnemonic
const { publicAddress, mnemonic } = await wallet.createAccount(null, true);
Registers a wallet account
// if user owns a private key, use registerAccount to import wallet
await wallet.registerAccount(address, privateKey, passphrase);
Subscribe to ask passphrase
wallet.subscribeToAskPassphrase = new Promise((resolve, reject) => {
// Display UI dialog and return passphrase
});
Get account key (used with connex)
let wallet = new ProviderWallet();
// leave last parameter as null if used with an UI, used subscribeToAskPassphrase
const response = await wallet.getAccountKey(address, 'q2w3e4r5t6y7');
Wallet behaviors
Browser
Use browser behavior for web based DApps solutions. Odenplan will handle private key access through the use of a passphrase.
const wallet = new ProviderWallet({
behaviorType: 'browser',
});
await wallet.configurePassphrase('q1212a');
Query
Similar to a browser behavior but does not enable signing. Useful when you only need query type applications.
const wallet = new ProviderWallet({
behaviorType: 'query',
});
Server
For microservices use cases, obviates the need for a passphrase. Any implementation should secure the private key in either HSM or secure storage.
const wallet = new ProviderWallet({
behaviorType: 'server',
behaviorOptions: {
privateKey: '0x64adbb3bd3b4c862479fd21d3a7555071e38c12c915b8b14ddd7ae4f1ba8e93c'
}
});
WalletConnect
A WalletConnect behavior to be used in React Native DApps (or similar). Manages the Wallet role in WalletConnect.
const wallet = new ProviderWallet({
behaviorType: 'walletconnect',
behaviorOptions: {
walletconnect: new WalletConnect({
bridge: "https://bridge.walletconnect.org"
})
}
});
// Subscribe to eth_signTransaction
wallet.onSigningRequest.on('SIGN_TX', (params: any[]) => {
// ... call connex signing service
});
// Subscribe to eth_sendTransaction
wallet.onSigningRequest.on('SEND_TX', (params: any[]) => {
// ... call connex signing service
});
Wallet handlers
Connex
A Connex interface should call processSigningRequest
by sending the address to lookup the private key and a Promise action to be executed.
export interface IOdenplanConnexSigning {
processSigningRequest(options: {
address: string,
signingAction: (pvk: any) => Promise<any>,
}): Promise<any>;
}