Terra 的 Dart SDK
示例 · API 参考 · Pubspec 包 · GitHub
Terra-dart 是一个 Dart SDK,用于从 Web、移动设备或 Flutter 环境中编写与 Terra 区块链交互的应用程序,并提供对核心数据结构、序列化、密钥管理和 API 请求生成的简单抽象。
特点
我们强烈建议在支持类型声明的代码编辑器中使用 terra-dart,以便您可以利用包中包含的有用类型提示。
安装
从 NPM 获取最新版本
npm install @terra-money/terra-dart
用法
terra-dart 可在 Node.js 和浏览器中使用。请参阅 文档 以获取有关如何开始的说明。
获取区块链数据
❗ terra-dart 可以连接 terra-classic 和 terra 网络。如果您想与 classic 链通信,则必须将 isClassic 设置为 true。
import { LCDClient, Coin } from '@terra-money/terra-dart';
// connect to pisco testnet
const terra = new LCDClient({
URL: 'https://pisco-lcd.terra.dev',
chainID: 'pisco-1',
isClassic: false // if it is unset, LCDClient assumes the flag is false.
});
// connect to columbus-5 terra classic network
const terra = new LCDClient({
URL: 'https://columbus-lcd.terra.dev',
chainID: 'columbus-5',
isClassic: true // *set to true to connect terra-classic chain*
});
// To use LocalTerra
// const terra = new LCDClient({
// URL: 'https://:1317',
// chainID: 'localterra'
// });
// get the current balance of `terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v`
const balance = terra.bank.balance('terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v');
console.log(balance);
广播交易
首先,获取一些 testnet 代币给 terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v,或使用 LocalTerra。
import { LCDClient, MsgSend, MnemonicKey } from '@terra-money/terra-dart';
// create a key out of a mnemonic
const mk = new MnemonicKey({
mnemonic:
'notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius',
});
// connect to bombay testnet
const terra = new LCDClient({
URL: 'https://pisco-lcd.terra.dev',
chainID: 'pisco-1',
});
// To use LocalTerra
// const terra = new LCDClient({
// URL: 'https://:1317',
// chainID: 'localterra'
// });
// a wallet can be created out of any key
// wallets abstract transaction building
const wallet = terra.wallet(mk);
// create a simple message that moves coin balances
const send = new MsgSend(
'terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v',
'terra17lmam6zguazs5q5u6z5mmx76uj63gldnse2pdp',
{ uluna: 1200000}
);
wallet
.createAndSignTx({
msgs: [send],
memo: 'test from terra-dart!',
})
.then(tx => terra.tx.broadcast(tx))
.then(result => {
console.log(`TX hash: ${result.txhash}`);
});
浏览器中的 terra-dart
如果您使用 <script> 标签加载 terra-dart,您可以从全局 Terra 对象访问 @terra-money/terra-dart 的所有对象。
在您的浏览器中包含以下内容
<script
crossorigin
src="https://unpkg.com/@terra-money/terra-dart/dist/bundle.js"
></script>
您可以在 这里 找到一个小的 JSFiddle 示例,该示例刷新当前 Oracle 投票。
React Native 中的 terra-dart
为了在 React Native 中使用 terra-dart,您需要将 node-libs-react-native 包和 react-native-get-random-values 包添加到您的 React Native 应用程序的 package.json 文件中。
yarn add node-libs-react-native react-native-get-random-values
您需要在应用程序的入口点(例如 index.tsx)中注册 Node.js 原生模块。
import 'node-libs-react-native/globals';
import 'react-native-get-random-values';
另外,在您的 metro.config.js 文件中添加解析器。
module.exports {
// ...
resolver: {
// ...
extraNodeModules: require('node-libs-react-native'),
},
// ...
}
许可证
本软件根据 MIT 许可证授权。有关完整的披露信息,请参阅 LICENSE。
© 2020 Terraform Labs, PTE.

