国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

WEB3之路(一)-- solidity學(xué)習(xí)筆記

這篇具有很好參考價值的文章主要介紹了WEB3之路(一)-- solidity學(xué)習(xí)筆記。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

學(xué)習(xí)資料:GitHub - AmazingAng/WTFSolidity: 我最近在重新學(xué)solidity,鞏固一下細(xì)節(jié),也寫一個“Solidity極簡入門”,供小白們使用(編程大佬可以另找教程),每周更新1-3講。

變量類型

  • 數(shù)值類型(Value Type):包括布爾型,整數(shù)型等等,這類變量賦值時候直接傳遞數(shù)值。
  • 引用類型(Reference Type):包括數(shù)組和結(jié)構(gòu)體,這類變量占空間大,賦值時候直接傳遞地址(類似指針)。
  • 映射類型(Mapping Type):?Solidity里的哈希表。
  • 函數(shù)類型(Function Type)Solidity文檔里把函數(shù)歸到數(shù)值類型,但我覺得他跟其他類型差別很大,所以單獨(dú)分一類。

一、數(shù)值類型

1.布爾型(bool):true 或者 false

2.整型(uint):uint、uint8、uint16、uint32、uint256

????????整型數(shù)值沒有負(fù)數(shù)

3.地址類型(address):地址類型(address)存儲一個 20 字節(jié)的值(以太坊地址的大小)

4.定長字節(jié)數(shù)組:字節(jié)數(shù)組bytes分兩種,一種定長(byte,?bytes8,?bytes32),另一種不定長

5.枚舉型(enum):枚舉(enum)是solidity中用戶定義的數(shù)據(jù)類型

二、引用類型

1.數(shù)組(Array):數(shù)組(Array)是solidity常用的一種變量類型,用來存儲一組數(shù)據(jù)(整數(shù),字節(jié),地址等等)。數(shù)組分為固定長度數(shù)組和可變長度數(shù)組兩種

數(shù)組成員:

  • length: 數(shù)組有一個包含元素數(shù)量的length成員,memory數(shù)組的長度在創(chuàng)建后是固定的。
  • push():?動態(tài)數(shù)組bytes擁有push()成員,可以在數(shù)組最后添加一個0元素。
  • push(x):?動態(tài)數(shù)組bytes擁有push(x)成員,可以在數(shù)組最后添加一個x元素。
  • pop():?動態(tài)數(shù)組bytes擁有pop()成員,可以移除數(shù)組最后一個元素。

2.結(jié)構(gòu)體(struct):Solidity支持通過構(gòu)造結(jié)構(gòu)體的形式定義新的類型

// 結(jié)構(gòu)體用法
    struct Student{
        uint256 id;
        uint256 score; 
    }

三、映射類型

Mapping:聲明映射的格式為mapping(_KeyType => _ValueType)

映射的規(guī)則:

  • 規(guī)則1:映射的_KeyType只能選擇solidity默認(rèn)的類型,比如uint,address等,不能用自定義的結(jié)構(gòu)體。
  • 規(guī)則2:映射的存儲位置必須是storage,因此可以用于合約的狀態(tài)變量,函數(shù)中的storage變量。不能用于public函數(shù)的參數(shù)或返回結(jié)果中,因為mapping記錄的是一種關(guān)系 (key - value pair)。

  • 規(guī)則3:如果映射聲明為public,那么solidity會自動給你創(chuàng)建一個getter函數(shù),可以通過Key來查詢對應(yīng)的Value。

  • 規(guī)則4:給映射新增的鍵值對的語法為_Var[_Key] = _Value,其中_Var是映射變量名,_Key_Value對應(yīng)新增的鍵值對

四、函數(shù)類型

1.function:聲明函數(shù)時的固定用法,想寫函數(shù),就要以function關(guān)鍵字開頭。

2.(<parameter types>):圓括號里寫函數(shù)的參數(shù),也就是要輸入到函數(shù)的變量類型和名字。

3.{internal|external|public|private}:函數(shù)可見性說明符,一共4種。沒標(biāo)明函數(shù)類型的,默認(rèn)internal。

  • public: 內(nèi)部外部均可見。(也可用于修飾狀態(tài)變量,public變量會自動生成?getter函數(shù),用于查詢數(shù)值).
  • private: 只能從本合約內(nèi)部訪問,繼承的合約也不能用(也可用于修飾狀態(tài)變量)。
  • external: 只能從合約外部訪問(但是可以用this.f()來調(diào)用,f是函數(shù)名)
  • internal: 只能從合約內(nèi)部訪問,繼承的合約可以用(也可用于修飾狀態(tài)變量)。

