Erc-20
從一個地址接收乙太幣並將代幣轉移到另一個地址
我正在開始眾籌,我想在我的眾籌合約中添加一個自定義功能。基本上我希望使用者能夠購買法定貨幣和比特幣的代幣。
為了完成這項工作,我將使用一些乙太幣創建一個錢包,一旦使用者通過法定交易購買我的代幣,我想從我的錢包地址向我的合約發送等量的乙太幣,將金額轉換為等量的代幣,然後將代幣轉移到投資者的地址。
有沒有辦法做到這一點?
那麼解決方案很簡單,只需創建一個只能由所有者呼叫的函式並將資金轉移到任何錢包地址。
function FreeTransfer(address _investor, uint tokens) public onlyOwner returns (bool success) { return transfer(_investor, tokens); } function transfer(address to, uint tokens) public returns (bool success) { balances[msg.sender] = safeSub(balances[msg.sender], tokens); balances[to] = safeAdd(balances[to], tokens); Transfer(msg.sender, to, tokens); return true; }
這不是它的工作方式,除非你想建立一個交易所。乙太坊不知道什麼是法定貨幣或比特幣。只有乙太幣在鏈上有效。所以你必須只在你的契約中接受乙太幣。使用者必須首先使用法定貨幣或 BTC 從交易所購買乙太幣,然後將其發送到您的合約。