07-5SOL钱包开发流程

一 SOL简介

名称:

精度:

确认数:xxx块后交易安全不易会滚

是否支持token代币:是

是否支持质押:是

出块时间:

地址:Base58

交易签名算法

  • secp256k1
  • ed25519 BLAKE2b
  • schnorr_1
  • 其它签名算法

二 离线地址生成

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 {
// 生成随机墒---bit39
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.AccountFromBytes(derivedKey)
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)

四 SOL钱包开发中的API

1.获取账户信息

2.获取 recentBlochHash, 直接签名的话 recentBlochHash 相当于 nonce

3. 获取准备 nonce 账户的 Minimum Balance For Rent 数据

4. 获取最新块高 (Slot)

5. 根据块高获取交易

6. 根据交易 Hash 获取交易详情

7.发送交易到区块链网络

五 中心化钱包开发

六、去中心化钱包开发 HD钱包

七、总结

八、附件

资料;

节点:https://dashboard.alchemy.com/ 第三方节点

浏览器:https://solscan.io/

第三方SDK:https://github.com/blocto/solana-go-sdk

文档:https://solana.com/zh/docs

API/Swager 文档:https://solana.com/zh/docs/rpc

1
2
3


solana1.jpg

07-5SOL钱包开发流程
http://example.com/2024/11/22/07-5SOL钱包开发流程/
作者
Wangxiaowang
发布于
2024年11月22日
许可协议