Posts

Steem Keychain Promise Wrapper

avatar of @therealwolf
25
@therealwolf
·
0 views
·
1 min read

If you've integrated Steem Keychain into your project/business/website and are like me: you've probably been a bit annoyed with the use of callbacks, instead of promises.

Which is why I've written myself a small basic wrapper that converts the callback Keychain normally returns, into a promise. Since I'm an avid user of typescript, I also added some types. The types for arguments are still missing, I'll probably add them sometime in the future.

Nevertheless, I thought some of my fellow devs might be in need of it, so here you go:

https://gist.github.com/therealwolf42/968db625aea6b45beffaae8283911062

Info: This code snippet is using ES6 code syntax and types. Latter can be removed if you're not using typescript/flow.

Example usage:

// Original Usage 
steem_keychain.requestDelegation(username, delegatee, amount, unit, function(response) { 
    console.log(response); 
}); 
 
// Promise Wrapper Usage 
 
import {keychain} from '../yourcode' 
 
const {success, msg, cancel} = await keychain(window, 'requestDelegation', username, delegatee, amount, unit) 
if('cancel') // Do nothing 
if(success) { 
  alert('Successful delegation!') 
} 
alert(`Error: ${msg}`) 
 

If you've got improvements/found bugs, feel free to let me know!

Wolf