4.[pure|view|payable]:決定函數(shù)權(quán)限/功能的關(guān)鍵字。

pure和view都不需要付gas

  • pure:不能讀取也不能寫入
  • view:只能讀取
  • payable:可支付

5.[returns ()]:函數(shù)返回的變量類型和名稱。

常量

一、constant

constant變量必須在聲明的時候初始化,之后再也不能改變。嘗試改變的話,編譯不通過。

二、immutable

immutable變量可以在聲明時或構(gòu)造函數(shù)中初始化,因此更加靈活。

常用方法

1.修飾器(modifier)

修飾器(modifier)是solidity特有的語法,類似于面向?qū)ο缶幊讨械?code>decorator,聲明函數(shù)擁有的特性,并減少代碼冗余。

   // 定義modifier
   modifier onlyOwner {
      require(msg.sender == owner); // 檢查調(diào)用者是否為owner地址
      _; // 如果是的話,繼續(xù)運(yùn)行函數(shù)主體;否則報錯并revert交易
   }

2.構(gòu)造函數(shù)(constructor)

構(gòu)造函數(shù)(constructor)是一種特殊的函數(shù),每個合約可以定義一個,并在部署合約的時候自動運(yùn)行一次。它可以用來初始化合約的一些參數(shù),例如初始化合約的owner地址:

 address owner; // 定義owner變量

   // 構(gòu)造函數(shù)
   constructor() public {
      owner = msg.sender; // 在部署合約的時候,將owner設(shè)置為部署者的地址
   }

3.事件(events)

Solidity中的事件(event)是EVM上日志的抽象,它具有兩個特點:

  • 響應(yīng):應(yīng)用程序(ether.js)可以通過RPC接口訂閱和監(jiān)聽這些事件,并在前端做響應(yīng)。
  • 經(jīng)濟(jì):事件是EVM上比較經(jīng)濟(jì)的存儲數(shù)據(jù)的方式,每個大概消耗2,000-5,000?gas不等。相比之下,存儲一個新的變量至少需要20,000?gas

事件的聲明由event關(guān)鍵字開頭,然后跟事件名稱,括號里面寫好事件需要記錄的變量類型和變量名。以ERC20代幣合約的Transfer事件為例:

event Transfer(address indexed from, address indexed to, uint256 value);

4.繼承(inheritance)

規(guī)則

virtual: 父合約中的函數(shù),如果希望子合約重寫,需要加上virtual關(guān)鍵字。

override:子合約重寫了父合約中的函數(shù),需要加上override關(guān)鍵。

簡單繼承

contract Baba is Yeye{}

多重繼承

contract Erzi is Yeye, Baba{}

修飾器的繼承

用法同函數(shù)繼承

構(gòu)造函數(shù)的繼承

  1. 在繼承時聲明父構(gòu)造函數(shù)的參數(shù),例如:contract B is A(1)
  2. 在子合約的構(gòu)造函數(shù)中聲明構(gòu)造函數(shù)的參數(shù)

5.異常(errors)

error:方便高效省gas

error TransferNotOwner(); // 自定義error,在執(zhí)行當(dāng)中,error必須搭配revert(回退)命令使用。
  function transferOwner1(uint256 tokenId, address newOwner) public {
        if(_owners[tokenId] != msg.sender){
            revert TransferNotOwner();
        }
        _owners[tokenId] = newOwner;
    }

require:gas隨著描述異常的字符串長度增加

使用方法:require(檢查條件,”異常的描述”),當(dāng)檢查條件不成立的時候,就會拋出異常。

我們用require命令重寫一下上面的transferOwner函數(shù):

 function transferOwner2(uint256 tokenId, address newOwner) public {
        require(_owners[tokenId] == msg.sender, "Transfer Not Owner");
        _owners[tokenId] = newOwner;
    }

assert命令一般用于程序員寫程序debug,因為他不能解釋拋出異常的原因(比require少個字符串)。他的用法很簡單,assert(檢查條件),當(dāng)檢查條件不成立的時候,就會拋出異常。

function transferOwner3(uint256 tokenId, address newOwner) public {
        assert(_owners[tokenId] == msg.sender);
        _owners[tokenId] = newOwner;
    }

