質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

0回答

1082閲覧

BTCBOXのgetbalanceをR2へ組み込みたい

serum_oishi

総合スコア10

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

1クリップ

投稿2019/04/09 15:12

**node.jsで起動するプログラム[r2]に、

node

1npm run -s getBalance 2```というコマンドがあり、 3そこに、BTCboxの口座を付け加え、 4CashとBTCの口座残高を表示したいです。 5 6コードはtypescriptで書かれていて、 7見本を真似て行ったがエラーがでてしまう。** 8 9環境は MacOS node8.9.0 です。 10 11使用しているプログラム[[r2](https://github.com/bitrinjani/r2)] 12 13・考察 14 15r2/node_modules/@bitr/btcbox 16の中に必要なbtcboxのapiの設定は作られているので、そこへのパスを正確に繋げたい。 17 18見本とさせていただいたのは、こちらの[プルリクエスト](https://github.com/bitrinjani/r2/pull/147/commits/ab60a6dbc6f4fe8bd3dfdfc45d16a21e15fc53c5)でして、同様にした所、bitbankの口座のgetbalanceを得ることができたので、 19 20bitbankをbtcboxへパスを変更すればいいだけかと安易に思ったのですが、 21試みたところ 22 23```typescript 24// Ad-hoc script to get balances from exchanges and output the result in CSV format. 25 26import * as _ from 'lodash'; 27import { getConfigRoot, findBrokerConfig } from '../src/configUtil'; 28import BitflyerApi from '../src/Bitflyer/BrokerApi'; 29import CoincheckApi from '../src/Coincheck/BrokerApi'; 30import QuoineApi from '../src/Quoine/BrokerApi'; 31import BitbankccApi from '@bitr/bitbankcc-api'; 32import BtcboxApi from '@bitr/btcbox'; 33import { Balance } from '../src/Bitflyer/types'; 34import { TradingAccount, AccountBalance } from '../src/Quoine/types'; 35import { options } from '@bitr/logger'; 36import { Asset } from '@bitr/bitbankcc-api'; 37import { ??? } from '@bitr/btcbox'; 38 39 40options.enabled = false; 41 42async function main() { 43 const config = getConfigRoot(); 44 const bfConfig = findBrokerConfig(config, 'Bitflyer'); 45 const ccConfig = findBrokerConfig(config, 'Coincheck'); 46 const quConfig = findBrokerConfig(config, 'Quoine'); 47 const bbConfig = findBrokerConfig(config, 'Bitbankcc'); 48 const btConfig = findBrokerConfig(config, 'Btcbox'); 49 50 const bfApi = new BitflyerApi(bfConfig.key, bfConfig.secret); 51 const ccApi = new CoincheckApi(ccConfig.key, ccConfig.secret); 52 const quApi = new QuoineApi(quConfig.key, quConfig.secret); 53 const bbApi = new BitbankccApi(bbConfig.key, bbConfig.secret); 54 const btApi = new BtcboxApi(btConfig.key, btConfig.secret); 55 56 // csv header 57 process.stdout.write('Exchange, Currency, Type, Amount\n'); 58 59 // bitflyer cash balance 60 if (bfConfig.enabled) { 61 const bfBalance = await bfApi.getBalance(); 62 const bfJpy = (bfBalance.find(x => x.currency_code === 'JPY') as Balance).available; 63 const bfBtc = (bfBalance.find(x => x.currency_code === 'BTC') as Balance).available; 64 process.stdout.write(`bitFlyer, JPY, Cash, ${_.round(bfJpy)}\n`); 65 process.stdout.write(`bitFlyer, BTC, Cash, ${bfBtc}\n`); 66 } 67 68 // coincheck cash balance 69 if (ccConfig.enabled) { 70 const ccBalance = await ccApi.getAccountsBalance(); 71 process.stdout.write(`Coincheck, JPY, Cash, ${_.round(ccBalance.jpy)}\n`); 72 process.stdout.write(`Coincheck, BTC, Cash, ${ccBalance.btc}\n`); 73 74 // coincheck margin balance 75 const ccLeverageBalance = await ccApi.getLeverageBalance(); 76 process.stdout.write(`Coincheck, JPY, Margin, ${_.round(ccLeverageBalance.margin.jpy)}\n`); 77 process.stdout.write(`Coincheck, JPY, Free Margin, ${_.round(ccLeverageBalance.margin_available.jpy)}\n`); 78 const positions = await ccApi.getAllOpenLeveragePositions(); 79 const longPosition = _.sumBy(positions.filter(p => p.side === 'buy'), p => p.amount); 80 const shortPosition = _.sumBy(positions.filter(p => p.side === 'sell'), p => p.amount); 81 process.stdout.write(`Coincheck, BTC, Leverage Position, ${longPosition - shortPosition}\n`); 82 } 83 84 if (quConfig.enabled) { 85 // quoine cash balance 86 const quCashBalance = await quApi.getAccountBalance(); 87 const quJpyCash = quCashBalance.find(b => b.currency === 'JPY') as AccountBalance; 88 const quBtcCash = quCashBalance.find(b => b.currency === 'BTC') as AccountBalance; 89 process.stdout.write(`Quoine, JPY, Cash, ${_.round(quJpyCash.balance)}\n`); 90 process.stdout.write(`Quoine, BTC, Cash, ${quBtcCash.balance}\n`); 91 92 // quoine margin balance 93 const quBalance = await quApi.getTradingAccounts(); 94 const quBtcJpyBalance = quBalance.find(x => x.currency_pair_code === 'BTCJPY') as TradingAccount; 95 process.stdout.write(`Quoine, JPY, Margin, ${_.round(quBtcJpyBalance.balance)}\n`); 96 process.stdout.write(`Quoine, JPY, Free Margin, ${_.round(quBtcJpyBalance.free_margin)}\n`); 97 process.stdout.write(`Quoine, BTC, Leverage Position, ${quBtcJpyBalance.position}\n`); 98 } 99 100 if (bbConfig.enabled) { 101 // bitbankcc cash balance 102 const bbAssetsResponse = await bbApi.getAssets(); 103 const bbJpyCash = bbAssetsResponse.assets.find(b => b.asset === 'jpy') as Asset; 104 const bbBtcCash = bbAssetsResponse.assets.find(b => b.asset === 'btc') as Asset; 105 process.stdout.write(`Bitbankcc, JPY, Cash, ${_.round(bbJpyCash.free_amount)}\n`); 106 process.stdout.write(`Bitbankcc, BTC, Cash, ${bbBtcCash.free_amount}\n`); 107 } 108 109 if (btConfig.enabled) { 110 // btcbox cash balance 111 const btAssetsResponse = await btApi.???(); 112 const btJpyCash = btAssetsResponse.assets.find(b => b.asset === 'jpy') as ???; 113 const btBtcCash = btAssetsResponse.assets.find(b => b.asset === 'btc') as ???; 114 process.stdout.write(`Btcbox, JPY, Cash, ${_.round(btJpyCash.free_amount)}\n`); 115 process.stdout.write(`Btcbox, BTC, Cash, ${btBtcCash.free_amount}\n`); 116 } 117} 118 119main();

