Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用U64参数从js调用近智能合约?_Javascript_Integer_Nearprotocol - Fatal编程技术网

Javascript 如何使用U64参数从js调用近智能合约?

Javascript 如何使用U64参数从js调用近智能合约?,javascript,integer,nearprotocol,Javascript,Integer,Nearprotocol,我正在使用NEAR的NFT智能合约规范,它实现了NFT令牌的NEP4标准API 这些API调用中有一半要求token_id参数使用64位整数 我想从web应用程序调用此API。但是那些u64值在客户端不能是普通的Javascript数字,因为 可以在某些情况下工作,但需要更改API签名。我认为这破坏了与标准的兼容性 我尝试过将值作为字符串和BigInt传递。但我在这两种情况下都犯了错误 如果需要64位值,如何从Javascript调用接近契约的方法?例如,我可以欺骗JSON序列化程序将客户端上的

我正在使用NEAR的NFT智能合约规范,它实现了NFT令牌的NEP4标准API

这些API调用中有一半要求token_id参数使用64位整数

我想从web应用程序调用此API。但是那些u64值在客户端不能是普通的Javascript数字,因为

可以在某些情况下工作,但需要更改API签名。我认为这破坏了与标准的兼容性

我尝试过将值作为字符串和BigInt传递。但我在这两种情况下都犯了错误


如果需要64位值,如何从Javascript调用接近契约的方法?例如,我可以欺骗JSON序列化程序将客户端上的BigInt转换为线上的u64吗?

您是对的,这是一个错误,应该通过修复签名将
TokenId
接受为
字符串,然后将其解析为
u64
来修复。我提出了一个问题:

这是最新的NFT标准。您正在引用的已弃用。很抱歉没有回答这个问题,但我认为指出这一点很重要

此处为参考实施:

您可以在此处看到此标准的另一个实现以及市场:

为什么不让Rust SDK从字符串反序列化u64?JSON中不可能有64位整数。或者让Rust JS API中的序列化程序在创建JSON调用时将某些客户端类型(如BigInt)转换为JSON整数?请您详细说明您的答案好吗?