千家信息网

stellar区块链JavaScript开发包是怎样的

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,stellar区块链JavaScript开发包是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Stellar JS SDK封装了S
千家信息网最后更新 2026年11月01日stellar区块链JavaScript开发包是怎样的

stellar区块链JavaScript开发包是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Stellar JS SDK封装了Stellar交易的提交,以及与Stellar Horizon API服务器的交互过程,可以运行在Node.js环境或Web浏览器中。js-stellar-sdk主要有两个作用:1、通过HorizonAPI服务器查询Stellar区块链数据 2、构建Stellar交易、签名并提交到Stellar网络中。

1、构造Horizon访问请求

js-stellar-sdk使用Builder模式来创建要发送给Horizon API服务器的请求。从一个server对象开始,你可以通过链式调用来生成最终的查询请求。例如:

var StellarSdk = require('stellar-sdk');var server = new StellarSdk.Server('https://horizon-testnet.stellar.org');// get a list of transactions that occurred in ledger 1400server.transactions()    .forLedger(1400)    .call().then(function(r){ console.log(r); });// get a list of transactions submitted by a particular accountserver.transactions()    .forAccount('GASOCNHNNLYFNMDJYQ3XFMI7BYHIOCFW3GJEOWRPEGK2TDPGTG2E5EDW')    .call().then(function(r){ console.log(r); });

一旦请求构造好了,就可以调用.call()或.stream()来提交请求。 .call()将返回一个promise对象,其解析结果为Horizon服务器的响应。

2、发送流式请求

许多请求可以使用.stream()来调用。与.call()返回promise对象不同,.stream()将返回一个EventSource对象。Horizon API服务器会自动推送相关的数据给请求的客户端。

例如,下面的代码显示输出指定的Stellar账户的交易:

var StellarSdk = require('stellar-sdk')var server = new StellarSdk.Server('https://horizon-testnet.stellar.org');var lastCursor=0; // or load where you left offvar txHandler = function (txResponse) {    console.log(txResponse);};var es = server.transactions()    .forAccount(accountAddress)    .cursor(lastCursor)    .stream({        onmessage: txHandler    })

3、处理Stellar Horizon API服务器的响应

3.1 Stellar XDR格式解码

Horizon API服务器的交易访问端结点会以原始XDR格式返回某些字段。你可以使用.fromXDR()将XDR转换为JSON格式。

例如,下面的代码重写了上面示例中的txHandler来将XDR字段显示为JSON格式:

var txHandler = function (txResponse) {    console.log(       JSON.stringify(StellarSdk.xdr.TransactionEnvelope.fromXDR(txResponse.envelope_xdr, 'base64'))     );    console.log(       JSON.stringify(StellarSdk.xdr.TransactionResult.fromXDR(txResponse.result_xdr, 'base64'))     );    console.log(       JSON.stringify(StellarSdk.xdr.TransactionMeta.fromXDR(txResponse.result_meta_xdr, 'base64'))     );};

3.2 Horizon响应结果中的链接跟随

在Horizon响应中包含的链接已经被转换为对应的方法调用,这让你可以简单地通过.next()方法来逐页查看结果,同时也让获取额外信息更加轻松。例如:

server.payments()    .limit(1)    .call()    .then(function(response){        // will follow the transactions link returned by Horizon        response.records[0].transaction().then(function(txs){            console.log(txs);        });    });

4、Stellar交易构建与广播

4.1 Stellar交易构建

Stellar的交易构建过程稍微复杂一点,我们将在另一篇文章中介绍,你可以先查看英文原文

4.2 Stellar交易提交

一旦创建好了交易,就可以使用Server.submitTransaction()方法将其提交到 Stellar网络中。

const StellarSdk = require('stellar-sdk')StellarSdk.Network.useTestNetwork();const server = new StellarSdk.Server('https://horizon-testnet.stellar.org');(async function main() {    const account = await server.loadAccount(publicKey);    /*         Right now, we have one function that fetches the base fee.        In the future, we'll have functions that are smarter about suggesting fees,        e.g.: `fetchCheapFee`, `fetchAverageFee`, `fetchPriorityFee`, etc.    */    const fee = await server.fetchBaseFee();    const transaction = new StellarSdk.TransactionBuilder(account, { fee })        .addOperation(            // this operation funds the new account with XLM            StellarSdk.Operation.payment({                destination: "GASOCNHNNLYFNMDJYQ3XFMI7BYHIOCFW3GJEOWRPEGK2TDPGTG2E5EDW",                asset: StellarSdk.Asset.native(),                amount: "20000000"            })        )        .setTimeout(30)        .build();    // sign the transaction    transaction.sign(StellarSdk.Keypair.fromSecret(secretString));     try {        const transactionResult = await server.submitTransaction(transaction);        console.log(transactionResult);    } catch (err) {        console.error(err);    }})()

看完上述内容,你们掌握stellar区块链JavaScript开发包是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

交易 服务器 服务 方法 对象 格式 区块 结果 开发包 开发 代码 内容 字段 数据 更多 篇文章 网络 过程 链接 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技网 互联网科技开发公司 沃里互联网科技 广西互联网科技公司 互联网科技论坛 互联网科技股有哪些 随着互联网科技发展 互联网系的金融科技公司 互联网校园科技培训 互联网金融中的现代科技 千方科技属于互联网企业吗 江阴互联网智能科技产品进口 迪庆互联网科技招生 新氧科技和美国互联网有关系吗 宁波跨境商互联网科技有限公司 上海万顺科技互联网有限公司招聘 北京军民互联网科技公司 互联网科技博主张洲 亚光科技低轨卫星互联网 互联网大会出现的黑科技 工业互联网科技新基建 互联网金融公司科技 佰商互联网科技有限公司 西藏七维空间互联网科技有限公司 互联网公司科技股 花神(南京)互联网科技有限公司 用友工业互联网科技发展 互联网科技股为什么大涨 西安有哪些互联网高科技企业 互联网科技创业计划的风险分析
0