您现在的位置:kastop>> Kas信息 Kaspa网络>>正文内容

KasWare集成步骤

欢迎阅读 KasWare 的集成文档。本文档用于学习如何将 KasWare 钱包与您的应用程序集成。

请注意:如果将来某天 kaspa 核心团队正式发布相关标准,则集成 API 可能会被修改。

入门

首先,在您的开发机器上安装 KasWare Wallet。安装并运行 KasWare Wallet 后,您应该会发现新浏览器选项卡在开发人员控制台中有一个可用的 window.kasware 对象。这就是您的网站与 KasWare Wallet 交互的方式。

浏览器检测

要验证浏览器是否正在运行 KasWare Wallet,请将以下代码片段复制并粘贴到 Web 浏览器的开发者控制台中:

复制

if (typeof window.kasware !== 'undefined') {  console.log('KasWare Wallet is installed!');}

您可以在此处查看 window.kasware 对象的完整 API。

连接到 KasWare 钱包

“连接”或“登录” KasWare 钱包实际上意味着“访问用户的 Kaspa 帐户”。

应在响应直接用户操作(例如单击按钮)时发起连接请求。在连接请求待处理时,您应始终禁用“连接”按钮。您绝不应在页面加载时发起连接请求。

我们建议您提供一个按钮,允许用户将 KasWare Wallet 连接到您的 dapp。单击此按钮应调用以下方法:

复制

kasware.requestAccounts()

演示


方法

请求账户

复制

kasware.requestAccounts()

连接当前账户。

参数

没有任何

返回

  • Promise 返回string[]:当前账户的地址。

例子

复制

try {  let accounts = await window.kasware.requestAccounts();  
console.log('connect success', accounts);
} catch (e) { 
 console.log('connect failed');
 }
 
 > connect success ['kaspa:qzhkxxaully72gk23lyn7z3d9tdzdpw48ujsavrwlulekyk7pkxzzxj26hcsq']

获取账户信息

复制

kasware.getAccounts()

获取当前账户地址

参数

没有任何

返回

  • Promise - 字符串:当前账户的地址

例子

复制

try {  let res = await window.kasware.getAccounts();
  console.log(res)} catch (e) { 
   console.log(e);
   }
   
   > ["kaspa:qzhkxxaully72gk23lyn7z3d9tdzdpw48ujsavrwlulekyk7pkxzzxj26hcsq"]

获取网络

复制

kasware.getNetwork()

获取网络

参数

没有任何

返回

  • 承诺-字符串:网络。livenet 和 testnet

例子

复制

try { 
 let res = await window.kasware.getNetwork(); 
  console.log(res)} catch (e) { 
   console.log(e);
   }
   
   > 0

交换网络

复制

kasware.switchNetwork(network)

交换网络

参数

  • 网络- 字符串:网络。mainnet/testnet/devnet

返回

没有任何

例子

复制

try { 
 let res = await window.kasware.switchNetwork("mainnet"); 
  console.log(res)
  } catch (e) { 
   console.log(e);
   }
   
   > 0

获取公钥

复制

kasware.getPublicKey()

获取当前账户的公钥。

参数

没有任何

返回

  • 承诺-字符串:publicKey

例子

复制

try {  let res = await window.kasware.getPublicKey(); 
 console.log(res)} catch (e) 
 {
   console.log(e);
   }
   
   > 03cbaedc26f03fd3ba02fc936f338e980c9e2172c5e23128877ed46827e935296f

获取余额

复制

kasware.getBalance()

获取比特币余额

参数

没有任何

返回

  • 承诺-目标:

    • 已确认数量:已确认的 Satoshis

    • 未确认数字:未确认的 Satoshis

    • 总数:总数

例子

复制

try {  let res = await window.kasware.getBalance(); 
 console.log(res)
 } catch (e) {  
 console.log(e);
 }
 
 
 > { 
    "confirmed":0,   
     "unconfirmed":100000,  
       "total":100000 
        }

发送Kaspa

复制

kasware.sendKaspa(toAddress, satoshis, options)

发送BTC

参数

  • toAddress - 字符串:要发送的地址

  • satoshis - 数字:要发送的 satoshis

  • 选项-对象:(可选)

    • feeRate - 数字:网络费率

返回

  • 承诺 - 字符串:txid

例子

复制

try { 
 let txid = await window.kasware.sendKaspa("kaspa:qzhkxxaully72gk23lyn7z3d9tdzdpw48ujsavrwlulekyk7pkxzzxj26hcsq",1000);  
 console.log(txid)} catch (e) { 
  console.log(e);
  }

签到留言

复制

kasware.signMessage(msg[, type])

签署讯息

参数

  • msg - 字符串:要签名的字符串

  • 类型 - 字符串:(可选)“ecdsa”|“bip322-simple”。默认为“ecdsa”

返回

  • 承诺 - 字符串:签名。

例子

复制

// sign by ecdsatry {
  let res = await window.kasware.signMessage("abcdefghijk123456789");
    console.log(res)
    } catch (e) { 
     console.log(e);
     }
     
     > G+LrYa7T5dUMDgQduAErw+i6ebK4GqTXYVWIDM+snYk7Yc6LdPitmaqM6j+iJOeID1CsMXOJFpVopvPiHBdulkE=
     
     // verify by ecdsa
     
     import { verifyMessage } from "@kasware/wallet-utils";     
     const pubkey = "026887958bcc4cb6f8c04ea49260f0d10e312c41baf485252953b14724db552aac";const message = "abcdefghijk123456789";const signature = "G+LrYa7T5dUMDgQduAErw+i6ebK4GqTXYVWIDM+snYk7Yc6LdPitmaqM6j+iJOeID1CsMXOJFpVopvPiHBdulkE=";
     
     const result = verifyMessage(pubkey,message,signature);
     console.log(result);
     
     > true
     
     // sign by bip322-simpletry { 
      let res = await window.kasware.signMessage("abcdefghijk123456789","bip322-simple"); 
       console.log(res)
       } catch (e) { 
        console.log(e);
        }
        
        > AkcwRAIgeHUcjr0jODaR7GMM8cenWnIj0MYdGmmrpGyMoryNSkgCICzVXWrLIKKp5cFtaCTErY7FGNXTFe6kuEofl4G+Vi5wASECaIeVi8xMtvjATqSSYPDRDjEsQbr0hSUpU7FHJNtVKqw=

推送

复制

kasware.pushTx(options)

推送交易

参数

  • 选项-对象:

  • rawtx-字符串:要推送的rawtx

返回

  • 承诺 - 字符串:txid

例子

复制

try {  
let txid = await window.kasware.pushTx({    rawtx:"0200000000010135bd7d..."  }); 
 console.log(txid)} catch (e) { 
  console.log(e);
  }

活动

账户已更改

复制

kasware.on('accountsChanged', handler: (accounts: Array<string>) => void);
kasware.removeListener('accountsChanged',
 handler: (accounts: Array<string>) => void);

每当用户的公开账户地址发生变化时,就会发出accountsChanged消息。

网络已更改

复制

kasware.on('networkChanged', handler: (network: string) => void);
kasware.removeListener('networkChanged', handler: (network: string) => void);

每当用户的网络发生变化时,就会发出 networkChanged 消息。



感动 同情 无聊 愤怒 搞笑 难过 高兴 路过
【字体: 】【收藏】【打印文章】 【 打赏 】 【查看评论

相关文章

    没有相关内容