智能合约模块
模块概述
- NULS智能合约采用了模块化设计的创新理念,并将其加入NULS的模块仓库,使得开发者在搭链时,可以直接选取NULS智能合约模块,就可以完成相关配置。
- NULS智能合约实现了分钟级别部署,在开发者编写完智能合约之后,可以快速在链上进行部署。
- NULS智能合约的NVM是基于JVM实现,NULS智能合约解释器将无缝支持JVM体系编程语言,并将陆续支持其他主流编程语言,应用开发者可以使用自己熟悉的语言,设计NULS智能合约。
- 通过这样的创新设计思维,NULS希望让智能合约的开发、部署和调用能够更加的便捷化,从而增加开发者对应用开发的兴趣,在不久的将来,能够打造一个丰富的智能合约库。
接口列表
sc_batch_begin
执行合约一个批次的开始通知,生成当前批次的信息/batch begin
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | string | 链id | 是 |
blockHeight | string | 当前打包的区块高度 | 是 |
blockTime | string | 当前打包的区块时间 | 是 |
packingAddress | string | 当前打包的区块打包地址 | 是 |
preStateRoot | string | 上一个stateRoot | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
N/A | void | 无特定返回值,没有错误即成功 |
sc_batch_before_end
交易模块打包完交易,在做统一验证前,通知合约模块,合约模块停止接收交易,开始异步处理这个批次的结果/batch before end
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | string | 链id | 是 |
blockHeight | string | 当前打包的区块高度 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
N/A | void | 无特定返回值,没有错误即成功,如果返回错误,则废弃这个批次,批次内已执行的合约交易退还到待打包交易队列中 |
sc_batch_end
通知当前批次结束并返回结果/batch end
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | string | 链id | 是 |
blockHeight | string | 当前打包的区块高度 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
stateRoot | string | 当前stateRoot |
txList | list<string> | 合约新生成的交易序列化字符串列表(可能有合约转账、合约共识、合约返回GAS) |
sc_package_batch_end
打包结束 - 通知当前批次结束并返回结果/batch end
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | string | 链id | 是 |
blockHeight | string | 当前打包的区块高度 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
stateRoot | string | 当前stateRoot |
txList | list<string> | 合约新生成的交易序列化字符串列表(可能有合约转账、合约共识、合约返回GAS) |
sc_contract_offline_tx_hash_list
返回指定区块中合约生成交易(合约返回GAS交易除外)的hash列表(合约新生成的交易除合约返回GAS交易外,不保存到区块中,合约模块保存了这些交易和指定区块的关系)/contract offline tx hash list
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | string | 链id | 是 |
blockHash | string | 区块hash | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
list | list<string> | 合约交易序列化字符串列表(可能有合约转账、合约共识) |
sc_initial_account_token
初始化账户token信息,节点导入账户时调用/initial account token
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | string | 链id | 是 |
address | string | 账户地址 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
N/A | void | 无特定返回值,没有错误即成功 |
sc_register_cmd_for_contract
其他模块向合约模块注册可被合约调用的命令,注册后,可在合约代码内调用注册的命令/register cmd for contract
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | string | 链id | 是 |
moduleCode | string | 模块代码 | 是 |
cmdRegisterList | string | 注册信息列表 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
N/A | void | 无特定返回值,没有错误即成功 |
sc_trigger_payable_for_consensus_contract
共识奖励收益地址是合约地址时,会触发合约的_payable(String[][] args)方法,参数是节点收益地址明细
args[0] = new String[]{address, amount}
...
/trigger payable for consensus contract
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | string | 链id | 是 |
stateRoot | string | 当前的stateRoot | 是 |
blockHeight | string | 当前打包的区块高度 | 是 |
contractAddress | string | 合约地址 | 是 |
tx | string | 当前打包区块中的CoinBase交易序列化字符串 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
value | string | 变化后的stateRoot |
sc_invoke_contract
批次通知开始后,一笔一笔执行合约/invoke contract one by one
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | string | 链id | 是 |
tx | string | 交易序列化的HEX编码字符串 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
N/A | void | 无特定返回值,没有错误即成功,如果返回错误,则丢弃这笔交易 |
sc_constructor
contract code constructor
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链ID | 是 |
contractCode | string | 智能合约代码(字节码的Hex编码字符串) | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
constructor | object | 合约构造函数详情 |
name | string | 方法名称 |
desc | string | 方法描述 |
args | list<object> | 方法参数列表 |
type | string | 参数类型 |
name | string | 参数名称 |
required | boolean | 是否必填 |
returnArg | string | 返回值类型 |
view | boolean | 是否视图方法(调用此方法数据不上链) |
event | boolean | 是否是事件 |
payable | boolean | 是否是可接受主链资产转账的方法 |
jsonSerializable | boolean | 方法返回值是否JSON序列化 |
nrc20 | boolean | 是否是NRC20合约 |
sc_delete
delete contract
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
sender | string | 交易创建者账户地址 | 是 |
password | string | 交易账户密码 | 是 |
contractAddress | string | 合约地址 | 是 |
remark | string | 交易备注 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
txHash | string | 删除合约的交易hash |
sc_create
发布合约/create contract
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
sender | string | 交易创建者账户地址 | 是 |
password | string | 账户密码 | 是 |
alias | string | 合约别名 | 是 |
gasLimit | long | GAS限制 | 是 |
price | long | GAS单价 | 是 |
contractCode | string | 智能合约代码(字节码的Hex编码字符串) | 是 |
args | object[] | 参数列表 | 否 |
remark | string | 交易备注 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
txHash | string | 发布合约的交易hash |
contractAddress | string | 生成的合约地址 |
sc_transfer
从账户地址向合约地址转账(主链资产)/transfer NULS from sender to contract address
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
address | string | 转出者账户地址 | 是 |
toAddress | string | 转入的合约地址 | 是 |
password | string | 转出者账户密码 | 是 |
amount | biginteger | 转出的主链资产金额 | 是 |
remark | string | 交易备注 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
txHash | string | 交易hash |
sc_validate_create
验证发布合约/validate create contract
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
sender | string | 交易创建者账户地址 | 是 |
gasLimit | long | GAS限制 | 是 |
price | long | GAS单价 | 是 |
contractCode | string | 智能合约代码(字节码的Hex编码字符串) | 是 |
args | object[] | 参数列表 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
N/A | void | 无特定返回值,没有错误即验证成功 |
sc_validate_call
validate call contract
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
sender | string | 交易创建者账户地址 | 是 |
value | biginteger | 调用者向合约地址转入的主网资产金额,没有此业务时填BigInteger.ZERO | 是 |
gasLimit | long | GAS限制 | 是 |
price | long | GAS单价 | 是 |
contractAddress | string | 合约地址 | 是 |
methodName | string | 合约方法 | 是 |
methodDesc | string | 合约方法描述,若合约内方法没有重载,则此参数可以为空 | 否 |
args | object[] | 参数列表 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
N/A | void | 无特定返回值,没有错误即验证成功 |
sc_validate_delete
validate delete contract
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
sender | string | 交易创建者账户地址 | 是 |
contractAddress | string | 合约地址 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
N/A | void | 无特定返回值,没有错误即验证成功 |
sc_contract_result
contract result
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
hash | string | 交易hash | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
success | boolean | 合约执行是否成功 |
errorMessage | string | 执行失败信息 |
contractAddress | string | 合约地址 |
result | string | 合约执行结果 |
gasLimit | long | GAS限制 |
gasUsed | long | 已使用GAS |
price | long | GAS单价 |
totalFee | string | 交易总手续费 |
txSizeFee | string | 交易大小手续费 |
actualContractFee | string | 实际执行合约手续费 |
refundFee | string | 合约返回的手续费 |
value | string | 调用者向合约地址转入的主网资产金额,没有此业务时则为0 |
stackTrace | string | 异常堆栈踪迹 |
transfers | list<object> | 合约转账列表(从合约转出) |
txHash | string | 合约生成交易:合约转账交易hash |
from | string | 转出的合约地址 |
value | string | 转账金额 |
outputs | list<object> | 转入的地址列表 |
to | string | 转入地址 |
value | string | 转入金额 |
orginTxHash | string | 调用合约交易hash(源交易hash,合约交易由调用合约交易派生而来) |
events | list<string> | 合约事件列表 |
tokenTransfers | list<object> | 合约token转账列表 |
contractAddress | string | 合约地址 |
from | string | 付款方 |
to | string | 收款方 |
value | string | 转账金额 |
name | string | token名称 |
symbol | string | token符号 |
decimals | long | token支持的小数位数 |
invokeRegisterCmds | list<object> | 合约调用外部命令的调用记录列表 |
cmdName | string | 命令名称 |
args | map | 命令参数,参数不固定,依据不同的命令而来,故此处不作描述,结构为 {参数名称=参数值} |
cmdRegisterMode | string | 注册的命令模式(QUERY_DATA or NEW_TX) |
newTxHash | string | 生成的交易hash(当调用的命令模式是 NEW_TX 时,会生成交易) |
contractTxList | list<string> | 合约生成交易的序列化字符串列表 |
remark | string | 备注 |
sc_contract_result_list
contract result list
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
hashList | list<string> | 交易hash列表 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
hash1 or hash2 or hash3... | object | 以交易hash列表中的hash值作为key,这里的key name是动态的 |
success | boolean | 合约执行是否成功 |
errorMessage | string | 执行失败信息 |
contractAddress | string | 合约地址 |
result | string | 合约执行结果 |
gasLimit | long | GAS限制 |
gasUsed | long | 已使用GAS |
price | long | GAS单价 |
totalFee | string | 交易总手续费 |
txSizeFee | string | 交易大小手续费 |
actualContractFee | string | 实际执行合约手续费 |
refundFee | string | 合约返回的手续费 |
value | string | 调用者向合约地址转入的主网资产金额,没有此业务时则为0 |
stackTrace | string | 异常堆栈踪迹 |
transfers | list<object> | 合约转账列表(从合约转出) |
txHash | string | 合约生成交易:合约转账交易hash |
from | string | 转出的合约地址 |
value | string | 转账金额 |
outputs | list<object> | 转入的地址列表 |
to | string | 转入地址 |
value | string | 转入金额 |
orginTxHash | string | 调用合约交易hash(源交易hash,合约交易由调用合约交易派生而来) |
events | list<string> | 合约事件列表 |
tokenTransfers | list<object> | 合约token转账列表 |
contractAddress | string | 合约地址 |
from | string | 付款方 |
to | string | 收款方 |
value | string | 转账金额 |
name | string | token名称 |
symbol | string | token符号 |
decimals | long | token支持的小数位数 |
invokeRegisterCmds | list<object> | 合约调用外部命令的调用记录列表 |
cmdName | string | 命令名称 |
args | map | 命令参数,参数不固定,依据不同的命令而来,故此处不作描述,结构为 {参数名称=参数值} |
cmdRegisterMode | string | 注册的命令模式(QUERY_DATA or NEW_TX) |
newTxHash | string | 生成的交易hash(当调用的命令模式是 NEW_TX 时,会生成交易) |
contractTxList | list<string> | 合约生成交易的序列化字符串列表 |
remark | string | 备注 |
sc_imputed_create_gas
预估发布合约消耗的GAS/imputed create gas
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
sender | string | 交易创建者账户地址 | 是 |
contractCode | string | 智能合约代码(字节码的Hex编码字符串) | 是 |
args | object[] | 参数列表 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
gasLimit | long | 消耗的gas值,执行失败返回数值1 |
sc_imputed_call_gas
imputed call gas
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
sender | string | 交易创建者账户地址 | 是 |
value | biginteger | 调用者向合约地址转入的主网资产金额,没有此业务时填BigInteger.ZERO | 是 |
contractAddress | string | 合约地址 | 是 |
methodName | string | 合约方法 | 是 |
methodDesc | string | 合约方法描述,若合约内方法没有重载,则此参数可以为空 | 否 |
args | object[] | 参数列表 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
gasLimit | long | 消耗的gas值,执行失败返回数值1 |
sc_token_transfer
NRC20-token转账/transfer NRC20-token from address to toAddress
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
address | string | 转出者账户地址 | 是 |
toAddress | string | 转入地址 | 是 |
contractAddress | string | token合约地址 | 是 |
password | string | 转出者账户密码 | 是 |
amount | biginteger | 转出的token资产金额 | 是 |
remark | string | 交易备注 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
txHash | string | 交易hash |
sc_token_balance
NRC20代币余额详情/NRC20-token balance
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链ID | 是 |
contractAddress | string | 合约地址 | 是 |
address | string | 账户地址 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
contractAddress | string | 合约地址 |
name | string | token名称 |
symbol | string | token符号 |
amount | string | token数量 |
decimals | long | token支持的小数位数 |
blockHeight | long | 合约创建时的区块高度 |
status | int | 合约状态(0-不存在, 1-正常, 2-终止) |
sc_invoke_view
invoke view contract
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
contractAddress | string | 合约地址 | 是 |
methodName | string | 合约方法 | 是 |
methodDesc | string | 合约方法描述,若合约内方法没有重载,则此参数可以为空 | 否 |
args | object[] | 参数列表 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
result | string | 视图方法的调用结果 |
sc_contract_info
合约信息详情/contract info
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链ID | 是 |
contractAddress | string | 合约地址 | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
createTxHash | string | 发布合约的交易hash |
address | string | 合约地址 |
creater | string | 合约创建者地址 |
alias | string | 合约别名 |
createTime | long | 合约创建时间(单位:秒) |
blockHeight | long | 合约创建时的区块高度 |
directPayable | boolean | 是否接受直接转账 |
tokenType | int | token类型, 0 - 非token, 1 - NRC20, 2 - NRC721 |
nrc20 | boolean | 是否是NRC20合约 |
nrc20TokenName | string | NRC20-token名称 |
nrc20TokenSymbol | string | NRC20-token符号 |
decimals | long | NRC20-token支持的小数位数 |
totalSupply | string | NRC20-token发行总量 |
status | string | 合约状态(not_found, normal, stop) |
method | list<object> | 合约方法列表 |
name | string | 方法名称 |
desc | string | 方法描述 |
args | list<object> | 方法参数列表 |
type | string | 参数类型 |
name | string | 参数名称 |
required | boolean | 是否必填 |
returnArg | string | 返回值类型 |
view | boolean | 是否视图方法(调用此方法数据不上链) |
event | boolean | 是否是事件 |
payable | boolean | 是否是可接受主链资产转账的方法 |
jsonSerializable | boolean | 方法返回值是否JSON序列化 |
sc_contract_tx
合约交易/contract tx
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
hash | string | 交易hash | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
hash | string | 交易hash |
type | integer | 交易类型 |
time | long | 交易时间 |
blockHeight | long | 区块高度 |
fee | string | 交易手续费 |
value | string | 交易金额 |
remark | string | 备注 |
scriptSig | string | 签名信息 |
status | integer | 交易状态(0 - 确认中,1 - 已确认) |
confirmCount | long | 交易确认次数 |
size | int | 交易大小 |
inputs | list<object> | 交易输入集合 |
address | string | 输入地址 |
assetsChainId | int | 资产链ID |
assetsId | int | 资产ID |
amount | string | 花费金额 |
nonce | string | 地址的账本nonce值 |
locked | byte | 解锁交易的标签(0 - 非解锁交易,1 - 解锁交易) |
outputs | list<object> | 交易输出集合 |
address | string | 输出地址 |
assetsChainId | int | 资产链ID |
assetsId | int | 资产ID |
amount | string | 输出金额 |
lockTime | long | 锁定时间 |
txData | map | 合约交易业务数据 |
data | object | 根据合约交易类型反映不同的业务数据(这里为了描述四种情况,四种业务放在一起描述,实际上不同时存在,只存在一个) |
create | object | 发布合约交易的业务数据 |
sender | string | 交易创建者地址 |
contractAddress | string | 创建的合约地址 |
alias | string | 合约别名 |
hexCode | string | 智能合约代码(字节码的Hex编码字符串) |
gasLimit | long | GAS限制 |
price | long | GAS单价 |
args | string[][] | 参数列表 |
call | object | 调用合约交易的业务数据 |
sender | string | 交易创建者地址 |
contractAddress | string | 合约地址 |
value | string | 调用者向合约地址转入的主网资产金额,没有此业务时填BigInteger.ZERO |
gasLimit | long | GAS限制 |
price | long | GAS单价 |
methodName | string | 合约方法 |
methodDesc | string | 合约方法描述,若合约内方法没有重载,则此参数可以为空 |
args | string[][] | 参数列表 |
delete | object | 删除合约交易的业务数据 |
sender | string | 交易创建者地址 |
contractAddress | string | 合约地址 |
transfer | object | 合约转账交易的业务数据 |
orginTxHash | string | 调用合约交易hash(源交易hash,合约交易由调用合约交易派生而来) |
contractAddress | string | 合约地址 |
contractResult | object | 合约执行结果 |
success | boolean | 合约执行是否成功 |
errorMessage | string | 执行失败信息 |
contractAddress | string | 合约地址 |
result | string | 合约执行结果 |
gasLimit | long | GAS限制 |
gasUsed | long | 已使用GAS |
price | long | GAS单价 |
totalFee | string | 交易总手续费 |
txSizeFee | string | 交易大小手续费 |
actualContractFee | string | 实际执行合约手续费 |
refundFee | string | 合约返回的手续费 |
value | string | 调用者向合约地址转入的主网资产金额,没有此业务时则为0 |
stackTrace | string | 异常堆栈踪迹 |
transfers | list<object> | 合约转账列表(从合约转出) |
txHash | string | 合约生成交易:合约转账交易hash |
from | string | 转出的合约地址 |
value | string | 转账金额 |
outputs | list<object> | 转入的地址列表 |
to | string | 转入地址 |
value | string | 转入金额 |
orginTxHash | string | 调用合约交易hash(源交易hash,合约交易由调用合约交易派生而来) |
events | list<string> | 合约事件列表 |
tokenTransfers | list<object> | 合约token转账列表 |
contractAddress | string | 合约地址 |
from | string | 付款方 |
to | string | 收款方 |
value | string | 转账金额 |
name | string | token名称 |
symbol | string | token符号 |
decimals | long | token支持的小数位数 |
invokeRegisterCmds | list<object> | 合约调用外部命令的调用记录列表 |
cmdName | string | 命令名称 |
args | map | 命令参数,参数不固定,依据不同的命令而来,故此处不作描述,结构为 {参数名称=参数值} |
cmdRegisterMode | string | 注册的命令模式(QUERY_DATA or NEW_TX) |
newTxHash | string | 生成的交易hash(当调用的命令模式是 NEW_TX 时,会生成交易) |
contractTxList | list<string> | 合约生成交易的序列化字符串列表 |
remark | string | 备注 |
sc_token_assets_list
token资产集合/token assets list
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链ID | 是 |
address | string | 账户地址 | 是 |
pageNumber | int | 页码 | 否 |
pageSize | int | 每页大小 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
contractAddress | string | 合约地址 |
name | string | token名称 |
symbol | string | token符号 |
amount | string | token数量 |
decimals | long | token支持的小数位数 |
blockHeight | long | 合约创建时的区块高度 |
status | int | 合约状态(0-不存在, 1-正常, 2-终止) |
sc_token_transfer_list
token转账交易列表/token transfer list
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链ID | 是 |
address | string | 账户地址 | 是 |
pageNumber | int | 页码 | 否 |
pageSize | int | 每页大小 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
contractAddress | string | 合约地址 |
from | string | 付款方 |
to | string | 收款方 |
value | string | 转账金额 |
time | long | 交易时间 |
status | byte | 交易状态(0 - 确认中, 1 - 已确认, 2 - 失败) |
txHash | string | 交易hash |
blockHeight | long | 区块高度 |
name | string | token名称 |
symbol | string | token符号 |
decimals | long | token支持的小数位数 |
info | string | token资产变动信息 |
sc_account_contracts
账户的合约地址列表/account contract list
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链ID | 是 |
address | string | 账户地址 | 是 |
pageNumber | int | 页码 | 否 |
pageSize | int | 每页大小 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
contractAddress | string | 合约地址 |
createTime | long | 合约创建时间 |
height | long | 合约创建时区块高度 |
confirmCount | long | 合约创建确认次数 |
alias | string | 合约别名 |
status | int | 合约状态(0 - 不存在或者创建中, 1 - 正常, 2 - 已删除, 3 - 创建失败, 4 - 锁定中) |
msg | string | 合约创建失败的错误信息 |
sc_upload
合约代码jar包上传/upload
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
jarFileData | string | 文件描述和文件字节流转换Base64编码字符串(文件描述和Base64字符串以逗号隔开) | 是 |
返回值
字段名 | 字段类型 | 参数描述 |
constructor | object | 合约构造函数详情 |
name | string | 方法名称 |
desc | string | 方法描述 |
args | list<object> | 方法参数列表 |
type | string | 参数类型 |
name | string | 参数名称 |
required | boolean | 是否必填 |
returnArg | string | 返回值类型 |
view | boolean | 是否视图方法(调用此方法数据不上链) |
event | boolean | 是否是事件 |
payable | boolean | 是否是可接受主链资产转账的方法 |
jsonSerializable | boolean | 方法返回值是否JSON序列化 |
isNrc20 | boolean | 是否是NRC20合约 |
code | string | 智能合约代码(字节码的Hex编码字符串) |
sc_call
call contract
scope:public
version:1.0
参数列表
参数名 | 参数类型 | 参数描述 | 是否非空 |
chainId | int | 链id | 是 |
sender | string | 交易创建者账户地址 | 是 |
password | string | 调用者账户密码 | 是 |
value | biginteger | 调用者向合约地址转入的主网资产金额,没有此业务时填BigInteger.ZERO | 是 |
gasLimit | long | GAS限制 | 是 |
price | long | GAS单价 | 是 |
contractAddress | string | 合约地址 | 是 |
methodName | string | 合约方法 | 是 |
methodDesc | string | 合约方法描述,若合约内方法没有重载,则此参数可以为空 | 否 |
args | object[] | 参数列表 | 否 |
remark | string | 交易备注 | 否 |
返回值
字段名 | 字段类型 | 参数描述 |
txHash | string | 调用合约的交易hash |
Last Updated: 2019/9/3 下午4:38:35