solana是如何算seed地址

晓道 发布于 2024-12-15 阅读 2834

最近在用golang调用solana合约,发现没有rust和ts简单,以及一些小的失误,导致我算的seed地址和ts算的有些不一样,所以深入研究了一番。

最近在用golang调用solana合约,发现没有rust和ts简单,以及一些小的失误,导致我算的seed地址和ts算的有些不一样,所以深入研究了一番。

const PDA_MARKER = "ProgramDerivedAddress"
// Create a program address.
// Ported from https://github.com/solana-labs/solana/blob/216983c50e0a618facc39aa07472ba6d23f1b33a/sdk/program/src/pubkey.rs#L204
func CreateProgramAddress(seeds [][]byte, programID PublicKey) (PublicKey, error) {
	if len(seeds) > MaxSeeds {
		return PublicKey{}, ErrMaxSeedLengthExceeded
	}

	for _, seed := range seeds {
		if len(seed) > MaxSeedLength {
			return PublicKey{}, ErrMaxSeedLengthExceeded
		}
	}

	buf := []byte{}
	for _,...

剩余50%的内容订阅专栏后可查看

该文章收录于
晓道秘籍
4 订阅 16 篇内容

0 条评论