web3-wallets-sl
v2.0.0-prerelease.10
Published
Library for different Web3 wallets
Downloads
14
Readme
Library for different Web3 wallets used within the Splinterverse
import { EVMm, Keychain } from 'splinterlands-web3-wallets'
const main = async () => {
const keychain = new Keychain();
/**
* Initially keychain.state is 'none'
* You can either run the function below manually (make sure extension has be loaded within the website, could take a second or so)
* Or it will be run when you run keychain.call, keychain.requestSignBuffer, etc.
*
* Explanation:
* none => not installed
* installed => installed but not enabled
* enabled => ready to go
*/
await keychain.getState();
const result = await keychain.requestSign({
// address: 'wolf', // optional - if not set, user can choose
role: 'Posting',
message: 'Super secret message',
title: 'Please sign this message so we can authenticate your account',
});
if (result.status === 'cancel') {
console.log('User cancelled the request. You can ignore this and just start over.');
return;
} else if (result.status === 'error') {
console.log('There was an error');
if (result.state === 'none') {
console.log(`User has not installed Keychain or hasn't used it before.`);
} else if (result.state === 'installed') {
console.log(`User has installed Keychain and used it before, but it seems to be disabled for this website. Remind user to enable again.`);
} else {
console.log(`Message: ${result.message}`, result.data);
}
return;
} else {
console.log('Success!', result.data);
}
const evm = new EVM();
const result2 = await evm.requestAddress();
if (result2.status === 'cancel') {
console.log('User cancelled the request. You can ignore this and just start over.');
} else if (result2.status === 'error') {
if (result2.state === 'none') {
console.log(`User has not installed EVM Wallet or hasn't used it before.`);
} else if (result2.state === 'installed') {
console.log(`User has installed EVM Wallet and used it before, but it seems to be disabled for this website. Remind user to enable again.`);
}
} else {
console.log('Success!', result.data);
}
}
main()