一 Polkadot简介
名称:
精度:
确认数:xxx块后交易安全不易会滚
是否支持token代币:是
是否支持质押:是
出块时间:
地址:Base58
交易签名算法
二 离线地址生成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| func GenerateOfflineAddress() types.Account { entropy, _ := bip39.NewEntropy(256) mnemonic, _ := bip39.NewMnemonic(entropy)
logrus.Infof("mnemonic: %s", mnemonic) seed := bip39.NewSeed(mnemonic, "")
path := `m/44'/501'/0'/0'` derivedKey, _ := hdwallet.Derived(path, seed) accountFromSeed, err := types.AccountFromSeed(derivedKey.PrivateKey) if err != nil { fmt.Printf("err=%v", err) } publicKey := accountFromSeed.PublicKey.ToBase58() fmt.Println("Solana Wallet Address:", publicKey) return accountFromSeed }
|
三 离线签名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| NewTx := types.NewTransactionParam{ Message: types.NewMessage(types.NewMessageParam{ FeePayer: Account.PublicKey, RecentBlockhash: block.Blockhash, Instructions: []types.Instruction{system.Transfer(system.TransferParam{ From: Account.PublicKey, To: common.PublicKeyFromString("6cPnfGr9Y4bZK7ykNpxe2hkKfaPPgsy6Tu5ahyGhzQLt"), Amount: 123000, })}, }), Signers: []types.Account{Account}, }
tx, err := types.NewTransaction(NewTx) if err != nil { logrus.Warnf("new transaction error: %s", err) }
hash, err := solClient.SendTransaction(bg, tx) if err != nil { logrus.Warnf("new transaction error: %s", err) } logrus.Infof("hash: %v", hash)
|
四 Stacks钱包开发中的API
1.获取账户信息
2.获取 recentBlochHash, 直接签名的话 recentBlochHash 相当于 nonce
3. 获取准备 nonce 账户的 Minimum Balance For Rent 数据
4. 获取最新块高 (Slot)
5. 根据块高获取交易
6. 根据交易 Hash 获取交易详情
7.发送交易到区块链网络
五 中心化钱包开发
六、去中心化钱包开发 HD钱包
七、总结
八、附件
官网:https://polkadot.com/
文档:https://docs.substrate.io/
资料;
节点:https://dashboard.alchemy.com/ 第三方节点
浏览器:https://polkadot.subscan.io/
第三方SDK:https://github.com/blocto/solana-go-sdk
API/Swager 文档:https://solana.com/zh/docs/rpc