├── .gitignore ├── README.md ├── advanced ├── auth │ ├── account.js │ ├── call.js │ ├── call2.js │ ├── code.js │ ├── initClient.js │ ├── node.js │ ├── power.js │ └── updatecode.js └── package.json ├── basic └── hello_fibos │ ├── fibos_client │ ├── call.js │ ├── createAccount.js │ ├── deploy.js │ ├── hello │ │ ├── hello.abi │ │ └── hello.js │ ├── initClient.js │ ├── queryAccount.js │ └── test │ │ ├── case.js │ │ ├── sample_test.js │ │ └── test_contract.js │ ├── package.json │ └── start_fibos │ └── node.js ├── community ├── fibos_eos │ ├── sync_eos.js │ └── transfer_test.js └── hello_mongoDB │ ├── local │ ├── client.js │ └── node.js │ └── testnet │ ├── client.js │ └── node.js ├── development └── testNet │ ├── about │ ├── client.js │ ├── getBanlance.js │ ├── initClient.js │ └── tranfer.js │ └── join │ ├── producer_node.js │ ├── register_bp.js │ ├── sync_node.js │ └── vote_bp.js └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## FIBOS Samples 2 | 3 | + 文档参考:[FIBOS Document Development Guide](https://fibos.io/docs/guide/basic/readme.md.html) 4 | 5 | ```bash 6 | # download FIBOS Samples 7 | git clone git@github.com:FIBOSIO/samples.git 8 | 9 | # If you do not have FIBOS installed, execute the following command. 10 | curl -s https://fibos.io/download/installer.sh |sh 11 | 12 | # install package 13 | cd samples 14 | fibos --init 15 | fibos --install fibos.js 16 | ``` 17 | -------------------------------------------------------------------------------- /advanced/auth/account.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('fibos.js'); 2 | 3 | var fibos = FIBOS({ 4 | chainId: 'cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f', 5 | keyProvider: '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3', 6 | httpEndpoint: 'http://127.0.0.1:8888', 7 | logger: { 8 | log: null, 9 | error: null 10 | } 11 | }); 12 | 13 | //账户 hellofibos 的公私钥对 14 | let pubkey = "FO5dZut9MG9ZdqrT1WYdPkp1Txxi6JLRYEgYCtAUDWH6ymNqdJpR"; 15 | let prikey = '5KMx2vJR1L2rsrKuND4N6YM1gu26jwUjn5ZLorBeWnK15DfraQW'; 16 | 17 | var name = 'hellofibos'; 18 | fibos.newaccountSync({ 19 | creator: 'eosio', 20 | name: name, 21 | owner: pubkey, 22 | active: pubkey 23 | }); 24 | 25 | var c = fibos.getAccountSync(name); 26 | console.notice(c); -------------------------------------------------------------------------------- /advanced/auth/call.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('fibos.js'); 2 | 3 | //合约所属账户 hellocode 的公私钥对 4 | let pubkey = "FO5L9g2mnC4zZMZWDR8VBksz3exFmXV4kwfj65oYeKdqRPc2oPFW"; 5 | let prikey = '5KMg9oUf5caX9yku7zQQwKZQLukRW7dMHaST8njpBf22puUvjea'; 6 | 7 | var name = 'hellocode'; 8 | 9 | var fibos = FIBOS({ 10 | chainId: 'cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f', 11 | keyProvider: prikey, 12 | httpEndpoint: 'http://127.0.0.1:8888', 13 | logger: { 14 | log: null, 15 | error: null 16 | } 17 | }); 18 | 19 | var ctx = fibos.contractSync(name); 20 | var r = ctx.hiSync(name, { 21 | authorization: name 22 | }); 23 | 24 | console.error(r.processed.action_traces[0].console); 25 | -------------------------------------------------------------------------------- /advanced/auth/call2.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('fibos.js'); 2 | 3 | //合约所属账户 hellocode 的公私钥对 4 | let pubkey = "FO5L9g2mnC4zZMZWDR8VBksz3exFmXV4kwfj65oYeKdqRPc2oPFW"; 5 | let prikey = '5KMg9oUf5caX9yku7zQQwKZQLukRW7dMHaST8njpBf22puUvjea'; 6 | var name = 'hellocode'; 7 | 8 | var fibos = FIBOS({ 9 | chainId: 'cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f', 10 | keyProvider: prikey, 11 | httpEndpoint: 'http://127.0.0.1:8888', 12 | logger: { 13 | log: null, 14 | error: null 15 | } 16 | }); 17 | 18 | var ctx = fibos.contractSync(name); 19 | var r = ctx.hiSync('hellocode', { 20 | authorization: name 21 | }); 22 | 23 | console.error(r.processed.action_traces[0].console); 24 | 25 | 26 | var ctx = fibos.contractSync(name); 27 | var r = ctx.hiSync('eosio', { 28 | authorization: name 29 | }); 30 | 31 | console.error(r.processed.action_traces[0].console); 32 | -------------------------------------------------------------------------------- /advanced/auth/code.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('fibos.js'); 2 | 3 | var fibos = FIBOS({ 4 | chainId: 'cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f', 5 | keyProvider: '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3', 6 | httpEndpoint: 'http://127.0.0.1:8888', 7 | logger: { 8 | log: null, 9 | error: null 10 | } 11 | }); 12 | 13 | //合约所属账户 hellocode 的公私钥对 14 | let pubkey = "FO5L9g2mnC4zZMZWDR8VBksz3exFmXV4kwfj65oYeKdqRPc2oPFW"; 15 | let prikey = '5KMg9oUf5caX9yku7zQQwKZQLukRW7dMHaST8njpBf22puUvjea'; 16 | 17 | //创建合约账户 18 | var name = 'hellocode'; 19 | fibos.newaccountSync({ 20 | creator: 'eosio', 21 | name: name, 22 | owner: pubkey, 23 | active: pubkey 24 | }); 25 | 26 | //发布一个合约 27 | var abi = { 28 | "version": "eosio::abi/1.0", 29 | "structs": [{ 30 | "name": "hi", 31 | "base": "", 32 | "fields": [{ 33 | "name": "user", 34 | "type": "name" 35 | }] 36 | }], 37 | "actions": [{ 38 | "name": "hi", 39 | "type": "hi", 40 | "ricardian_contract": "" 41 | }] 42 | }; 43 | 44 | //由 hellocode 提供私钥发布合约 45 | fibos = FIBOS({ 46 | chainId: 'cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f', 47 | keyProvider: prikey, 48 | httpEndpoint: 'http://127.0.0.1:8888', 49 | logger: { 50 | log: null, 51 | error: null 52 | } 53 | }); 54 | 55 | fibos.setabiSync(name, abi); 56 | 57 | var js_code = `exports.hi = v => console.error(action);`; 58 | fibos.setcodeSync(name, 0, 0, fibos.compileCode(js_code)); 59 | -------------------------------------------------------------------------------- /advanced/auth/initClient.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require("fibos.js"); 2 | 3 | function initClient(_keyProvider) { 4 | return FIBOS({ 5 | chainId: "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f", 6 | keyProvider: _keyProvider, 7 | httpEndpoint: "http://127.0.0.1:8888", 8 | logger: { 9 | log: null, 10 | error: null 11 | } 12 | }); 13 | } 14 | 15 | module.exports = initClient; -------------------------------------------------------------------------------- /advanced/auth/node.js: -------------------------------------------------------------------------------- 1 | var fibos = require('fibos'); 2 | 3 | fibos.load("http"); 4 | fibos.load("chain"); 5 | fibos.load("net"); 6 | fibos.load("chain_api"); 7 | fibos.load("history_api"); 8 | fibos.load("producer", { 9 | 'producer-name': 'eosio', 10 | 'enable-stale-production': true 11 | }); 12 | fibos.config_dir = "fibos_config_dir/"; 13 | fibos.data_dir = "fibos_data_dir/"; 14 | 15 | fibos.start(); 16 | 17 | -------------------------------------------------------------------------------- /advanced/auth/power.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('fibos.js'); 2 | 3 | //账户 hellofibos 的公私钥对 4 | let pubkey = "FO5dZut9MG9ZdqrT1WYdPkp1Txxi6JLRYEgYCtAUDWH6ymNqdJpR"; 5 | let prikey = '5KMx2vJR1L2rsrKuND4N6YM1gu26jwUjn5ZLorBeWnK15DfraQW'; 6 | 7 | //账户 hellofibos2 的公私钥对 8 | let pubkey2 = "FO5UFAzxUsbjQCijL5LtS6TaTtkJgPJACZ8qwDpXyLaW3sE9Ed2D"; 9 | let prikey2 = '5JhJaiRmvpR8MmvrxGFYGoC7tG9icYkooLFUdVMDJ5cAsLTbsob'; 10 | 11 | var name = 'hellofibos'; 12 | var name2 = 'hellofibos2'; 13 | 14 | //创建 hellofibos2 账户 15 | 16 | var fibos = FIBOS({ 17 | chainId: 'cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f', 18 | keyProvider: '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3', 19 | httpEndpoint: 'http://127.0.0.1:8888', 20 | logger: { 21 | log: null, 22 | error: null 23 | } 24 | }); 25 | fibos.newaccountSync({ 26 | creator: 'eosio', 27 | name: name2, 28 | owner: pubkey2, 29 | active: pubkey2 30 | }); 31 | 32 | 33 | //修改hellofibos 的active权限,客户端 需要更改为 hellofibos 的私钥 34 | fibos = FIBOS({ 35 | chainId: 'cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f', 36 | keyProvider: '5KMx2vJR1L2rsrKuND4N6YM1gu26jwUjn5ZLorBeWnK15DfraQW', 37 | httpEndpoint: 'http://127.0.0.1:8888', 38 | logger: { 39 | log: null, 40 | error: null 41 | } 42 | }); 43 | 44 | let ctx = fibos.contractSync("eosio"); 45 | ctx.updateauthSync({ 46 | account: name, 47 | permission: "active", 48 | parent: 'owner', 49 | auth: { 50 | threshold: 1, 51 | keys: [{ 52 | key: "FO5UFAzxUsbjQCijL5LtS6TaTtkJgPJACZ8qwDpXyLaW3sE9Ed2D", 53 | weight: 1 54 | }] 55 | } 56 | }); 57 | 58 | var c = fibos.getAccountSync(name); 59 | console.notice(c); 60 | -------------------------------------------------------------------------------- /advanced/auth/updatecode.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('fibos.js'); 2 | 3 | //合约所属账户 hellocode 的公私钥对 4 | let pubkey = "FO5L9g2mnC4zZMZWDR8VBksz3exFmXV4kwfj65oYeKdqRPc2oPFW"; 5 | let prikey = '5KMg9oUf5caX9yku7zQQwKZQLukRW7dMHaST8njpBf22puUvjea'; 6 | var name = 'hellocode'; 7 | 8 | var fibos = FIBOS({ 9 | chainId: 'cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f', 10 | keyProvider: prikey, 11 | httpEndpoint: 'http://127.0.0.1:8888', 12 | logger: { 13 | log: null, 14 | error: null 15 | } 16 | }); 17 | 18 | var js_code = `exports.hi = v => console.error(action.has_auth(v));`; 19 | fibos.setcodeSync(name, 0, 0, fibos.compileCode(js_code)); 20 | -------------------------------------------------------------------------------- /advanced/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "advanced", 3 | "version": "1.0.0", 4 | "description": "", 5 | "repository": "", 6 | "keywords": "", 7 | "author": "", 8 | "license": "ISC" 9 | } -------------------------------------------------------------------------------- /basic/hello_fibos/fibos_client/call.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('./initClient.js') 2 | var config = { 3 | "public-key": "FO6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", 4 | "private-key": "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3", 5 | "contractName": "hello" 6 | }; 7 | 8 | // new FIBOS client 9 | var fibos = FIBOS(config["private-key"]); 10 | 11 | //call abi 12 | var ctx = fibos.contractSync(config["contractName"]); 13 | let i = ctx.hiSync('hello', { 14 | authorization: config["contractName"] 15 | }); -------------------------------------------------------------------------------- /basic/hello_fibos/fibos_client/createAccount.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('./initClient.js') 2 | var config = { 3 | "public-key": "FO6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", 4 | "private-key": "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3" 5 | }; 6 | 7 | // new FIBOS client 8 | var fibos = FIBOS(config["private-key"]); 9 | 10 | fibos.newaccountSync({ 11 | creator: 'eosio', 12 | name: "hello", 13 | owner: config["public-key"], 14 | active: config["public-key"] 15 | }); -------------------------------------------------------------------------------- /basic/hello_fibos/fibos_client/deploy.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('./initClient.js') 2 | var fs = require("fs"); 3 | var config = { 4 | "public-key": "FO6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", 5 | "private-key": "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3", 6 | "contractName": "hello" 7 | }; 8 | 9 | // new FIBOS client 10 | var fibos = FIBOS(config["private-key"]); 11 | 12 | //setcode 13 | var js_code = fs.readTextFile("./hello/hello.js"); 14 | fibos.setcodeSync(config["contractName"], 0, 0, fibos.compileCode(js_code)); 15 | 16 | //getcode 17 | var code = fibos.getCodeSync(config["contractName"], true); 18 | console.log("code:", code); 19 | 20 | //setabi 21 | var abi = JSON.parse(fs.readTextFile("./hello/hello.abi")); 22 | fibos.setabiSync(config["contractName"], abi); -------------------------------------------------------------------------------- /basic/hello_fibos/fibos_client/hello/hello.abi: -------------------------------------------------------------------------------- 1 | { 2 | "version": "eosio::abi/1.0", 3 | "structs": [{ 4 | "name": "player", 5 | "base": "", 6 | "fields": [{ 7 | "name": "title", 8 | "type": "string" 9 | }, { 10 | "name": "age", 11 | "type": "int64" 12 | }] 13 | }, { 14 | "name": "hi", 15 | "base": "", 16 | "fields": [{ 17 | "name": "user", 18 | "type": "name" 19 | }] 20 | }], 21 | "actions": [{ 22 | "name": "hi", 23 | "type": "hi", 24 | "ricardian_contract": "" 25 | }] 26 | } -------------------------------------------------------------------------------- /basic/hello_fibos/fibos_client/hello/hello.js: -------------------------------------------------------------------------------- 1 | exports.hi = user => console.error('in contract:', user); -------------------------------------------------------------------------------- /basic/hello_fibos/fibos_client/initClient.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require("fibos.js"); 2 | 3 | function initClient(_keyProvider) { 4 | return FIBOS({ 5 | chainId: "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f", 6 | keyProvider: _keyProvider, 7 | httpEndpoint: "http://127.0.0.1:8888", 8 | logger: { 9 | log: null, 10 | error: null 11 | } 12 | }); 13 | } 14 | 15 | module.exports = initClient; -------------------------------------------------------------------------------- /basic/hello_fibos/fibos_client/queryAccount.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('./initClient.js') 2 | // new FIBOS client 3 | var fibos = FIBOS("5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"); 4 | 5 | var user = fibos.getAccountSync("hello"); 6 | console.warn('---- user ----', user); -------------------------------------------------------------------------------- /basic/hello_fibos/fibos_client/test/case.js: -------------------------------------------------------------------------------- 1 | var test = require('test'); 2 | test.setup(); 3 | 4 | var FIBOS = require('fibos.js') 5 | var config = { 6 | "chainId": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f", 7 | "producer-name": "eosio", 8 | "public-key": "FO6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", 9 | "private-key": "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3", 10 | "httpEndpoint": "http://127.0.0.1:8888", 11 | }; 12 | 13 | 14 | describe('new account FIBOS', () => { 15 | var fibos; 16 | 17 | before(() => { 18 | fibos = FIBOS({ 19 | chainId: config["chainId"], 20 | keyProvider: config["private-key"], 21 | httpEndpoint: config["httpEndpoint"], 22 | logger: { 23 | log: null, 24 | error: null 25 | } 26 | }); 27 | }); 28 | 29 | it('new account', () => { 30 | fibos.newaccountSync({ 31 | creator: 'eosio', 32 | name: "hellofibos", 33 | owner: config["public-key"], 34 | active: config["public-key"] 35 | }) 36 | }); 37 | 38 | it("get account", () => { 39 | var c = fibos.getAccountSync('hellofibos'); 40 | assert.equal(c.account_name, "hellofibos"); 41 | }); 42 | }); 43 | 44 | require.main === module && test.run(console.DEBUG); -------------------------------------------------------------------------------- /basic/hello_fibos/fibos_client/test/sample_test.js: -------------------------------------------------------------------------------- 1 | var test = require('test'); 2 | test.setup(); 3 | 4 | describe('a sample case', () => { 5 | var name; 6 | 7 | before(() => { 8 | name = "FIBOS"; 9 | }); 10 | 11 | it('check name', () => { 12 | assert.equal(name, "FIBOS"); 13 | }); 14 | }); 15 | 16 | test.run(); -------------------------------------------------------------------------------- /basic/hello_fibos/fibos_client/test/test_contract.js: -------------------------------------------------------------------------------- 1 | var test = require('test'); 2 | test.setup(); 3 | 4 | var FIBOS = require('fibos.js') 5 | var contractName = "hello"; 6 | var fs = require("fs"); 7 | var config = { 8 | "chainId": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f", 9 | "producer-name": "eosio", 10 | "public-key": "FO6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", 11 | "private-key": "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3", 12 | "httpEndpoint": "http://127.0.0.1:8888", 13 | }; 14 | 15 | 16 | describe('contract test', () => { 17 | var fibos; 18 | 19 | before(() => { 20 | fibos = FIBOS({ 21 | chainId: config["chainId"], 22 | keyProvider: config["private-key"], 23 | httpEndpoint: config["httpEndpoint"], 24 | logger: { 25 | log: null, 26 | error: null 27 | } 28 | }); 29 | }); 30 | 31 | it('get code', () => { 32 | var code = fibos.getCodeSync(contractName, true); 33 | assert.notEqual(code.code_hash, "0000000000000000000000000000000000000000000000000000000000000000"); 34 | }); 35 | 36 | it('setabi', () => { 37 | var abi = JSON.parse(fs.readTextFile("../hello/hello.abi")); 38 | fibos.setabiSync(contractName, abi); 39 | }); 40 | }); 41 | 42 | require.main === module && test.run(console.DEBUG); -------------------------------------------------------------------------------- /basic/hello_fibos/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hello_fibos", 3 | "version": "1.0.0", 4 | "description": "", 5 | "repository": "", 6 | "keywords": "", 7 | "author": "", 8 | "license": "ISC" 9 | } -------------------------------------------------------------------------------- /basic/hello_fibos/start_fibos/node.js: -------------------------------------------------------------------------------- 1 | var fibos = require('fibos'); 2 | 3 | fibos.load("http", { 4 | "http-server-address": "0.0.0.0:8888" 5 | }); 6 | fibos.load("chain"); 7 | fibos.load("net", { 8 | "p2p-listen-endpoint": "0.0.0.0:9876" 9 | }); 10 | fibos.load("chain_api"); 11 | fibos.load("history_api"); 12 | fibos.load("producer", { 13 | 'producer-name': 'eosio', 14 | 'enable-stale-production': true 15 | }); 16 | fibos.config_dir = "fibos_config_dir/"; 17 | fibos.data_dir = "fibos_data_dir/"; 18 | 19 | fibos.enableJSContract = true; 20 | fibos.start(); 21 | -------------------------------------------------------------------------------- /community/fibos_eos/sync_eos.js: -------------------------------------------------------------------------------- 1 | var fibos = require('fibos'); 2 | 3 | fibos.config_dir = "./sync_data_Dir"; 4 | fibos.data_dir = "./sync_data_Dir"; 5 | 6 | console.notice("config_dir:", fibos.config_dir); 7 | console.notice("data_dir:", fibos.data_dir); 8 | 9 | fibos.load("http", { 10 | "http-server-address": "0.0.0.0:8888" 11 | }); 12 | 13 | fibos.load("net", { 14 | "p2p-listen-endpoint": "0.0.0.0:9876", 15 | "p2p-peer-address": ["45.119.146.189:9876", "167.99.91.77:9876", "159.65.214.148:9876", "149.202.165.174:19876"] 16 | }); 17 | 18 | fibos.load("producer"); 19 | fibos.load("chain", { 20 | "genesis-json": "./genesis.json" 21 | }); 22 | fibos.load("chain_api"); 23 | fibos.load("wallet"); 24 | fibos.load("wallet_api"); 25 | 26 | fibos.start(); -------------------------------------------------------------------------------- /community/fibos_eos/transfer_test.js: -------------------------------------------------------------------------------- 1 | var test = require('test'); 2 | test.setup(); 3 | var FIBOS = require('fibos.js'); 4 | describe('FIBOS transfer with EOS', () => { 5 | before(function() {}); 6 | 7 | it("FIBOS transfer with EOS", () => { 8 | let config = { 9 | chainId: '038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca', 10 | keyProvider: 'your private key', 11 | httpEndpoint: 'http://45.119.146.189:8888', 12 | logger: { 13 | log: null, 14 | error: null 15 | } 16 | } 17 | 18 | let accounta = FIBOS(config); 19 | let ctx = accounta.contractSync("eosio.token"); 20 | let result = ctx.transferSync("your account name", "transfer to account name", 'amount', 'remark'); 21 | console.warn('result: ', result); 22 | }); 23 | }) 24 | 25 | test.run(console.DEBUG); 26 | process.exit(); -------------------------------------------------------------------------------- /community/hello_mongoDB/local/client.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('fibos.js'); 2 | var config = { 3 | "chainId": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f", 4 | "producer-name": "eosio", 5 | "public-key": "FO6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", 6 | "private-key": "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3", 7 | "httpEndpoint": "http://127.0.0.1:8888", 8 | }; 9 | 10 | var fibos = FIBOS({ 11 | chainId: config["chainId"], 12 | keyProvider: config["private-key"], 13 | httpEndpoint: config["httpEndpoint"], 14 | logger: { 15 | log: null, 16 | error: null 17 | } 18 | }); 19 | 20 | let result = fibos.newaccountSync({ 21 | creator: 'eosio', 22 | name: "hellomongodb", 23 | owner: config["public-key"], 24 | active: config["public-key"] 25 | }); 26 | console.log('result: ', result); -------------------------------------------------------------------------------- /community/hello_mongoDB/local/node.js: -------------------------------------------------------------------------------- 1 | var fibos = require('fibos'); 2 | 3 | fibos.load("http"); 4 | fibos.load("chain", { 5 | "contracts-console": true, 6 | "delete-all-blocks": true, 7 | }); 8 | fibos.load("net"); 9 | fibos.load("chain_api"); 10 | fibos.load("history_api"); 11 | fibos.load("producer", { 12 | 'producer-name': 'eosio', 13 | 'enable-stale-production': true, 14 | "max-transaction-time": 3000 15 | }); 16 | fibos.load("mongo_db", { 17 | "mongodb-uri": "mongodb://localhost:27017/eosmain" 18 | }) 19 | 20 | fibos.start(); -------------------------------------------------------------------------------- /community/hello_mongoDB/testnet/client.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('fibos.js'); 2 | 3 | var config = { 4 | chainId: 'cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f', // 32 byte (64 char) hex string 5 | keyProvider: '5KH6znunJQBdexEVcx7FkeJH7Npswi9hEpJx2fXqAvQA77SPE6V', // WIF string or array of keys.. 6 | httpEndpoint: 'http://103.80.170.107:8888', 7 | logger: { 8 | log: null, 9 | error: null 10 | } 11 | } 12 | 13 | var fibos = FIBOS(config); 14 | var ctx = fibos.contractSync("eosio.token"); 15 | var result = ctx.transferSync("hellomongodb", "eosio", '10.0000 FO', 'transfer'); 16 | console.log('result', result); -------------------------------------------------------------------------------- /community/hello_mongoDB/testnet/node.js: -------------------------------------------------------------------------------- 1 | const fibos = require('fibos'); 2 | 3 | fibos.config_dir = "sync_data_Dir"; 4 | fibos.data_dir = "sync_data_Dir"; 5 | 6 | fibos.load("http", { 7 | "http-server-address": "0.0.0.0:8888" 8 | }); 9 | 10 | fibos.load("net", { 11 | "p2p-listen-endpoint": "0.0.0.0:9876", 12 | "p2p-peer-address": "103.80.170.107:9876" 13 | }); 14 | 15 | fibos.load("producer"); 16 | fibos.load("chain", { 17 | "delete-all-blocks": true 18 | }); 19 | fibos.load("chain_api"); 20 | fibos.load("wallet"); 21 | fibos.load("wallet_api"); 22 | fibos.load("mongo_db", { 23 | "mongodb-uri": "mongodb://localhost:27017/eosmain" 24 | }) 25 | 26 | fibos.start(); -------------------------------------------------------------------------------- /development/testNet/about/client.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require("./initClient.js"); 2 | var fibos = FIBOS(""); 3 | 4 | var result = fibos.getBlockSync(1); 5 | 6 | console.log(result); 7 | -------------------------------------------------------------------------------- /development/testNet/about/getBanlance.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('./initClient.js'); 2 | 3 | var fibos = FIBOS("注册时的私钥"); 4 | var result = fibos.getTableRowsSync(true, "eosio.token", "注册时账户名称", "accounts") 5 | console.log(result); 6 | -------------------------------------------------------------------------------- /development/testNet/about/initClient.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require("fibos.js"); 2 | 3 | function initClient(_keyProvider) { 4 | return FIBOS({ 5 | chainId: "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f", 6 | keyProvider: _keyProvider, 7 | httpEndpoint: "http://103.80.170.107:8888", 8 | logger: { 9 | log: null, 10 | error: null 11 | } 12 | }); 13 | } 14 | 15 | module.exports = initClient; 16 | -------------------------------------------------------------------------------- /development/testNet/about/tranfer.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('./initClient.js'); 2 | 3 | var fibos = FIBOS("注册时的私钥"); 4 | 5 | var ctx = fibos.contractSync("eosio.token"); 6 | var result = ctx.transferSync("eosio", "gulou", '10.0000 FO', 'transfer'); 7 | console.log(result); 8 | -------------------------------------------------------------------------------- /development/testNet/join/producer_node.js: -------------------------------------------------------------------------------- 1 | var fibos = require('fibos'); 2 | var fs = require("fs"); 3 | var config = { 4 | "producer-name": "producer-name", 5 | "public-key": "producer public key", 6 | "private-key": "producer private key" 7 | }; 8 | 9 | 10 | console.notice("正在启动FIBOS name:", config["producer-name"]); 11 | fibos.config_dir = config["producer-name"] + "_Dir"; 12 | fibos.data_dir = config["producer-name"] + "_Dir" 13 | 14 | console.notice("config_dir:", fibos.config_dir); 15 | console.notice("data_dir:", fibos.data_dir); 16 | 17 | if (fs.exists(fibos.data_dir) || fs.exists(fibos.config_dir)) { 18 | console.warn("data_dir or config_dir is exists"); 19 | process.exit(-1); 20 | } 21 | 22 | fibos.load("http", { 23 | "http-server-address": "0.0.0.0:8888" 24 | }); 25 | 26 | fibos.load("net", { 27 | "p2p-listen-endpoint": "0.0.0.0:9876", 28 | "p2p-peer-address": "103.80.170.107:9876" 29 | }); 30 | 31 | fibos.load("producer", { 32 | 'producer-name': config["producer-name"], 33 | 'enable-stale-production': true, 34 | 'private-key': JSON.stringify([config["public-key"], config["private-key"]]) 35 | }); 36 | 37 | fibos.load("chain"); 38 | fibos.load("chain_api"); 39 | fibos.load("wallet"); 40 | fibos.load("wallet_api"); 41 | 42 | 43 | fibos.start(); 44 | -------------------------------------------------------------------------------- /development/testNet/join/register_bp.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('fibos.js'); 2 | var config = { 3 | "chainId": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f", 4 | "producer-name": "producer-name", 5 | "public-key": "producer public key", 6 | "private-key": "producer private key", 7 | "httpEndpoint": "bp network info", 8 | "url": "http://producer-name.io" 9 | }; 10 | 11 | var fibos = FIBOS({ 12 | chainId: config["chainId"], 13 | keyProvider: config["private-key"], 14 | httpEndpoint: config["httpEndpoint"], 15 | logger: { 16 | log: null, 17 | error: null 18 | } 19 | }); 20 | 21 | var ctx = fibos.contractSync("eosio"); 22 | 23 | ctx.regproducerSync(config["producer-name"], config["public-key"], config["url"], 1); 24 | -------------------------------------------------------------------------------- /development/testNet/join/sync_node.js: -------------------------------------------------------------------------------- 1 | var fibos = require('fibos'); 2 | 3 | fibos.config_dir = "sync_data_Dir"; 4 | fibos.data_dir = "sync_data_Dir"; 5 | 6 | console.notice("config_dir:", fibos.config_dir); 7 | console.notice("data_dir:", fibos.data_dir); 8 | 9 | fibos.load("http", { 10 | "http-server-address": "0.0.0.0:8888" 11 | }); 12 | 13 | fibos.load("net", { 14 | "p2p-listen-endpoint": "0.0.0.0:9876", 15 | "p2p-peer-address": "103.80.170.107:9876" 16 | }); 17 | 18 | fibos.load("producer"); 19 | fibos.load("chain", { 20 | "delete-all-blocks": true 21 | }); 22 | fibos.load("chain_api"); 23 | fibos.load("wallet"); 24 | fibos.load("wallet_api"); 25 | 26 | fibos.start(); 27 | -------------------------------------------------------------------------------- /development/testNet/join/vote_bp.js: -------------------------------------------------------------------------------- 1 | var FIBOS = require('fibos.js'); 2 | var config = { 3 | "chainId": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f", 4 | "producer-name": "producer-name", 5 | "public-key": "producer public key", 6 | "private-key": "producer private key", 7 | "httpEndpoint": "bp network info", 8 | "url": "http://producer-name.io" 9 | }; 10 | 11 | var fibos = FIBOS({ 12 | chainId: config["chainId"], 13 | keyProvider: config["private-key"], 14 | httpEndpoint: config["httpEndpoint"], 15 | logger: { 16 | log: null, 17 | error: null 18 | } 19 | }); 20 | 21 | var ctx = fibos.contractSync("eosio"); 22 | 23 | ctx.voteproducerSync(config["producer-name"], "", ["producer-name"]); 24 | 25 | 26 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fibos_client", 3 | "version": "1.0.0", 4 | "description": "", 5 | "repository": "", 6 | "keywords": "", 7 | "author": "", 8 | "license": "ISC" 9 | } --------------------------------------------------------------------------------