Solidity
如何儲存與我的智能合約互動的每個地址?
我正在開發一種眾籌類型的智能合約,我想儲存所有向我的合約發送乙太幣的人。所以我創建了一個這樣的結構
struct User { address participantsAddress; uint id; uint participantETHamount; }
我的應付函式是這樣的:
function invest() external payable { balanceOfContract=balanceOfContract+msg.value; mydata[id].participantETHamount = msg.value; mydata[id].participantsAddress = msg.sender; id++; }
但是當我調試它時,它似乎沒有儲存值!
使用風險自負。因為我沒有足夠的資訊。
如果您想將數據添加到數組而不是映射,則需要 Idk。並且不確定 id 是只是一個計數器還是一個真實生成的 Id。也不確定人們是否可以投資超過 1 次
pragma solidity 0.8.4; contract ContractC1 { uint256 counter; uint256 balanceOfContract = 0; mapping (uint256 => User) public users; struct User { address participantsAddress; uint256 participantETHamount; } function invest() external payable { balanceOfContract = balanceOfContract + msg.value; User memory user = User(msg.sender, msg.value); users[counter] = user; counter++; } }