我需要能够通过提供 NEAR 钱包的种子短语来获取其公钥和私钥。我在 NEAR 的 GitHub 帐户中找到了一个特定的库/存储库,它看起来非常适合我的案例:): https: //github.com/near/near-seed-phrase
但是,经过一些测试后,该库(parseSeedPhrase 函数)提供的结果似乎与使用near-cli 实用程序可以获得的实际密钥不匹配。
我有一个假设,NEAR 的测试网可能对 derivationPath 参数使用不同的值,并且库中作为默认值包含的参数仅适用于主网。也许我只是错过了一些东西,任何帮助将不胜感激。
当您可能拥有帐户 ID(这是公共信息)或拥有私钥(例如从 NEAR 钱包本地存储中提取),并且您想知道相应的公钥时,有多种情况。
获取相关公钥的选项有哪些?
我遇到了以下观察:
pub fn xx(mut x: Option<usize>) -> usize {
let y = x.take();
//print!("{:?}", x);
if let Some(x) = x {
x
} else {
0
}
}
Run Code Online (Sandbox Code Playgroud)
此代码(已print!被注释掉)被优化为“无”:
xorl %eax, %eax
retq
Run Code Online (Sandbox Code Playgroud)
一旦我取消注释print!,它就无法再优化了if let Some(x) = x。我继续扩展宏(使用rustc +nightly --pretty=expanded -Z unstable-options main.rs)并将代码最小化为最小的可编译示例:
#![feature(print_internals)]
#![feature(fmt_internals)]
pub fn xx(mut x: Option<usize>) -> usize {
let y = x.take();
std::io::_print(
::std::fmt::Arguments::new_v1_formatted(
&[""],
&[::std::fmt::ArgumentV1::new(&x, ::std::fmt::Debug::fmt)],
&[]
)
);
if let Some(x) = x {
x …Run Code Online (Sandbox Code Playgroud) 我应该为 NEAR 协议的每次读取付费吗?
如何查看NEAR协议智能合约中存储的值?(例如质押池费用)
查看方法和更改方法有什么区别?