API 函数
常见用例
TRC 代币 / TRX 交易
如果您想要使用 TRX 钱包中的 TRX 余额购买 TRC 代币, 执行此交易的标准流程是进行代币交换、签署交易并将该交易广而告之。 由于执行代币交换和签署交易输出的是 JSON 文件,我们应当编写一个脚本来处理交易过程。
以下 JavaScript 示例是一个执行交易的简单程序:
-
定义 tronWeb 对象使被允许连接到 TronGrid。
-
定义参数对象。该参数对象应由交换 ID、代币名称、卖出的TRX数量、特定汇率下预计的代币数量,以及秘钥组成。
-
定义一个进行交易操作的函数 此函数接收参数,执行交换,签署事务,并将该交易广而告之给波场网络。
-
执行该函数.
const TronWeb = require('tronweb');
const HttpProvider = TronWeb.providers.HttpProvider;
const fullNode = new HttpProvider('https://api.trongrid.io');
const solidityNode = new HttpProvider('https://api.trongrid.io');
const eventServer = 'https://api.trongrid.io';
const privateKey = 'Your Private Key Here';
// Create tronWeb object defining Node addresses
const tronWeb = new TronWeb(
fullNode,
solidityNode,
eventServer,
privateKey,
);
// Create param object that defines all the API input parameters
const param = {
exchangeID:5, //Exchange ID Number
tokenName:"_", //Token name for TRX
sold:100000000, //TRX amount sold. Must be in SUN denomination.
expected:1, //Assigned as 1 to keep wide limit, like market order
privKey:'Your Private Key Here',
}
async function trade(param){
try {
// Performs the trade between Token and TRX
const tradeobj = await tronWeb.transactionBuilder.tradeExchangeTokens(exchangeID = param.exchangeID,
tokenName = param.tokenName,
tokenAmountSold = param.sold,
tokenAmountExpected = param.expected,
ownerAddress = "Your TRX Wallet Address Here - in Hex String");
// Signing the transaction
const signedtxn = await tronWeb.trx.sign(tradeobj, param.privKey);
// Broadcasting the transaction
const receipt = await tronWeb.trx.sendRawTransaction(signedtxn);
console.log(receipt)
}
catch(err) {
console.log(err);
};
};
trade(param); // Execute the function
关于市场滑点的说明在
tradeExchangeTokensAPI 中,tokenAmountExpected是一个关键的 body 参数。此参数与许多中心化交易所中的 Stop-Loss Limit 运作原理类似。示例:假设在既定代币/TRX比例的条件下,您有一个函数计算要接收的 TRC 代币的预期数量。 您将此预期金额作为输入参数提供给
tradeExchangeTokensAPI函数。 但是, API 调用可能会失败 ,原因有两个:
交易过程期间出现价格滑点,推高交易比率,从而减少实际收到的 TRC 代币数额,使其低于预期数额。
相比 TRC 代币余额购买大量 TRC 代币。 此操作可提高交换比率,从而减少实际收到的 TRC 代币数量,使其低于预期金额。
为避免这些问题,您可以尝试将预期值设置为始终低于计算预期值 1% 的数值。 但是,要认识到设定非常低的预期值以强制交易成功,也会为您提供以高价购买代币的可能。
Updated 9 months ago