¿Es posible usar la biblioteca web3.js para codificar y decodificar base58?
Parece que web3.js incluye la biblioteca bignumber , pero no estoy seguro de si esto puede manejar la codificación base58 utilizada, por ejemplo, por ipfs.
Espero una función que se parezca un poco a esto (que falla): por ejemplo (basado en esto )
web3.utils.toBN('QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU', 58) //web3 v1.x
o
web3.toBigNumber("QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU",58) //web3 v0.x
que devuelve un número entero grande del número base58. ¿Es posible codificar y decodificar base58 usando la biblioteca web3.js?
Web3.js no proporciona un codificador/descodificador base58 porque solo se ocupa de la interfaz con ethereum, por lo que no hay un uso directo de esta función. Tendrá que usar un módulo como bs58 .
Aquí hay un ejemplo:
const bs58 = require('bs58')
const BN = require('bn.js')
const hash = 'QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU'
const hex = bs58.decode(hash).toString('hex')
console.log(hex) // 122084a644bfcb8639e1b1a1fc72fd0ad1826b91f7a9baa06ad409ac3c02b31f981b
const n = new BN(hex, 16)
console.log(n.toString(10)) // 537335293128262426148241029128274019001757729355677528305490323656269309818148891