Awesome
Eosio name to uint64
npm i eosjs-account-name
yarn add eosjs-account-name
<!-- lib name is: eosjsName -->
<script src="https://cdn.jsdelivr.net/npm/eosjs-account-name@2.3.0/lib/index.js"></script>
Example of browser is in index.html.
From name to uint64
Here is how eosio account name is computed to uint64.
"eosio",
"eosio.msig",
"eosio.token",
---- 6138663577826885632
---- 6138663587900751872
---- 6138663591592764928
From uint64 to name
Source https://github.com/EOSIO/eos/blob/master/libraries/chain/name.cpp#L19
Example
Try on run-kit https://npm.runkit.com/eosjs-account-name
const eosjsAccountName = require('eosjs-account-name');
const n = eosjsAccountName.nameToUint64('eosio');
console.log('eosio to uint64: ' + n);
console.log('uint64 to name: ' + eosjsAccountName.uint64ToName(n));
Parse symbol name
const { symbol, nameToUint64 } = require('eosjs-account-name');
/**
* cleos -u https://eos.greymass.com get scope eosio.token -t stat
*/
const name = '........ehbo5';
const uint64 = nameToUint64(name);
const symbolName = symbol.toName(uint64);
// expect(symbolName).toEqual('EOS');
Note on random eosio name
In case you want to generate a random name, I suggest you use nanoid
.
const generate = require('nanoid/generate');
const alphabet = '.12345abcdefghijklmnopqrstuvwxyz';
generate(alphabet, 12); //=> "nc4zs1yyg.jx"