Stellar是一个用于快速跨境金融交易的开源区块链网络。如果您是一名 JavaScript 开发人员并想在恒星网络上构建 dApp,那么这就是您的最佳选择。在本教程中,我们将学习如何将 Stellar 与 JavaScript 集成,从设置环境到进行第一笔交易。
那么,让我们开始吧。
哦,在开始之前,我们需要 JavaScript 的基本知识,并在您的计算机上安装 npm 和 Node.js。
首先,打开终端或命令提示符并为项目创建一个新目录:
mkdir stellar-js cd stellar-js npm init -y
此命令将初始化一个新的 Node.js 项目。
现在,安装 Stellar SDK for JavaScript。
npm install stellar-sdk
但是,等等什么是 Stellar-SDK?
Stellar SDK 是一个使用 JavaScript 与 Stellar 网络交互的强大库。
现在环境已经搭建完毕,我们将连接Stellar网络。我们需要 Stellar SDK 并连接到测试网。
什么是测试网?
Testnet 是一个免费使用的网络,供开发人员测试其应用程序而无需连接真实货币。凡是有连接真钱的主网,需要XLM来支付交易费用等。测试网与主网类似,有免费的测试Lumens(XLM),称为Friendbot。
const StellarSdk = require("stellar-sdk"); const server = new StellarSdk.Server("https://horizon-testnet.stellar.org");
这将初始化 SDK 并设置服务器以连接到测试网。
要与Stellar网络交互,您需要有一个Stellar账户。您可以通过生成键值对,使用 SDK 轻松创建新帐户。值对由公钥和私钥组成。
const pair = StellarSdk.Keypair.random(); console.log('Public Key:', pair.publicKey()); console.log('Secret Key:', pair.secret());
publicKey()是您账户的标识符,而secret()是您的私钥,请妥善保管。
在测试网中,您可以使用 Stellar 的 Friendbot 服务为您的帐户注资。
const fetch = require("node-fetch"); const fundAccount = async (publicKey) => { try { const response = await fetch( `https://friendbot.stellar.org?addr=${publicKey}` ); const data = await response.json(); console.log("Account funded:", data); } catch (error) { console.error("Error funding account:", error); } }; fundAccount(pair.publicKey());
fundAccount 函数向 Friendbot 发送请求,在您的账户中存入 10k 测试流明。因此,根据交易的状态,它将记录消息。
现在,您的帐户已创建,您可以在恒星网络上进行第一笔交易。我们将构建、签署交易并将其提交到恒星网络。我们将从我们的帐户发送 10 XLM 到另一个帐户。
const sendPayment = async (publicKey) => { try { const account = await server.loadAccount(pair.publicKey()); const transaction = new StellarSdk.TransactionBuilder(account, { fee: StellarSdk.BASE_FEE, networkPassphrase: StellarSdk.Networks.TESTNET, }) .addOperation( StellarSdk.Operation.payment({ destination: publicKey, asset: StellarSdk.Asset.native(), amount: "10", }) ) .setTimeout(30) .build(); transaction.sign(pair); const result = await server.submitTransaction(transaction); console.log("Transaction successful:", result); } catch (error) { console.error("Error sending payment:", error); } }; sendPayment("Another_Account's_Public_Key");
即使是一个逗号(,)也会毁掉你的代码。处理错误对于使代码保持在预期的轨道上非常重要。
try { const result = await server.submitTransaction(transaction); console.log("Success:", result); } catch (error) { console.error("Error:", error.response.data.extras.result_codes); }
这会捕获事务期间的任何错误并记录有助于调试代码的特定错误。
我们刚刚将 Stellar 与 JavaScript 集成,并在 Stellar 测试网上进行了第一笔交易。由于JavaScript在开发者中被广泛采用,使用Stellar过渡到区块链更加方便。
学习任何新技能的最佳方法是练习更多项目。构建小型项目并尝试这些概念。
如果您觉得这篇文章有帮助,请不要忘记继续向我表达爱意。下次记得点赞、分享、学习。
您还可以通过在此处以及 X、GitHub 和 LinkedIn 上关注我来与我保持联系。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3