資訊
  • 視頻
  • 焦點(diǎn)
  • 娛樂(lè)
  • 文化
  • 財(cái)經(jīng)
  • 技術(shù)開(kāi)發(fā)合同樣例—技術(shù)開(kāi)發(fā)合同法律規(guī)定

    PDX Utopia區(qū)塊鏈協(xié)議棧,支持WASM合約與Solidity合約互相調(diào)用。具體請(qǐng)見(jiàn):

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

    是Solidity?

    以太坊Solidity是一種面向智能合約的高級(jí)語(yǔ)言,其語(yǔ)法與JavaScript類(lèi)似。Solidity是用于生成在EVM上執(zhí)行的機(jī)器級(jí)代碼的工具。Solidity編譯器獲取高級(jí)代碼并將其分解為更簡(jiǎn)單的指令。Solidity代碼封裝在Contracts中。

    以太坊合約中的Solidity

    合約是以太坊去中心化應(yīng)用程序的基本構(gòu)建模塊。所有變量和函數(shù)都是合約的一部分,這是所有項(xiàng)目的起點(diǎn)。一個(gè)名為MyFirst的空合約看起來(lái)像這樣:

    Solidity文件的布局

    源文件可以包含任意數(shù)量的合約定義,包括指令和Pragma指令。

    Version Pragma

    Version Pragma是定義代碼使用的Solidity編譯器版本的聲明。

    往期鏈接:PDX Utopia區(qū)塊鏈協(xié)議棧已正式支持eWASM智能合約

    Solidity智能合約在區(qū)塊鏈的價(jià)值

    信任

    創(chuàng)建久的、安全的、不可篡改的可追溯的記錄

    價(jià)值

    獨(dú)一無(wú)二的資產(chǎn)轉(zhuǎn)移,不需要第三方的組織

    可靠

    分布式、穩(wěn)定性

    支持WASM合約與Solidity合約互相調(diào)用

    數(shù)據(jù)類(lèi)型

    禁止使浮點(diǎn)數(shù),兼容evm中規(guī)定的數(shù)據(jù)類(lèi)型,例如:

    • bytes:不定長(zhǎng)字節(jié)數(shù)組
    • 地址:160 bit數(shù)字,在內(nèi)存中以20字節(jié)小字節(jié)無(wú)符號(hào)整型表示
    • u128:128位數(shù)字,在內(nèi)存中以16字節(jié)小字節(jié)無(wú)符號(hào)整型表示
    • u256:256位數(shù)字,在內(nèi)存中以32字節(jié)小字節(jié)無(wú)符號(hào)整型表示

    格式

    每個(gè)合約必存儲(chǔ)為wasm字節(jié)碼。

    導(dǎo)入模塊

    合約規(guī)定iport的范圍僅限于EEI提供的模塊,ethereum名稱(chēng)空間以外的包只允許使用debug,生產(chǎn)在環(huán)境中debug也應(yīng)被禁止使用。

    導(dǎo)出函數(shù)

    每個(gè)合約必須導(dǎo)兩個(gè)函數(shù)(只能導(dǎo)出兩個(gè)函數(shù))

    • 記憶:可供EEI寫(xiě)入的共享內(nèi)存
    • main:一個(gè)入口函數(shù),沒(méi)有參數(shù)也沒(méi)有返回值,將被VM執(zhí)行

    關(guān)閉要wasm的start function功能,它開(kāi)啟會(huì)影響ewasm在啟動(dòng)前電子雜志合約內(nèi)存地址指針的功能。

    HELLO-WASM-ABI

    定義ABI

    建議通過(guò)以下三步來(lái)生成ABI:

    1.使用Solidity關(guān)系編寫(xiě)contract interface;

    2.使用remix編譯contract interface得到對(duì)應(yīng)的ABI描述;

    3.參照ABI描述文件關(guān)系編寫(xiě)pdxabi::Contract;

    部署wasm合約后可以使用合約地址和合同接口在remix里對(duì)對(duì)約進(jìn)行實(shí)例化,方便測(cè)試。

    Solidity調(diào)用Wasm合約

    用sol合約來(lái)調(diào)合約wasm,與sol調(diào)用sol方式相同,假設(shè)已經(jīng)部署過(guò)hello-wasm-abi這個(gè)合約,并得到合約地址0xda3ce11d916ffba4a1289cef66a7f142ec5a0f74,通過(guò)hello-wasm-abi合約接口和地址,即可實(shí)例化這個(gè)合約,之后用法與sol調(diào)用sol一致。

    關(guān)于ABI

    技術(shù)開(kāi)發(fā)合同樣例—技術(shù)開(kāi)發(fā)合同法律規(guī)定

    熱點(diǎn)圖片

    備案號(hào):贛ICP備2022005379號(hào)
    華網(wǎng)(http://m.fshsdq.com.cn) 版權(quán)所有未經(jīng)同意不得復(fù)制或鏡像

    QQ:51985809郵箱:51985809@qq.com