6.安全數(shù)學(xué)(SafeMath)

SafeMath用來防止溢出,有四個方法 —?add,?sub,?mul, 以及?div。

using SafeMath for uint256;

uint256 a = 5;
uint256 b = a.add(3); // 5 + 3 = 8
uint256 c = a.mul(2); // 5 * 2 = 10

7.import

solidity支持利用import關(guān)鍵字導(dǎo)入其他源代碼中的合約,讓開發(fā)更加模塊化。

// 通過文件相對位置import
import './Yeye.sol';

8.接收ETH

Solidity支持兩種特殊的回調(diào)函數(shù),receive()fallback(),他們主要在兩種情況下被使用:

  1. 接收ETH
  2. 處理合約中不存在的函數(shù)調(diào)用(代理合約proxy contract

接收ETH函數(shù) receive

receive()只用于處理接收ETH。一個合約最多有一個receive()函數(shù),聲明方式與一般函數(shù)不一樣,不需要function關(guān)鍵字:receive() external payable { ... }

receive()函數(shù)不能有任何的參數(shù),不能返回任何值,必須包含externalpayable

當(dāng)合約接收ETH的時候,receive()會被觸發(fā)。

回退函數(shù) fallback

fallback()函數(shù)會在調(diào)用合約不存在的函數(shù)時被觸發(fā)。可用于接收ETH,也可以用于代理合約proxy contractfallback()聲明時不需要function關(guān)鍵字,必須由external修飾,一般也會用payable修飾,用于接收ETH:fallback() external payable { ... }。

receivefallback都能夠用于接收ETH,他們觸發(fā)的規(guī)則如下:

觸發(fā)fallback() 還是 receive()?
           接收ETH
              |
         msg.data是空?
            /  \
          是    否
          /      \
receive()存在?   fallback()
        / \
       是  否
      /     \
receive()   fallback()

9.發(fā)送ETH

transfer

  • 用法是transfer(發(fā)送ETH數(shù)額)。
  • transfer()gas限制是2300,足夠用于轉(zhuǎn)賬,但對方合約的fallback()receive()函數(shù)不能實現(xiàn)太復(fù)雜的邏輯。
  • transfer()如果轉(zhuǎn)賬失敗,會自動revert(回滾交易)。

send

  • 用法是send(發(fā)送ETH數(shù)額)。
  • send()gas限制是2300,足夠用于轉(zhuǎn)賬,但對方合約的fallback()receive()函數(shù)不能實現(xiàn)太復(fù)雜的邏輯。
  • send()如果轉(zhuǎn)賬失敗,不會revert。
  • send()的返回值是bool,代表著轉(zhuǎn)賬成功或失敗,需要額外代碼處理一下。

call

  • 用法是call{value: 發(fā)送ETH數(shù)額}("")。
  • call()沒有gas限制,可以支持對方合約fallback()receive()函數(shù)實現(xiàn)復(fù)雜邏輯。
  • call()如果轉(zhuǎn)賬失敗,不會revert。
  • call()的返回值是(bool, data),其中bool代表著轉(zhuǎn)賬成功或失敗,需要額外代碼處理一下。

10.call

call?是address類型的低級成員函數(shù),它用來與其他合約交互。它的返回值為(bool, data),分別對應(yīng)call是否成功以及目標(biāo)函數(shù)的返回值。

call的使用規(guī)則

call的使用規(guī)則如下:

目標(biāo)合約地址.call(二進(jìn)制編碼);

其中二進(jìn)制編碼利用結(jié)構(gòu)化編碼函數(shù)abi.encodeWithSignature獲得:

abi.encodeWithSignature("函數(shù)簽名", 逗號分隔的具體參數(shù))

函數(shù)簽名"函數(shù)名(逗號分隔的參數(shù)類型)"。例如abi.encodeWithSignature("f(uint256,address)", _x, _addr)。

另外call在調(diào)用合約時可以指定交易發(fā)送的ETH數(shù)額和gas

目標(biāo)合約地址.call{value:發(fā)送ETH數(shù)額, gas:gas數(shù)額}(二進(jìn)制編碼);

11.ABI編碼解碼

abi.encode

將給定參數(shù)利用ABI規(guī)則編碼。ABI被設(shè)計出來跟智能合約交互,他將每個參數(shù)轉(zhuǎn)填充為32字節(jié)的數(shù)據(jù),并拼接在一起。

abi.decode

abi.decode用于解碼abi.encode生成的二進(jìn)制編碼,將它還原成原本的參數(shù)。

12.函數(shù)選擇器(Selector)

?selector定義為函數(shù)簽名的哈希的前4個字節(jié)

函數(shù)簽名,為"函數(shù)名(逗號分隔的參數(shù)類型)"。舉個例子,mint的函數(shù)簽名為"mint(address)"。在智能合約中,不同的函數(shù)有不同的函數(shù)簽名,因此我們可以通過函數(shù)簽名來確定要調(diào)用哪個函數(shù)。

13.try-catch

solidity中,try-catch只能被用于external函數(shù)或創(chuàng)建合約時constructor(被視為external函數(shù))的調(diào)用?;菊Z法如下:

        try externalContract.f() {
            // call成功的情況下 運(yùn)行一些代碼
        } catch {
            // call失敗的情況下 運(yùn)行一些代碼
        }

其中externalContract.f()時某個外部合約的函數(shù)調(diào)用,try模塊在調(diào)用成功的情況下運(yùn)行,而catch模塊則在調(diào)用失敗時運(yùn)行。

應(yīng)用

1.ERC20

IERC20ERC20代幣標(biāo)準(zhǔn)的接口合約,規(guī)定了ERC20代幣需要實現(xiàn)的函數(shù)和事件。

事件

IERC20定義了2個事件:Transfer事件和Approval事件,分別在轉(zhuǎn)賬和授權(quán)時被釋放

    /**
     * @dev 釋放條件:當(dāng) `value` 單位的貨幣從賬戶 (`from`) 轉(zhuǎn)賬到另一賬戶 (`to`)時.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev 釋放條件:當(dāng) `value` 單位的貨幣從賬戶 (`owner`) 授權(quán)給另一賬戶 (`spender`)時.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

函數(shù)

IERC20定義了6個函數(shù),提供了轉(zhuǎn)移代幣的基本功能,并允許代幣獲得批準(zhǔn),以便其他鏈上第三方使用。

  • totalSupply()返回代幣總供給
  • balanceOf()返回賬戶余額
  • transfer()轉(zhuǎn)賬
  • allowance()返回授權(quán)額度
  • approve()授權(quán)
  • transferFrom()授權(quán)轉(zhuǎn)賬

2.erc721

IERC721事件

IERC721包含3個事件,其中TransferApproval事件在ERC20中也有。

  • Transfer事件:在轉(zhuǎn)賬時被釋放,記錄代幣的發(fā)出地址from,接收地址totokenid。
  • Approval事件:在授權(quán)時釋放,記錄授權(quán)地址owner,被授權(quán)地址approvedtokenid`。
  • ApprovalForAll事件:在批量授權(quán)時釋放,記錄批量授權(quán)的發(fā)出地址owner,被授權(quán)地址operator和授權(quán)與否的approved。

IERC721函數(shù)

  • balanceOf:返回某地址的NFT持有量balance
  • ownerOf:返回某tokenId的主人owner。
  • transferFrom:普通轉(zhuǎn)賬,參數(shù)為轉(zhuǎn)出地址from,接收地址totokenId。
  • safeTransferFrom:安全轉(zhuǎn)賬(如果接收方是合約地址,會要求實現(xiàn)ERC721Receiver接口)。參數(shù)為轉(zhuǎn)出地址from,接收地址totokenId。
  • approve:授權(quán)另一個地址使用你的NFT。參數(shù)為被授權(quán)地址approvetokenId。
  • getApproved:查詢tokenId被批準(zhǔn)給了哪個地址。
  • setApprovalForAll:將自己持有的該系列NFT批量授權(quán)給某個地址operator。
  • isApprovedForAll:查詢某地址的NFT是否批量授權(quán)給了另一個operator地址。
  • safeTransferFrom:安全轉(zhuǎn)賬的重載函數(shù),參數(shù)里面包含了data。

3.erc1155

面是ERC1155的元數(shù)據(jù)接口合約IERC1155MetadataURI文章來源地址http://www.zghlxwxcb.cn/news/detail-784666.html

/**
 * @dev ERC1155的可選接口,加入了uri()函數(shù)查詢元數(shù)據(jù)
 */
interface IERC1155MetadataURI is IERC1155 {
    /**
     * @dev 返回第`id`種類代幣的URI
     */
    function uri(uint256 id) external view returns (string memory);

IERC1155事件

  • TransferSingle事件:單類代幣轉(zhuǎn)賬事件,在單幣種轉(zhuǎn)賬時釋放。
  • TransferBatch事件:批量代幣轉(zhuǎn)賬事件,在多幣種轉(zhuǎn)賬時釋放。
  • ApprovalForAll事件:批量授權(quán)事件,在批量授權(quán)時釋放。
  • URI事件:元數(shù)據(jù)地址變更事件,在uri變化時釋放。

IERC1155函數(shù)

  • balanceOf():單幣種余額查詢,返回account擁有的id種類的代幣的持倉量。
  • balanceOfBatch():多幣種余額查詢,查詢的地址accounts數(shù)組和代幣種類ids數(shù)組的長度要相等。
  • setApprovalForAll():批量授權(quán),將調(diào)用者的代幣授權(quán)給operator地址。。
  • isApprovedForAll():查詢批量授權(quán)信息,如果授權(quán)地址operatoraccount授權(quán),則返回true
  • safeTransferFrom():安全單幣轉(zhuǎn)賬,將amount單位id種類的代幣從from地址轉(zhuǎn)賬給to地址。如果to地址是合約,則會驗證是否實現(xiàn)了onERC1155Received()接收函數(shù)。
  • safeBatchTransferFrom():安全多幣轉(zhuǎn)賬,與單幣轉(zhuǎn)賬類似,只不過轉(zhuǎn)賬數(shù)量amounts和代幣種類ids變?yōu)閿?shù)組,且長度相等。如果to地址是合約,則會驗證是否實現(xiàn)了onERC1155BatchReceived()接收函數(shù)。

