小编Ish*_*ael的帖子

在int32_t上调用析构函数是否合法?

我刚刚发现下面的代码是不是有效的C++(它不会在解析int~):

int x = 5;
x.~int();
Run Code Online (Sandbox Code Playgroud)

但是,以下代码段确实有效:

int32_t x = 5;
x.~int32_t();
Run Code Online (Sandbox Code Playgroud)

这是因为int32_ttypedef在我的特定实现C++的,和析构函数,显然,可以在任何Typedef的类型调用.

我的问题是:是否需要允许第二个剪切编译的C++的任何实现?特别是,int32_t保证是一个typedef,并且如果它知道typedef typedef要int的话,是否允许销毁typedef所需的编译器?

c++ destructor

12
推荐指数
1
解决办法
243
查看次数

有没有办法在 Rust 中使用 HashMap 并获取值的向量?

我有一个hashmap: HashMap<SomeKey, SomeValue>,我想使用它hashmap并将其所有值作为向量获取。

我现在的做法是

let v: Vec<SomeValue> = hashmap.values().cloned().collect();
Run Code Online (Sandbox Code Playgroud)

cloned复制每个值,但这种构造不消耗哈希图。我可以消费地图。

有没有办法在不复制它们的情况下获取值?

hashmap rust

7
推荐指数
1
解决办法
653
查看次数

如何在AssemblyScript / Near中打印数组的长度?

我正在附近使用简单的汇编脚本进行实验,似乎无法找到一种打印数组长度的方法。这是最小的复制品:

  let a = new Array<string>();
  logging.log(a.length.toString());
Run Code Online (Sandbox Code Playgroud)

不与

ERROR TS2339: Property 'toString' does not exist on type 'i32'.

   logging.log(a.length.toString());
                        ~~~~~~~~
 in assembly/main.ts(171,23)
Run Code Online (Sandbox Code Playgroud)

虽然toString()明显存在于上i32,例如以下代码段可以编译和运行:

  let a: i32 = 5;
  logging.log(a.toString());
Run Code Online (Sandbox Code Playgroud)

assemblyscript nearprotocol

5
推荐指数
1
解决办法
58
查看次数

如何从账本设备获取NEAR公钥?

我有一个近端帐户,其密钥不在分类帐上,并且有一个带有近端应用程序的分类帐设备。

我想将分类帐中的密钥添加到我的附近帐户中。为此,我需要知道与分类账(上的某些路径)关联的公钥。我怎样才能得到这样的公钥?

nearprotocol

5
推荐指数
1
解决办法
199
查看次数

近协议 FunctionCallError(MethodResolveError(MethodNotFound))

我是区块链、智能合约和近协议方面的新手。我正在尝试从https://near.academy/学习。测试网上有一个示例合约:museum.testnet。

我使用的是 Windows,并且安装了 wsl2。

我可以用 near login命令登录。但在那之后,当我调用near view museum.testnet getmemecount命令时,它给了我下面的错误。谁可以帮我这个事?

View call: museum.testnet.getmemecount()
An error occured
Error: Querying [object Object] failed: wasm execution failed with error: FunctionCallError(MethodResolveError(MethodNotFound)).
{
  "block_hash": "SZv8UsCeNXLkhjPa9KeZY6xJXmKNb6MLyKXqHVddiT5",
  "block_height": 65109663,
  "error": "wasm execution failed with error: FunctionCallError(MethodResolveError(MethodNotFound))",
  "logs": []
}

    at JsonRpcProvider.query (/home/cinar/.nvm/versions/node/v14.18.0/lib/node_modules/near-cli/node_modules/near-api-js/lib/providers/json-rpc-provider.js:116:19)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async Account.viewFunction (/home/cinar/.nvm/versions/node/v14.18.0/lib/node_modules/near-cli/node_modules/near-api-js/lib/account.js:351:24)
    at async exports.callViewFunction (/home/cinar/.nvm/versions/node/v14.18.0/lib/node_modules/near-cli/index.js:75:48)
    at async Object.handler (/home/cinar/.nvm/versions/node/v14.18.0/lib/node_modules/near-cli/utils/exit-on-error.js:52:9)
TypedError: Querying [object Object] failed: wasm execution failed with error: FunctionCallError(MethodResolveError(MethodNotFound)).
{
  "block_hash": "SZv8UsCeNXLkhjPa9KeZY6xJXmKNb6MLyKXqHVddiT5",
  "block_height": …
Run Code Online (Sandbox Code Playgroud)

nearprotocol near

5
推荐指数
1
解决办法
912
查看次数

当当前访问密钥权限较低时,使用near-api-js调用支付方法

我有一个 NEAR 应用程序,其中大多数方法不传输任何令牌。用户使用 NEAR 钱包完成标准登录流程,获得 0.25N 的 Gas 限额,然后与应用程序交互。

我现在有一个新的端点,我希望可以从前端调用它,它期望用户支付明显超过 0.25N 的金额:

    #[payable]
    pub fn buy_stuff() {
Run Code Online (Sandbox Code Playgroud)

当我使用标准near-api-js方式调用它时:

window.contract.buy_stuff({}, undefined, price).then(m => window.location.href='/');
Run Code Online (Sandbox Code Playgroud)

它失败了,因为它试图花费登录price访问密钥的配额,而它没有——它自然只有 0.25N 的 Gas。

具体错误是“访问密钥 {account_id}:{public_key} 没有足够的余额 247864837491516400000000 用于交易成本计算 5004231023352653388973496”

我想要的是将用户重定向到钱包,并使用钱包中的完整访问密钥授权此特定交易。有没有办法做到这一点near-api-js

nearprotocol

1
推荐指数
1
解决办法
697
查看次数

标签 统计

nearprotocol ×4

assemblyscript ×1

c++ ×1

destructor ×1

hashmap ×1

near ×1

rust ×1