如何在 JavaScript 中加载合约 ABI

How to load contract ABI in JavaScript

目前near-js-sdkcreate-near-app展示了如何在JavaScript中手动定义你的合约接口:

来自 main.test.jshttps://github.com/near/create-near-app/blob/master/templates/react/src/main.test.js#L5):

  window.contract = await near.loadContract(nearConfig.contractName, {
    viewMethods: ['get_greeting'],
    changeMethods: [],
    sender: window.accountId
  })

但是手动描述合约接口比较麻烦。如何让 NEAR 直接从 cargo build?

生成的编译器文件中加载合约 ABI 信息

我们还没有为合约生成 ABI,因为我们希望支持所有编译为 Wasm 的语言,这将使定义 language-agnostic ABI 变得非常困难。然而,我们已经尝试了一些想法:https://github.com/near/borsh/tree/master/borsh-rs/borsh-schema-derive-internal然而,它们远未被整合。