Kaspa钱包框架(go版)
Kaspa钱包框架
Kaspa 钱包为Kaspa 网络实现钱包功能
请注意:该项目正在大力开发中 Kaspa钱包使用以下模块: kaspa-grpc - 提供 gRPC 绑定 kaspa-grpc-node - 服务器端的 gRPC 传输(NodeJs) kaspa-grpc-web - 客户端(浏览器)的 gRPC 传输 kaspacore-lib - Kaspa UTXO 和交易数据结构 基于 Kaspa 钱包框架构建的应用程序: 卡斯帕水龙头- 卡斯帕水龙头网站 kaspa-wallet-cli - 命令行钱包 KDX - Kaspa桌面钱包 请注意:所有 Kaspa 应用程序和库都正在大力开发中 在使用 Kaspa 钱包之前,您需要初始化框架。框架初始化加载各种依赖项,例如底层事务加密中使用的模块 网络类型由地址前缀标识: 可以使用两个静态函数创建钱包类: 钱包创建函数接受以下配置对象: 以下选项很重要: 从助记符创建: 使用动态生成的助记词创建新的钱包实例: 从加密助记词恢复: Wallet 类包含一个集成记录器,可以设置为以下级别之一: 该功能 当启用监控功能时,钱包将保持与钱包 UTXO 条目和余额的连接 该函数接受 失败时, 钱包保留两种类型的余额: 可用- 余额包含可供使用的 KAS,由区块成熟度蓝色分数超过 10 的 UTXO 记录组成。 待处理- 余额包含新收到的 UTXO 区块到期时间小于 10 的交易。每个 UTXO 到期时,余额都会从待处理状态重新定位为可用状态。 Wallet 类发出以下事件:成分
kaspadKaspa钱包框架
secp256k1-wasm。blake2b-wasmconst { Wallet, initKaspaFramework } = require('@kaspa/wallet');const { RPC } = require('@kaspa/grpc-node');(async () => { 
  await initKaspaFramework();
  ...})();创建钱包
kaspa(主网)kaspatest(测试网)kaspadev(开发网)kaspasim(模拟网)static fromMnemonic(
  seedPhrase: string, 
  networkOptions: NetworkOptions, 
  options: WalletOptions = {}): Wallet { }static async import(
  password: string, 
  encryptedMnemonic: string, 
  networkOptions: NetworkOptions, 
  options: WalletOptions = {}): Promise <Wallet> { }export interface WalletOptions{
  skipSyncBalance?:boolean;           // do not perform balance sync
  addressDiscoveryExtent?:number;     // address derivation scan (default 64)
  syncOnce?:boolean;                  // 'sync-and-exit' (true) or 'monitoring' mode
  logLevel?:string;                   // wallet log level
  disableAddressDerivation?:boolean;  // disable address derivation and discovery}export interface NetworkOptions{
  network:Network;                    // network: kaspa, kaspatest, kaspadev, kaspasim
  rpc?:IRPC;                          // gRPC interface (must be bound to transport before use)}addressDiscoveryExtent- 从上次已知使用的地址向前扫描的 HD 地址派生数syncOnce- 允许暂时启动钱包,而不启动监控服务disableAddressDerivation- 以单地址模式启动钱包,接收地址和找零地址始终是私钥生成的第一个接收地址。const network = "kaspatest";const { port } = Wallet.networkTypes[kaspatest].port; // default port for testnetconst rpc = new RPC({ clientConfig:{ host : '127.0.0.1:'+port } });Wallet.fromMnemonic(
    "user mnemonic string",
    { network, rpc },
    {disableAddressDerivation:true});const wallet = new Wallet(null, null, {network, rpc});const encryptedMnemonic = await wallet.export(cmd.password);console.log('mnemonic:',wallet.mnemonic);console.log('encrypted mnemonic:',encryptedMnemonic);const password = "user password";const encryptedMnemonic = "previously encrypted mnemonic";let wallet = await Wallet.import(password, encryptedMnemonic, { network, rpc })日志记录和调试
error、warn、info、verbose、debug。默认日志级别为info.您可以将日志级别设置为verbose查看内部钱包数据处理活动。WalletOptions钱包日志级别可以作为(如上所述)的一部分提供或在运行时设置,如下所示:wallet.setLogLevel('verbose');同步钱包
Wallet::sync(once?:boolean)可用于进行钱包同步。钱包同步将连接到kaspad并扫描可用的 UTXO 条目以查找钱包地址,更新钱包余额,如果once为 true,则退出,如果once为 false,则启动钱包监控服务。kaspad,并动态更新钱包 UTXO 条目和余额。wallet.sync()- 以监控模式启动钱包wallet.sync(true)- 执行单次同步发送交易
submitTransaction()函数可用于在 Kaspa 网络上创建交易:async submitTransaction(txParamsArg: TxSend): Promise < TxResp | null > {
  // ...}TxSend输入对象并返回一个Promise<TxResp>对象:export interface TxSend {
  toAddr: string;
  amount: number;
  fee: number;
  changeAddrOverride? : string;
  networkFeeMax?:number;}toAddr- 目的地地址amount- 以基本单位 (sompis) 表示的 KAS 数量fee- 交易优先费changeAddrOverride-(可选)允许您为找零交易提供自己的地址networkFeeMax-(可选)允许您设置自动网络(数据存储)费用计算的上限。 Kaspa Wallet会根据交易规模自动计算适当的费用并添加到交易中。如果该属性被省略或设置为零,则此功能将被禁用。export interface TxResp {
  txid: string;
  rpctx?: string; // reserved}txid- 生成的交易IDtry {
  let response = await this.wallet.submitTransaction({
      address, // destination address
      amount,  // amount in base units
      fee,     // user fees
  });
  if(!response)
    console.log('general error');  // if kaspad returns null (should never occur)
  else
    console.log('success:', txid);} catch(ex) {
  console.log('error:',ex.toString());}submitTransaction()拒绝并显示错误,指出失败的原因。钱包余额
Wallet::balance是一个包含以下属性的对象,这些属性在钱包操作期间更新:wallet.balance = {
  available: 5150000000000,
  pending: 247500000000,
  total: 5397500000000}钱包活动
Wallet::on(subject, (data) => { ... })允许事件处理程序注册。与 NodeJ 类似,EventEmitter您可以通过提供原始回调来取消注册事件,Wallet::removeEventListener(subject, handler)如下所示:const balanceHandler = (balance)=>{ console.log(balance); }wallet.on('balance-update', balanceHandler);wallet.removeEventListener('balance-update', balanceHandler);api-online- gPRC API上线api-offline- gRPC API 离线sync-start- 钱包同步开始(每次 gRPC API 连接或重新连接时发生)sync-finish- 钱包同步完成ready- 钱包已准备好使用(同步完成后发送,事件数据包含余额对象)blue-score-changed- 表示Kaspa蓝色分数变化(新区块生成)utxo-change- 当UTXO添加到钱包UTXO集中或从钱包UTXO集中删除时发出信号balance-update- 表示钱包余额变化(事件数据包含余额对象)
|  |  |  |  |  |  |  |  | 
| 感动 | 同情 | 无聊 | 愤怒 | 搞笑 | 难过 | 高兴 | 路过 | 
相关文章
- 
                        没有相关内容
                    

 
               
                     会员登录
会员登录