跳转至

虚拟计算机

原文:https://docs.elrond.com/sdk-and-tools/rest-api/virtual-machine

查询存储在智能合约中的值。

POST计算纯函数的输出

https://gateway.elrond.com/vm-values/query

这个端点允许一个人在没有副作用的情况下执行一个智能合约的纯函数,并检索执行结果(虚拟机输出)。

RequestResponse 身体参数

参数 需要 类型 描述
scAddress 必需的 string 智能合约的地址(bech32)。
funcName 必需的 string 要执行的纯函数的名称。
一个参数名 必需的 array 作为十六进制编码字符串的 Pure 函数的参数。该数组可以为空。
呼叫者 OPTIONAL string 呼叫者的地址(bech32)。
价值 OPTIONAL string 要传输的值(可以为零)。

已成功检索虚拟机输出。

{
    "data": {
        "data": {
          "ReturnData": [
            "eyJSZ... (base64)"
          ],
          "ReturnCode": 0,
          "ReturnMessage": "",
          "GasRemaining": 1500000000,
          "GasRefund": 0,
          "OutputAccounts": {
            "...": {
              "Address": "... (base64)",
              "Nonce": 0,
              "Balance": null,
              "BalanceDelta": 0,
              "StorageUpdates": null,
              "Code": null,
              "CodeMetadata": null,
              "Data": null,
              "GasLimit": 0,
              "CallType": 0
            }
          },
          "DeletedAccounts": null,
          "TouchedAccounts": null,
          "Logs": null
        }
    },
    "error": "",
    "code": "successful"
} 

这是一个请求的例子:

POST https://gateway.elrond.com/vm-values/query HTTP/1.1
Content-Type: application/json

{
    "scAddress": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqllls0lczs7",
    "funcName": "get",
    "caller": "erd1k2s324ww2g0yj38qn2ch2jwctdy8mnfxep94q9arncc6xecg3xaq6mjse8",
    "value": "0",
    "args": ["d98d..."]
} 

POST计算纯函数的十六进制输出

https://gateway.elrond.com/vm-values/hex

这个端点允许一个人执行——没有副作用——一个智能合约的纯函数,并以十六进制编码的字符串形式检索第一个输出值。

RequestResponse 身体参数

参数 需要 类型 描述
scAddress 必需的 string 智能合约的地址(bech32)。
funcName 必需的 string 要执行的纯函数的名称。
一个参数名 必需的 array 作为十六进制编码字符串的 Pure 函数的参数。该数组可以为空。
呼叫者 OPTIONAL string 呼叫者的地址(bech32)。
价值 OPTIONAL string 要传输的值(可以为零)。

输出值检索成功。

{
  "data": "7b22..."
} 

POST计算字符串输出的纯函数

https://gateway.elrond.com/vm-values/string

这个端点允许一个人执行——没有副作用——一个智能合约的纯函数,并以字符串形式检索第一个输出值。

RequestResponse 身体参数

参数 需要 类型 描述
scAddress 必需的 string 智能合约的地址(bech32)。
funcName 必需的 string 要执行的纯函数的名称。
一个参数名 必需的 array 作为十六进制编码字符串的 Pure 函数的参数。该数组可以为空。
呼叫者 OPTIONAL string 呼叫者的地址(bech32)。
价值 OPTIONAL string 要传输的值(可以为零)。

输出值检索成功。

{
  "data": "foobar"
} 

POST获取整数输出的纯函数

https://gateway.elrond.com/vm-values/int

这个端点允许一个人执行——没有副作用——一个智能合约的纯函数,并以整数形式检索第一个输出值。

RequestResponse 身体参数

参数 需要 类型 描述
scAddress 必需的 string 智能合约的地址(bech32)。
funcName 必需的 string 要执行的纯函数的名称。
一个参数名 必需的 array 作为十六进制编码字符串的 Pure 函数的参数。该数组可以为空。
呼叫者 OPTIONAL string 呼叫者的地址(bech32)。
价值 OPTIONAL string 要传输的值(可以为零)。

输出值检索成功。

{
    "data": "2020"
} 


回到顶部