到了這里,關(guān)于WEB3之路(一)-- solidity學(xué)習(xí)筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • web3教學(xué)-Solidity 入門上手

    web3教學(xué)-Solidity 入門上手

    步驟大綱 1.Nodejs 2.Solidity編譯器,作為npm依賴包 3.Visual Studio Code編譯語法的突出顯示 4.為開發(fā)人員構(gòu)建的以太坊客戶端ethereumjs-testrpc npm install -g solc 然后通過 solcjs-v查看版本 使用vs code進(jìn)行智能合約的編寫 我們打開vs code然后在里面搜索插件Solidity,然后安裝 可以在vs終端輸入

    2024年02月03日
    瀏覽(18)
  • Web3 solidity訂單池操作

    Web3 solidity訂單池操作

    前面一篇文章因為一些原因 被設(shè)為了進(jìn)自己可見 需要的朋友可以私信我 之前 我們編寫的程序上來看 交易所無非是一個代幣的托管上 只是它會更加專業(yè) 本文 我們繼續(xù)來看交易所的一個功能 叫游泳池 例如 我們 100grToken 兌換 1ETH 前提 我們的代幣已經(jīng)能被估值了 例如 你想用

    2024年02月12日
    瀏覽(22)
  • 基于web3+solidity的眾籌項目

    基于web3+solidity的眾籌項目

    基本配置:`node`、`npm`、`yarn`,安裝`ganache`,`chrome`,`chrome`安裝插件`MetaMask`, 主要功能:目的是實現(xiàn)一個簡單的眾籌平臺,允許用戶發(fā)起籌款項目、捐款、提出使用資金請求以及證明人證明。 ?部分合約: ?1.首先打開ganache軟件,進(jìn)行如下配置, ? ?2.然后通過私鑰在metam

    2024年02月02日
    瀏覽(25)
  • 前端Vue項目調(diào)用頁面web3.js:連接metaMask錢包,(查詢錢包ETH余額,查詢代幣余額,ETH轉(zhuǎn)賬,代幣轉(zhuǎn)賬,代幣授權(quán),查詢授權(quán)數(shù)量,計算價格)等功能

    前端Vue項目調(diào)用頁面web3.js:連接metaMask錢包,(查詢錢包ETH余額,查詢代幣余額,ETH轉(zhuǎn)賬,代幣轉(zhuǎn)賬,代幣授權(quán),查詢授權(quán)數(shù)量,計算價格)等功能

    這里分享下相關(guān)文檔 1.web3.js中文文檔 https://learnblockchain.cn/docs/web3.js/getting-started.html 2.metamask官方文檔:https://docs.metamask.io/ 第一種方法:連接錢包 源碼: 第二種方法: 連接錢包 安裝依賴直接可以使用 源碼: 其他功能: 1、在 mounted 中自動檢測瀏覽器是否安裝MetaMask錢包 2、查詢

    2024年02月11日
    瀏覽(38)
  • web3 solidity 基礎(chǔ) ERC20 大白話搞懂

    web3 solidity 基礎(chǔ) ERC20 大白話搞懂

    ERC20 是 eth 的一個標(biāo)準(zhǔn),怎么理解標(biāo)準(zhǔn)一詞呢? 標(biāo)準(zhǔn)是大家遵循的一個協(xié)議,根據(jù)這個協(xié)議大家都知道該怎么去做,例如去吃飯的時候人多,你就需要排隊,然后去窗口跟阿姨說你要吃什么,阿姨就會幫你打;若你不準(zhǔn)守這個標(biāo)準(zhǔn),直接沖進(jìn)后廚,翻開泔水,大喊著我要吃飯

    2024年01月22日
    瀏覽(23)
  • Web3 solidity編寫cancelorder取消訂單函數(shù) 并梳理講述邏輯

    Web3 solidity編寫cancelorder取消訂單函數(shù) 并梳理講述邏輯

    上文 Web3 solidity訂單池操作 中 我們講述了訂單池的基本概念 并手動編寫了創(chuàng)建訂單的操作 最近的 我們還是先將 ganache 環(huán)境起起來 然后 我們打開項目 上文中 我們寫了makeOrder創(chuàng)建訂單的函數(shù) 但是 也帶出一個問題 我們創(chuàng)建之后 如果不要了 怎么干掉呀? js中我們有 splice 但

    2024年02月09日
    瀏覽(22)
  • 目錄(文章更新中...)《實戰(zhàn)NFT web3 solidity(新版本0.8.+)》

    注:由于是付費(fèi)專欄內(nèi)容,若有錯誤請及時聯(lián)系@1_bit,博客鏈接:https://blog.csdn.net/A757291228 ,或在文章下留言,收到后將會對錯誤進(jìn)行改正,若是版本更新導(dǎo)致的問題也希望大家對錯誤進(jìn)行提交,盡力去保證付費(fèi)用戶該得到的權(quán)益。 友情提示:本系列文章讀者最好學(xué)過一門編

    2024年02月16日
    瀏覽(26)
  • 歡迎來到Web3.0的世界:Solidity智能合約安全漏洞分析

    歡迎來到Web3.0的世界:Solidity智能合約安全漏洞分析

    智能合約是運(yùn)行在區(qū)塊鏈網(wǎng)絡(luò)中的一段程序,經(jīng)由多方機(jī)構(gòu)自動執(zhí)行預(yù)先設(shè)定的邏輯,程序執(zhí)行后,網(wǎng)絡(luò)上的最終狀態(tài)將不可改變。智能合約本質(zhì)上是傳統(tǒng)合約的數(shù)字版本,由去中心化的計算機(jī)網(wǎng)絡(luò)執(zhí)行,而不是由政府或銀行等中央集權(quán)機(jī)構(gòu)執(zhí)行。智能合約程序可以用Solidi

    2024年02月03日
    瀏覽(26)
  • Web3時代:探索DAO的未來之路

    Web3時代:探索DAO的未來之路

    Web3 的興起不僅代表著技術(shù)進(jìn)步,更是對人類協(xié)作、創(chuàng)新和價值塑造方式的一次重大思考。在 Web3 時代,社區(qū)不再僅僅是共同興趣的聚集點,而變成了一個價值交流和創(chuàng)新的平臺。 去中心化:超越技術(shù)的革命 去中心化不僅僅是 Web3 的技術(shù)基礎(chǔ),它在更深層次上改變了我們對組

    2024年02月06日
    瀏覽(21)
  • 【W(wǎng)eb3】Web3Js高頻Api

    【W(wǎng)eb3】Web3Js高頻Api

    目錄 Web3Js方法 初始化Web3實例 Web3Api 創(chuàng)建賬號Api 獲取余額Api 單位轉(zhuǎn)換工具函數(shù) Web3Js方法 web3.eth:用于與以太坊區(qū)塊鏈和智能合約之間的交互。 web3.utils:包含一些輔助方法。 web3.shh:用于協(xié)議進(jìn)行通信的P2P和廣播。 web3.bzz:用于與群網(wǎng)絡(luò)交互的Bzz模塊。 初始化Web3實例 npm

    2024年02月13日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包