Contract-Design

哪個部分應該放在第一位?上游和下游部分

  • July 27, 2021

嗯…我在開始編寫智能合約時遇到了問題,我不知道應該先寫哪一部分。例如我們有一個遊戲。它有一個英雄,它有一些功能,如戰斗等。契約有賬號、英雄和戰鬥契約。是不是應該這樣寫:賬號->英雄->格鬥還是格鬥->英雄->賬號?

您的問題非常籠統,因此很難回答。我說這完全取決於你和你的項目。我知道編寫多個相互互動的智能合約可能會很痛苦(我目前正在努力解決一些問題,哈哈)。在您的範例中,id 先寫戰鬥,然後是英雄,然後是帳戶,因為戰鬥應該減少對其他 2 人的呼叫。如果您被迫從您尚未編寫的函式呼叫函式,請使用佔位符或註釋,有點像這樣(這是偽 ofc)

contract Fighting {
function attack (address attacker, address defender, uint256 attackerStat, uint256 defenderStat) public {
   uint256 damageDealt = attackerStat - defenderStat // (or whatever math you want to perform to get the damage dealt. btw using solidity's native - operator is unsafe, use SafeMath's sub() function instead
   // HeroContract defender = HeroContract(defender)
   // defender.looseHP(damageDealt)
   // The 2 last lines are commented out because you didnt write the hero contract yet, and you're not sure you'll use that exact syntax. 
}

}

引用自:https://ethereum.stackexchange.com/questions/104075