技术开发合同样例—技术开发合同法律规定

首页 > 教育 > 考试信息 > 正文

技术开发合同样例—技术开发合同法律规定

PDX Utopia区块链协议栈,支持WASM合约与Solidity合约互相调用。具体请见:

https://github.com/PDXbaap/ewasm-rust-demo/blob/master/README-SOL.md

是Solidity?

以太坊Solidity是一种面向智能合约的高级语言,其语法与JavaScript类似。Solidity是用于生成在EVM上执行的机器级代码的工具。Solidity编译器获取高级代码并将其分解为更简单的指令。Solidity代码封装在Contracts中。

以太坊合约中的Solidity

合约是以太坊去中心化应用程序的基本构建模块。所有变量和函数都是合约的一部分,这是所有项目的起点。一个名为MyFirst的空合约看起来像这样:

Solidity文件的布局

源文件可以包含任意数量的合约定义,包括指令和Pragma指令。

Version Pragma

Version Pragma是定义代码使用的Solidity编译器版本的声明。

往期链接:PDX Utopia区块链协议栈已正式支持eWASM智能合约

Solidity智能合约在区块链的价值

信任

创建久的、安全的、不可篡改的可追溯的记录

价值

独一无二的资产转移,不需要第三方的组织

可靠

分布式、稳定性

支持WASM合约与Solidity合约互相调用

数据类型

禁止使浮点数,兼容evm中规定的数据类型,例如:

  • bytes:不定长字节数组
  • 地址:160 bit数字,在内存中以20字节小字节无符号整型表示
  • u128:128位数字,在内存中以16字节小字节无符号整型表示
  • u256:256位数字,在内存中以32字节小字节无符号整型表示

格式

每个合约必存储为wasm字节码。

导入模块

合约规定iport的范围仅限于EEI提供的模块,ethereum名称空间以外的包只允许使用debug,生产在环境中debug也应被禁止使用。

导出函数

每个合约必须导两个函数(只能导出两个函数)

  • 记忆:可供EEI写入的共享内存
  • main:一个入口函数,没有参数也没有返回值,将被VM执行

关闭要wasm的start function功能,它开启会影响ewasm在启动前电子杂志合约内存地址指针的功能。

HELLO-WASM-ABI

定义ABI

建议通过以下三步来生成ABI:

1.使用Solidity关系编写contract interface;

2.使用remix编译contract interface得到对应的ABI描述;

3.参照ABI描述文件关系编写pdxabi::Contract;

部署wasm合约后可以使用合约地址和合同接口在remix里对对约进行实例化,方便测试。

Solidity调用Wasm合约

用sol合约来调合约wasm,与sol调用sol方式相同,假设已经部署过hello-wasm-abi这个合约,并得到合约地址0xda3ce11d916ffba4a1289cef66a7f142ec5a0f74,通过hello-wasm-abi合约接口和地址,即可实例化这个合约,之后用法与sol调用sol一致。

关于ABI

技术开发合同样例—技术开发合同法律规定

备案号:赣ICP备2022005379号
华网(http://www.hbsztv.com) 版权所有未经同意不得复制或镜像

QQ:51985809邮箱:51985809@qq.com