虚拟计算机
原文: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"
}