星云链使用wallet部署,调用合约

#编写一个智能合约

星云链智能合约可以使用JavaScript、TypeScript来编写。

  • 在JavaScript、TypeScript基础上,编写智能合约有三个简要规范:

    • 1、智能合约代码必须是一个Prototype的对象;
    • 2、智能合约代码必须有一个init()的方法,这个方法只会在部署的时候被执行一次;
    • 3、智能合约里面的私有方法是以_开头的方法,私有方法不能被外部直接调用;
  • 根据上面的规范写一个简单的智能合约

'use strict';
//定义一个合约
var TestProtocal = function () {
    
};
TestProtocal.prototype = {
    //合约初始化方法
    init:function () {
        return "hello world";
    },
    //无参数的合约方法
    printTest:function () {
      return "调用到printTest";
    },
    //一个参数的合约方法
    argTest:function (arg) {
        return arg;
    },
    //多个参数合约方法
    argTest2:function (arg1, arg2) {
        return "arg1:"+arg1+"arg2:"+arg2;
    }
};
module.exports = TestProtocal;

这只是一个简单的合约,只是为了演示合约上传,调用,了解更多请移步智能合约存储区

  • 部署这个合约

  • 1、 打开自己的钱包->合约->部署

部署合约1

    • 2、 将上面的合约复制到合约代码里面
    • 3、编程语言js
    • 4、数空就好了
    • 5、选择自己的钱包

部署合约2

  • 输入密码,解锁,测试

合约部署3

1、测试结果 {“result”:”"hello world"”,”execute_err”:””,”estimate_gas”:”20672”} 2、看到 hello world 说明部署成功,”hello world”是在init()方法中输出,这也证明init()方法是在合约部署时执行一次

  • 提交合约 部署合约

合约地址:n1mKgkmaMgCXf6tCKtHd1oUUSM5LzfWVhgk 复制下来,下面调用合约要用到

执行合约

执行合约1

先执行一个简单的无参数的printTest()

  • 函数:要调用的函数名 printTest
  • 参数:printTest没有参数,不填就好
  • 目的地址:刚才部署合约返回的地址 n1mKgkmaMgCXf6tCKtHd1oUUSM5LzfWVhgk
  • 选择钱包,解锁

执行合约2

  • 测试

测试结果即 printTest() 返回的字符串

  • 提交 可以获取到一个交易hash值,用于查看交易详情

调用传参数的方法argTest:function (arg)

合约方法参数,无参数为空字符串,有参数时为JSON数组

    //一个参数的合约方法
    argTest:function (arg) {
        return arg;
    },

argTest需要传参,合约要求参数要么为空串(无参数),要么为一个JSON数组,那这里显然需要传一个数组,直接上图了

执行合约3

传一个字符串“2”给argTest,结果返回“2”

多参数跟这个差不多,参数用“,”隔开,JSON串嘛 举个例子:[“下班”,”回家”]

#参考资料

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