MetaForce佛薩奇開發原理丨MetaForce佛薩奇系統開發(2.0智慧合約開發)
一個智慧合約被編譯後就是一段EVM位元組碼,將它部署在以太坊的區塊鏈時,會根據部署者的地址和該地址的nonce分配一個合約地址
合約地址和賬戶地址的格式是沒有區別的,但合約地址沒有私鑰,也就沒有人能直接操作該地址的合約資料。
這也是合約的一個限制:合約不能主動執行,它只能被外部賬戶發起呼叫。如果一個合約要定期執行,那隻能由線下伺服器定期發起合約呼叫。
mint函式,進行代幣增發,注意它是internal函式,所以外部是無法呼叫的
function _mint(address to,uint256 value)internal{
totalSupply=totalSupply.add(value);
balanceOf[to]=balanceOf[to].add(value);
emit Transfer(address(0),to,value);
}
_burn函式,進行代幣燃燒,同樣它也是internal函式
function _burn(address from,uint256 value)internal{
balanceOf[from]=balanceOf[from].sub(value);
totalSupply=totalSupply.sub(value);
emit Transfer(from,address(0),value);
}開發邏輯及案例:MrsFu123
_approve函式,進行授權操作,注意它是private函式,意味著只能在本合約內直接呼叫。不過,在子合約中可以透過一個內部或者公共的函式進行間接呼叫。
function _approve(
address owner,
address spender,
uint256 value
)private{
allowance[owner][spender]=value;
emit Approval(owner,spender,value);
}
_transfer函式,轉移代幣操作,注意也是一個private函式
function _transfer(
address from,
address to,
uint256 value
)private{
balanceOf[from]=balanceOf[from].sub(value);
balanceOf[to]=balanceOf[to].add(value);
emit Transfer(from,to,value);
}
approve函式,注意它是external(外部)函式,使用者通常進行授權操作的外部呼叫介面。
function approve(address spender,uint256 value)external returns(bool){
_approve(msg.sender,spender,value);
return true;
}
transfer函式,同上,使用者轉移代幣操作的外部呼叫介面。
function transfer(address to,uint256 value)external returns(bool){
_transfer(msg.sender,to,value);
return true;
}
transferFrom代幣授權轉移函式,它是一個外部函式,主要是由第三方合約來呼叫。注意它的實現中(UniswapV2的實現)作了一個假定,如果你的授權額度為最大值為了減小操作步數和gas,呼叫時授權餘額是不扣除相應的轉移代幣數量的。這裡如果沒有授權(授權額度為0),那麼會怎樣呢?庫函式.sub(value)呼叫時無法透過SafeMath的require檢查,會導致整個交易會被重置。所以如果沒有授權,第三方合約是無法轉移你的代幣的,你不用擔心你的資產被別的合約隨便偷走。
function transferFrom(
address from,
address to,
uint256 value
)external returns(bool){
if(allowance[from][msg.sender]!=uint256(-1)){
allowance[from][msg.sender]=allowance[from][msg.sender].sub(
value
);
}
_transfer(from,to,value);
return true;
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2938858/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MetaForce佛薩奇2.0系統丨MetaForce佛薩奇2.0系統開發(方案及詳細)
- Metaforce佛薩奇2.0開發詳細版丨Metaforce佛薩奇2.0系統開發(開發功能及原始碼)原始碼
- 佛薩奇2.0(MetaForce)系統程式設計開發(DAPP智慧合約)程式設計APP
- NFT智慧合約MetaForce佛薩奇系統開發原始碼原始碼
- 佛薩奇2.0開發升級版,metaforce佛薩奇2.0系統開發(開發方案及詳細)
- 佛薩奇2.0開發原理丨佛薩奇2.0智慧合約系統開發詳情版丨(原始碼部署)原始碼
- MetaForce佛薩奇系統開發合約技術搭建
- MetaForce佛薩奇系統2.0開發技術分析
- 佛薩奇開發原始碼丨佛薩奇系統開發案例丨智慧合約佛薩奇開發技術程式碼原始碼
- MetaForce佛薩奇2.0系統開發模式[原始碼合約例項]模式原始碼
- 佛薩奇2.0系統丨佛薩奇2.0系統開發(功能版)丨佛薩奇2.0開發原始碼案例部署原始碼
- MetaForce佛薩奇系統開發馬蹄鏈合約部署
- MetaForce原力元宇宙系統開發(佛薩奇2.0)|合約技術開發元宇宙
- 佛薩奇2.0MetaForce系統技術開發DAPPAPP
- MetaForce佛薩奇系統開發馬蹄鏈
- 佛薩奇metaforce原始碼系統開發搭建原始碼
- 佛薩奇2.0互助分紅開發丨佛薩奇系統開發原始碼丨佛薩奇2.0運營版原始碼
- metaforce佛薩奇系統開發馬蹄鏈3.0合約方案
- 智慧合約佛薩奇2.0開發,佛薩奇系統原始碼鏈上搭建原始碼
- Forsage佛薩奇系統開發2.0丨馬蹄鏈2.0佛薩奇矩陣開發技術合約矩陣
- 佛薩奇原始碼|佛薩奇2.0合約|佛薩奇矩陣公排模式開發系統原始碼矩陣模式
- 佛薩奇Metaforce智慧合約系統開發(現成系統原始碼搭建)原始碼
- 佛薩奇開發功能規則丨佛薩奇智慧合約系統開發獎勵制度(開發方案)
- metaforce佛薩奇模式系統開發邏輯分析模式
- 佛薩奇2.0運營版系統開發程式碼示例丨佛薩奇Forsage合約開發demo
- MetaForce佛薩奇系統開發技術流程(成熟程式碼)佛薩奇2.0原始碼部署教程原始碼
- 佛薩奇2.0開發參考版丨佛薩奇2.0系統開發(成熟及專案)丨佛薩奇2.0系統原始碼部署原始碼
- 佛薩奇2.0版開發功能丨原力元宇宙MetaForce佛薩奇2.0系統開發實現技術詳情及分析元宇宙
- Forsage佛薩奇2.0智慧合約系統設計開發(佛薩奇升級版)
- 佛薩奇2.0(合約)開發制度講解丨佛薩奇升級2.0版系統功能開發詳情
- 現成metaforce佛薩奇2.0系統原始碼搭建(開發案例)原始碼
- 佛薩奇原始碼丨Force佛薩奇2.0系統合約開發講解丨Python技術原始碼Python
- 佛薩奇2.0系統DAPP開發丨原始碼丨佛薩奇Solidity開發編寫示例APP原始碼Solid
- 原力元宇宙Metaforce/Forsage/佛薩奇2.0系統開發(開發詳情)元宇宙
- MetaForce佛薩奇系統開發原始碼(升級版)原始碼
- MetaForce佛薩奇系統開發馬蹄鏈方案搭建
- 2.0新版佛薩奇開發系統|佛薩奇開發DAPP原始碼搭建APP原始碼
- MetaForce佛薩奇2.0功能系統技術開發(專案設計)