以下のようなエラーがでてきました。

terminal

1r2 xxx$ npm run -s getBalance 2 3/Users/xxx/r2/node_modules/ts-node/src/index.ts:307 4 throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset)) 5 ^ 6TSError: ⨯ Unable to compile TypeScript 7tools/getBalance.ts (14,10): Identifier expected. (1003) 8tools/getBalance.ts (14,11): Identifier expected. (1003) 9tools/getBalance.ts (14,12): Identifier expected. (1003) 10tools/getBalance.ts (9,8): Module '"/Users/xxx/r2/node_modules/@bitr/btcbox/dist/index"' has no default export. (1192) 11 at getOutput (/Users/xxx/r2/node_modules/ts-node/src/index.ts:307:15) 12 at /Users/xxx/r2/node_modules/ts-node/src/index.ts:336:16 13 at Object.compile (/Users/xxx/r2/node_modules/ts-node/src/index.ts:498:11) 14 at Module.m._compile (/Users/xxx/r2/node_modules/ts-node/src/index.ts:392:43) 15 at Module._extensions..js (module.js:646:10) 16 at Object.require.extensions.(anonymous function) [as .ts] (/Users/xxx/r2/node_modules/ts-node/src/index.ts:395:12) 17 at Module.load (module.js:554:32) 18 at tryModuleLoad (module.js:497:12) 19 at Function.Module._load (module.js:489:3) 20 at Function.Module.runMain (module.js:676:10)

お力添え何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問