1、我有一套测试助记词 12 个: lounge face pattern cinnamon shrug average spend rapid field cheese wrist weather
2、将这套助记词导入okx和trust-wallet中,生成的Ton地址: UQAttjOP_6isnDY-tXEV89bq7Lx57GH14FXtu0rEwqmv9nai
3、但是SDK生成的地址不一致:
test('create address', async () => {
const mnemonic = "lounge face pattern cinnamon shrug average spend rapid field cheese wrist weather";
const seed = bip39.mnemonicToSeedSync(mnemonic, "")
const addressInfo = createTonAddress(seed, 0)
console.log("addressInfo===", addressInfo)
});
addressInfo=== {
privateKey: '9d61cc19c27c7043a2eb7912c0ed1c1029564d665db4e791ca3dbfd6a3e4752c8bb9822a2f5b4e5b8f1a7f4c3ec75df2db2a63b07f0a0f79095c509a773e5843',
publicKey: '8bb9822a2f5b4e5b8f1a7f4c3ec75df2db2a63b07f0a0f79095c509a773e5843',
address: 'EQD--EgA4vLZEA5ObGM50X_vNRU5sva1pwh7sn2TDbGbvwM4'
}
1 eq是旧地址,在转账交易中发生错误,TON 会自动返还回原账户 Non-Bounceable 地址(EQ开头) const nonBouncableAddress = address.toString(true, true, true, true); 测试网对应 kQ开头 2 uq是新引入地址,只要发起转账即使失败也不会返回,直接销毁 Bounceable 地址(UQ开头) const bouncableAddress = address.toString(true, true, false, true); 测试网对应 kQ开头0Q
const { key } = derivePath("m/44'/607'/0'", seedHex); 推导的地秘钥对的地址改成这样可以试试。我试过是可以的了
助记词问题
地址版本,常用的版本
如果你不确定地址版本,那么可以打一笔钱去激活地址,在浏览器上可以查看到这个地址版本, 点击下面链接查看 - https://tonscan.org/address/UQCQCLTvR0XYTyM0uxh_H8kLAR7u7v98pEKZKpbq8w2per6d
地址的 toString 编码的参数需要证明
toString(isFriendly, isUrlSafe, IsBoundle, isTest)
需要注意这里面的四个参数
如果你不确定 toString 编码格式,可以看 0:hex 这个地址是不是正确。