Javascript 如何使用U64参数从js调用近智能合约?
我正在使用NEAR的NFT智能合约规范,它实现了NFT令牌的NEP4标准API 这些API调用中有一半要求token_id参数使用64位整数 我想从web应用程序调用此API。但是那些u64值在客户端不能是普通的Javascript数字,因为 可以在某些情况下工作,但需要更改API签名。我认为这破坏了与标准的兼容性 我尝试过将值作为字符串和BigInt传递。但我在这两种情况下都犯了错误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序列化程序将客户端上的
如果需要64位值,如何从Javascript调用接近契约的方法?例如,我可以欺骗JSON序列化程序将客户端上的BigInt转换为线上的u64吗?您是对的,这是一个错误,应该通过修复签名将
TokenId
接受为字符串,然后将其解析为u64
来修复。我提出了一个问题:这是最新的NFT标准。您正在引用的已弃用。很抱歉没有回答这个问题,但我认为指出这一点很重要
此处为参考实施:
您可以在此处看到此标准的另一个实现以及市场:
为什么不让Rust SDK从字符串反序列化u64?JSON中不可能有64位整数。或者让Rust JS API中的序列化程序在创建JSON调用时将某些客户端类型(如BigInt)转换为JSON整数?请您详细说明您的答案好吗?