我试图使用位核心库生成比特币地址,并使用位核心资源管理器获取未使用的事务。要在这里生成地址,代码如下:
var bitcore = require('bitcore-lib');
var rand_buffer = bitcore.crypto.Random.getRandomBuffer(32);
var rand_number = bitcore.crypto.BN.fromBuffer(rand_buffer);
var privateKay = new bitcore.PrivateKey(rand_number);
var privateKeyWif = privateKay.toWIF();
var address = privateKay.toAddress('testnet');
console.log({
rand_buffer:rand_buffer,
rand_number_hex:rand_number,
rand_number_dec:rand_number.toString(),
privateKey:privateKay,
privateKeyWif: privateKeyWif,
address:address,
});效果不错..。产出如下:
{ rand_buffer: <Buffer 55 8b 27 c4 51 87 97 17 9a 7d 1d 72 48 26 e5 83 95 74 5b 3b b1 b4 b5 b6 a7 1c df 9f 18 e6 97 2e>,
rand_number_hex: <BN: 558b27c4518797179a7d1d724826e58395745b3bb1b4b5b6a71cdf9f18e6972e>,
rand_number_dec: '38692458332424984226826540178179935156087120588336482991409403810055901845294',
privateKey: <PrivateKey: 558b27c4518797179a7d1d724826e58395745b3bb1b4b5b6a71cdf9f18e6972e, network: livenet>,
privateKeyWif: 'Kz5zkBwfiYNkyswsKjot4wWmxHWUZdVMmxf65Z5wLk29ufhxnnQT',
address: <Address: msTDjA4PmyePSWx2VcaQWoWoQ7gWzU2Kqx, type: pubkeyhash, network: testnet> }在对生成的地址进行任何事务处理之后,我需要使用位核心探测器,所以我需要位核心探测器,下面是代码:
var Insight = require('bitcore-explorers').Insight;
var insight = new Insight('testnet');
insight.getUnspentUtxos(address1,(error,utxos)=>{
if(error) return console.log(error);
console.log(utxos)
});问题是,当我需要bitcore-探索者时,它会给我以下错误:
D:\RAHEEL\Projects\gateway\node_modules\bitcore-explorers\node_modules\bitcore-lib\index.js:12
throw new Error(message);
^
Error: More than one instance of bitcore-lib found. Please make sure to require bitcore-lib and check that submodules do not
also include their own bitcore-lib dependency.
at Object.bitcore.versionGuard (D:\RAHEEL\Projects\gateway\node_modules\bitcore-explorers\node_modules\bitcore-lib\index.
js:12:11)
at Object.<anonymous> (D:\RAHEEL\Projects\gateway\node_modules\bitcore-explorers\node_modules\bitcore-lib\index.js:15:9)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (D:\RAHEEL\Projects\gateway\node_modules\bitcore-explorers\lib\models\addressinfo.js:3:15)发布于 2018-12-17 11:15:34
是的,在这个时候,这似乎仍然在进行(并且有争议)。它已在Github中多次提出。
我遇到了同样的问题,尽管需求略有不同:我使用的是bitocore-p2p npm包;该软件包目前在1.1.2版本,需要将bitcore-lib版本0.14.0作为依赖项。
我宁愿不修补bitcore-p2p/node_modules/bitcore-lib/index.js (这里和github位核心问题的另一个答案)。相反,在我的项目的package.json中,我维护一个bitocore-p2p依赖项,然后引用它的(一个和唯一的) v0.14.0 bitcore-lib依赖项:
var p2p = require('bitcore-p2p'); //p2p exports
var p2pMod = require.cache[require.resolve('bitcore-p2p')]; //p2p module
var bitcore = p2pMod.require('bitcore-lib'); //p2p/bitcore-lib exports或者可以采用一种更脆弱的方法:
var p2p = require('bitcore-p2p'); //p2p exports
var bitcore = require('bitcore-p2p/node_modules/bitcore-lib'); //p2p/bitcore-lib exports就我而言,这是没有问题的。但是很明显,如果我需要的是0.16.0版本的bitcore-lib,我通常想让它成为我的项目的直接依赖,然后遇到麻烦。
发布于 2017-12-06 17:04:04
这里有个临时解决方案。
~/bitcore-explorers/node_modules/bitcore-lib/index.js
第7行:
bitcore.versionGuard = function(version) {改为:
bitcore.versionGuard = function(version) { return;然而,这个问题应该是固定的主要分支,但目前还没有解决。您可以检查这个这里
发布于 2022-04-18 05:20:21
试着添加
"postinstall": "find ./node_modules/**/node_modules -type d -name 'bitcore-lib' -exec rm -r {} + && echo 'Deleted duplicate bitcore-libs'"在脚本中使用package.json文件。对我起作用了。
https://stackoverflow.com/questions/47645884
复制相似问题