Library around window.hive_keychain
import {Keychain} from 'splinterlands-hive-keychain'
const main = async () => {
const keychain = new Keychain(window)
/**
* Initially keychain.status 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.initialize()
const result = await keychain.requestSignBuffer({
// account: 'therealwolf', // 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.keychainStatus === 'none') {
console.log(`User has not installed Keychain or hasn't used it before.`)
} else if (result.keychainStatus === '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 result2 = await keychain.requestTransfer({
to: 'splinterlands',
amount: 5.12,
asset: 'HIVE',
memo: 'test',
enforce: false,
})
console.log(result2)
}
main()