Можно ли использовать библиотеку web3.js для кодирования и декодирования base58?
Кажется, что web3.js включает в себя библиотеку bignumber , но я не уверен, сможет ли она справиться с кодировкой base58, используемой, например, ipfs.
Я надеюсь на функцию, которая выглядит примерно так (которая не работает): например (на основе этого )
web3.utils.toBN('QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU', 58) //web3 v1.x
или
web3.toBigNumber("QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU",58) //web3 v0.x
который возвращает целое число bignumber из числа base58. Можно ли выполнять кодирование и декодирование base58 с помощью библиотеки web3.js?
Web3.js не предоставляет кодировщик/декодер base58, потому что он связан только с интерфейсом к ethereum, поэтому прямое использование этой функции невозможно. Вам придется использовать такой модуль, как bs58 .
Вот пример:
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