CoinBase Pro API - Typescript API
CoinBase Pro API - Typescript API
我是 TypeScript 的新手,但我已经为此工作了几周,试图在 CoinBase PRO 上设置一个快速交易机器人。我在这里使用教程脚本:
https://coinbase.github.io/coinbase-pro-trading-toolkit/cbptt_tutorials_triggers.html
此处的页面显示此代码:
<code>const options: CoinbaseProFeedConfig = {
logger: logger,
auth: { key: null, secret: null, passphrase: null}, // use public feed
channels: ['ticker'],
wsUrl: COINBASE_PRO_WS_FEED,
apiUrl: COINBASE_PRO_API_URL
};
CBPTT.Factories.CoinbasePro.getSubscribedFeeds(options, [product]).then((feed: CoinbaseProFeed) => {
...
});</code>
并提供此文本:“请注意,我们取消了 auth 对象以强制 feed 使用未经身份验证的消息。您可以设置 auth: null 以仅使用默认值,因为您有Coinbase Pro API 环境中设置的密钥,将自动使用这些密钥并接收经过身份验证的消息(如果您想在交易完成时确认,这很好)。"
但是,在查看其他教程和 Coinbase Pro (CBP) API 文档时,尽管有多个参考将您的 CBP API 密钥添加到 "environmental variables" 或 "envars" 没有说明或教程说明如何执行此操作。
这是不是 TypeScript 中的一些基础知识,以至于每个人都知道该怎么做?
在教程的另一个区域,我发现我可以像这样向 AUTH 变量添加值:
<code>
const options: CoinbaseProFeedConfig = {
logger: logger,
apiUrl: process.env.COINBASE_PRO_API_URL || 'https://api.pro.coinbase.com',
auth: {
key: process.env.COINBASE_PRO_KEY || 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
secret: process.env.COINBASE_PRO_SECRET || 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxXX==',
passphrase: process.env.COINBASE_PRO_PASSPHRASE || 'xxxxxxxxxx'
},
channels: ['ticker'],
wsUrl: COINBASE_PRO_WS_FEED
};
</code>
如上所示直接执行此操作,其中 XXXX 代表我的实际密钥似乎适用于 "CoinbaseProFeedConfig"。 . .我已成功使用它来检索我的帐户余额。
但是,当我尝试在原始教程的 "SubmitTrade" 函数中执行类似操作时,无法将 AUTH 变量添加到 "coinbaseProAPI" 脚本中,他使用以下代码:
<code>
const coinbaseProAPI = CBPTT.Factories.CoinbasePro.DefaultAPI(logger);
function submitTrade(side: string, amount: string) {
const order: PlaceOrderMessage = {
type: 'order',
time: null,
productId: product,
orderType: 'market',
side: side,
size: amount
};
coinbaseProAPI.placeOrder(order).then((result: LiveOrder) => {
pushMessage('Order executed', `Order to sell 0.1 ${base} placed. Result: ${result.status}`);
});
}
</code>
有没有人成功使用 Typescript 在 Coinbase Pro 上交易加密货币?我错过了什么?如何正确设置 "envars" 或 "environmental variables" 以允许此操作?
我正在尝试修改的教程的完整代码可以在这里看到:
https://github.com/coinbase/coinbase-pro-trading-toolkit/blob/master/tutorials/t005_alertTrader.ts
经过几个星期的撕扯我的头发。 . .我还是一头雾水。
在此先感谢您的帮助!
所以在又摸索了一周左右之后,我想我可以回答我自己的问题了。有时它只是归结为您在 google 中输入的内容。 ;)
无论如何,在对 "process.env" 进行更多挖掘之后。 . .搜索结果 return 这个 URL,它讨论了如何在 TypeScript 中开发一个非常基本的 Web 菜单。 . .本教程还讨论了环境变量以及如何访问它们:
感谢 Dan Arias 的优秀原创文章。我将在下面复制一些相关部分(添加一些菜鸟评论),以供可能正在 TypeScript 中搜索环境变量指南的任何人使用:
安装项目依赖项
您的 Node.js 项目需要一些依赖项才能使用 TypeScript 创建安全的 Express 服务器。像这样安装它们:
在您的 IDE 终端中输入:
npm i express dotenv
以上包在您的项目中的作用如下:
dotenv
:将环境变量从 .env
文件加载到 process.env
.
的零依赖模块
使用环境变量
您可以在一个中央位置定义所有这些变量,然后将它们加载到需要它们的文件模块中,而不是在整个项目的文件中使用硬编码的配置变量。这个中心位置通常被定义为一个名为 .env
的隐藏文件,您可以按如下方式创建它(在您的 IDE 终端中输入):
touch .env
如上所述,这会在您的项目目录中创建一个名为 .env
的隐藏文件
我在 MS Windows 中开发(使用 Eclipse IDE),所以我使用文件资源管理器导航到隐藏文件,因为我在 [=74= 中看不到它] 对其进行编辑。 (显然在 Windows OS 中你需要显示隐藏文件才能看到它。)
我在NotePad++ 中编辑了.env 文件,并在我的项目中添加了我需要的环境变量。 (在本例中为 Coinbase Pro Trading Toolkit).env
文件的内容如下所示:
# COINBASE API STUFF
COINBASE_PRO_KEY='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
COINBASE_PRO_SECRET='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX'
COINBASE_PRO_PASSPHRASE='xxxxxxxxxxx'
其中 XXX 代表我的实际 API 值(当然。)
如下一节所示,您项目的任何模块都可以使用 dotenv 包加载 .env
中定义的变量。
在您的 TypeScript 应用程序的顶部包括外部依赖项:
/*
* Required External Modules
*/
import * as dotenv from "dotenv";
dotenv.config();
在此之后,您可以开始在应用程序中使用环境变量,方法如下(这只是使用几种不同的方法将变量的值打印到 console.log
:
const key:any = process.env.COINBASE_PRO_KEY;
console.log(`KEY envar is ${key}`);
console.log(`PASSPHRASE envar is ${process.env.COINBASE_PRO_PASSPHRASE}`);
我希望这足以让您开始您的项目。
如果您有任何问题,请在下面添加。祝你好运!
我是 TypeScript 的新手,但我已经为此工作了几周,试图在 CoinBase PRO 上设置一个快速交易机器人。我在这里使用教程脚本:
https://coinbase.github.io/coinbase-pro-trading-toolkit/cbptt_tutorials_triggers.html
此处的页面显示此代码:
<code>const options: CoinbaseProFeedConfig = {
logger: logger,
auth: { key: null, secret: null, passphrase: null}, // use public feed
channels: ['ticker'],
wsUrl: COINBASE_PRO_WS_FEED,
apiUrl: COINBASE_PRO_API_URL
};
CBPTT.Factories.CoinbasePro.getSubscribedFeeds(options, [product]).then((feed: CoinbaseProFeed) => {
...
});</code>
并提供此文本:“请注意,我们取消了 auth 对象以强制 feed 使用未经身份验证的消息。您可以设置 auth: null 以仅使用默认值,因为您有Coinbase Pro API 环境中设置的密钥,将自动使用这些密钥并接收经过身份验证的消息(如果您想在交易完成时确认,这很好)。"
但是,在查看其他教程和 Coinbase Pro (CBP) API 文档时,尽管有多个参考将您的 CBP API 密钥添加到 "environmental variables" 或 "envars" 没有说明或教程说明如何执行此操作。
这是不是 TypeScript 中的一些基础知识,以至于每个人都知道该怎么做?
在教程的另一个区域,我发现我可以像这样向 AUTH 变量添加值:
<code>
const options: CoinbaseProFeedConfig = {
logger: logger,
apiUrl: process.env.COINBASE_PRO_API_URL || 'https://api.pro.coinbase.com',
auth: {
key: process.env.COINBASE_PRO_KEY || 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
secret: process.env.COINBASE_PRO_SECRET || 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxXX==',
passphrase: process.env.COINBASE_PRO_PASSPHRASE || 'xxxxxxxxxx'
},
channels: ['ticker'],
wsUrl: COINBASE_PRO_WS_FEED
};
</code>
如上所示直接执行此操作,其中 XXXX 代表我的实际密钥似乎适用于 "CoinbaseProFeedConfig"。 . .我已成功使用它来检索我的帐户余额。
但是,当我尝试在原始教程的 "SubmitTrade" 函数中执行类似操作时,无法将 AUTH 变量添加到 "coinbaseProAPI" 脚本中,他使用以下代码:
<code>
const coinbaseProAPI = CBPTT.Factories.CoinbasePro.DefaultAPI(logger);
function submitTrade(side: string, amount: string) {
const order: PlaceOrderMessage = {
type: 'order',
time: null,
productId: product,
orderType: 'market',
side: side,
size: amount
};
coinbaseProAPI.placeOrder(order).then((result: LiveOrder) => {
pushMessage('Order executed', `Order to sell 0.1 ${base} placed. Result: ${result.status}`);
});
}
</code>
有没有人成功使用 Typescript 在 Coinbase Pro 上交易加密货币?我错过了什么?如何正确设置 "envars" 或 "environmental variables" 以允许此操作?
我正在尝试修改的教程的完整代码可以在这里看到:
https://github.com/coinbase/coinbase-pro-trading-toolkit/blob/master/tutorials/t005_alertTrader.ts
经过几个星期的撕扯我的头发。 . .我还是一头雾水。
在此先感谢您的帮助!
所以在又摸索了一周左右之后,我想我可以回答我自己的问题了。有时它只是归结为您在 google 中输入的内容。 ;)
无论如何,在对 "process.env" 进行更多挖掘之后。 . .搜索结果 return 这个 URL,它讨论了如何在 TypeScript 中开发一个非常基本的 Web 菜单。 . .本教程还讨论了环境变量以及如何访问它们:
感谢 Dan Arias 的优秀原创文章。我将在下面复制一些相关部分(添加一些菜鸟评论),以供可能正在 TypeScript 中搜索环境变量指南的任何人使用:
安装项目依赖项
您的 Node.js 项目需要一些依赖项才能使用 TypeScript 创建安全的 Express 服务器。像这样安装它们:
在您的 IDE 终端中输入:
npm i express dotenv
以上包在您的项目中的作用如下:
dotenv
:将环境变量从 .env
文件加载到 process.env
.
使用环境变量
您可以在一个中央位置定义所有这些变量,然后将它们加载到需要它们的文件模块中,而不是在整个项目的文件中使用硬编码的配置变量。这个中心位置通常被定义为一个名为 .env
的隐藏文件,您可以按如下方式创建它(在您的 IDE 终端中输入):
touch .env
如上所述,这会在您的项目目录中创建一个名为 .env
我在 MS Windows 中开发(使用 Eclipse IDE),所以我使用文件资源管理器导航到隐藏文件,因为我在 [=74= 中看不到它] 对其进行编辑。 (显然在 Windows OS 中你需要显示隐藏文件才能看到它。)
我在NotePad++ 中编辑了.env 文件,并在我的项目中添加了我需要的环境变量。 (在本例中为 Coinbase Pro Trading Toolkit).env
文件的内容如下所示:
# COINBASE API STUFF
COINBASE_PRO_KEY='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
COINBASE_PRO_SECRET='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX'
COINBASE_PRO_PASSPHRASE='xxxxxxxxxxx'
其中 XXX 代表我的实际 API 值(当然。)
如下一节所示,您项目的任何模块都可以使用 dotenv 包加载 .env
中定义的变量。
在您的 TypeScript 应用程序的顶部包括外部依赖项:
/*
* Required External Modules
*/
import * as dotenv from "dotenv";
dotenv.config();
在此之后,您可以开始在应用程序中使用环境变量,方法如下(这只是使用几种不同的方法将变量的值打印到 console.log
:
const key:any = process.env.COINBASE_PRO_KEY;
console.log(`KEY envar is ${key}`);
console.log(`PASSPHRASE envar is ${process.env.COINBASE_PRO_PASSPHRASE}`);
我希望这足以让您开始您的项目。
如果您有任何问题,请在下面添加。祝你好运!