Skip to content

智能合约编译器操作说明

muucunn edited this page Nov 15, 2017 · 41 revisions

智能合约编译器

你可以通过点击如下智能合约编译器入口来发布或调用你的智能合约

编译器地址

编写智能合约

编写完合约代码后,可以点击右上侧的按钮编译智能合约,若编译成功则会返回合约执行码,若编译失败会返回相应的错误。

发布智能合约

填写发布智能合约相应的参数,请注意输入参数类型和返回参数类型的填写。输入参数类型的顺序很重要,请严格按照合约的参数类型填写。

调用合约

在执行调用合约前,请根据合约的脚本哈希查询该合约是否存在,若存在会返回该合约的详细信息。调用合约的参数请用逗号隔开。

一个最简单的例子:输出一个数字

第一步:在编译器里输入如下代码

using Neo.SmartContract.Framework;

using Neo.SmartContract.Framework.Services.Neo;

class A : SmartContract

{

public static int Main() 

{

    return 65575;

}

}

第二步:点击“编译” (右上方按扭)

注意,请修改return 后面的数字,否则可能完全重复,会无法编译通过。

第三步:输入“参数”

parameter types : Void Return Type: Integer

第四步:点击“Deploy”

第五步:新开一个“编译器”页面(地址端口一样)

点“Example”,再点“Invoke Contract” 输入代码: using Neo.SmartContract.Framework; using Neo.SmartContract.Framework.Services.Neo;

public class Lock : SmartContract { [Appcall("XXXXXX --前一步的 CodeHash --XXXXXXXXX")]

public static extern int AnotherContract();
public static int Main()
{
    return AnotherContract();    
}

}

查找“前一步的CodeHash”, 再点:“Invoke” 再点编译, 再选择参数parameter types : Integer Return Type: Integer
再点“Deploy”

第六步:回到前个“编译器”页面

查找“前一步CodeHash”
(在Invoke Transaction里)

第七步:调用

"invoke" 得到 Code ,例:00C56B6167517105937D1BAEE3D6FE6A510D6C4BBC56C79078616C7566

第八步:

再来到前一步的页面。 把后一页面的Code,写入该页面的Params. 再把后一页面的CodeHash,写放这一页面,进行查找。 最后,点“Invoke”,得到结果。

Clone this wiki locally