Solidity(一)

Account?

1.一種有contract code

一般這種由EOA創(chuàng)建出來

contract account

address

address state

nonce ?balance

storage hash ?code hash

2.一種沒有

external owed account (EOA)

address

address state

nonce balance

transaction有三種

a: 轉(zhuǎn) Enter

b: 部署contract (create contact)

c: 呼叫contact 里特定的function (call contract)

EOA

幾個重要位置:

call

from:送出者

to:接收者

value:給多少

data:轉(zhuǎn)賬的備注?

(永久的留在鏈上)

create contact

from:發(fā)送者

to:留空沒有接收者婶肩,trancation 部署新的合約?

data:把你的bytecode 放進(jìn)來

value:送到contact 中可以給

call function

合約執(zhí)行

統(tǒng)一的opcode,opcode/storage價格固定

沒有隨機(jī)性opcode 不會出現(xiàn)0.1 + 0.9 = 9.999

EVM

Account ? ? ?EVM

codehash ? ?bytecode

machine state

program counter ? ? ? ?stack ? ? ? ? ? memory ? ? ? ? ?<---> ? account

available gas ? ? 256bit 1024solt ? ?256bit **solt ? ? ? ?<---> ? ?storage

存儲空間

stack ?執(zhí)行后消失

memory?執(zhí)行后消失

storage 不會消失

ABI ?application binary inteface

/ [

//? {

//? ? ? "inputs": [],

//? ? ? "name": "retrieve",

//? ? ? "outputs": [

//? ? ? ? ? {

//? ? ? ? ? ? ? "internalType": "uint256",

//? ? ? ? ? ? ? "name": "",

//? ? ? ? ? ? ? "type": "uint256"

//? ? ? ? ? }

//? ? ? ],

//? ? ? "stateMutability": "view",

//? ? ? "type": "function"

//? },

//? {

//? ? ? "inputs": [

//? ? ? ? ? {

//? ? ? ? ? ? ? "internalType": "uint256",

//? ? ? ? ? ? ? "name": "num",

//? ? ? ? ? ? ? "type": "uint256"

//? ? ? ? ? }

//? ? ? ],

//? ? ? "name": "store",

//? ? ? "outputs": [],

//? ? ? "stateMutability": "nonpayable",

//? ? ? "type": "function"

//? }

// ]

bytecode?

// {

//? "functionDebugData": {},

//? "generatedSources": [],

//? "linkReferences": {},

//? "object": "608060405234801561001057600080fd5b50610150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea2646970667358221220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033",

//? "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x9D JUMP JUMPDEST PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x97 DUP2 PUSH2 0x103 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3 JUMPI PUSH2 0xB2 PUSH2 0xFE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1 DUP5 DUP3 DUP6 ADD PUSH2 0x88 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD3 DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BLOCKHASH 0x4E CALLDATACOPY DELEGATECALL DUP8 0xA8 SWAP11 SWAP4 0x2D 0xCA 0x5E PUSH24 0xFAAF6CA2DE3B991F93D230604B1B8DAAEF64766264736F6C PUSH4 0x43000807 STOP CALLER ",

//? "sourceMap": "141:356:0:-:0;;;;;;;;;;;;;;;;;;;"

// }

demo

// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; /** * @title Calc * @dev Store & retrieve value in a variable */ contract Calc { int private result; function add(int a, int b) public returns(int c) { result = a + b; c = result; } function min(int a, int b) public returns(int c) { result = a - b; c = result; } function mul(int a, int b) public returns(int c) { result = a * b; c = result; } function div(int a, int b) public returns(int c) { result = a / b; c = result; } function getResult() public view returns(int) { return result; } }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末七兜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缰泡,更是在濱河造成了極大的恐慌,老刑警劉巖劲弦,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件始花,死亡現(xiàn)場離奇詭異,居然都是意外死亡肠鲫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門或粮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來导饲,“玉大人,你說我怎么就攤上這事氯材≈南” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵浓体,是天一觀的道長。 經(jīng)常有香客問我辈讶,道長命浴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任贱除,我火速辦了婚禮生闲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘月幌。我一直安慰自己碍讯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布扯躺。 她就那樣靜靜地躺著捉兴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪录语。 梳的紋絲不亂的頭發(fā)上倍啥,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天,我揣著相機(jī)與錄音澎埠,去河邊找鬼虽缕。 笑死胶果,一個胖子當(dāng)著我的面吹牛扶叉,可吹牛的內(nèi)容都是我干的胳徽。 我是一名探鬼主播鸭你,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剩胁!你這毒婦竟也來了诉植?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤摧冀,失蹤者是張志新(化名)和其女友劉穎倍踪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體索昂,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡建车,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了椒惨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缤至。...
    茶點(diǎn)故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖康谆,靈堂內(nèi)的尸體忽然破棺而出领斥,到底是詐尸還是另有隱情,我是刑警寧澤沃暗,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布月洛,位于F島的核電站,受9級特大地震影響孽锥,放射性物質(zhì)發(fā)生泄漏嚼黔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一惜辑、第九天 我趴在偏房一處隱蔽的房頂上張望唬涧。 院中可真熱鬧,春花似錦盛撑、人聲如沸碎节。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狮荔。三九已至,卻和暖如春陌僵,著一層夾襖步出監(jiān)牢的瞬間轴合,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工碗短, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留受葛,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像总滩,于是被迫代替她去往敵國和親纲堵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容