在網路服務中接收乙太坊 ERC-20 代幣的付款
我想在我的網路服務中以乙太坊代幣(例如 EOS 或 REP)接收付款。而且,當然,我必須為每個使用者提供不同的付款地址,以確定誰是付款人,所以我創建了一個新帳戶並給使用者一個地址。收到付款後,我必須將收到的代幣發送到主賬戶,但這種轉賬需要gas。在網路服務中接收乙太坊 ERC-20 代幣的最佳方式是什麼?
如果您想接收乙太幣作為付款。這顯然是這樣的情況,例如您將在不同的賬戶中收到資金,然後將這些乙太幣轉移到您的主賬戶。這種交易你肯定需要gas。但這取決於您的要求。
為了轉移乙太幣,交易使用的氣體是 21,000。如果您將 gas 價格設置為 21GWei,則該交易將花費您 0.000441 Ether(0.13 美元,引自etherscan.io)。所以你必須為每 100 個使用者花費 13 美元。這不是您應該擔心的大數目,但同樣取決於產品的要求。我不認為這是一個主要問題。
當您開始接受 ERC-20 代幣作為付款時,就會出現主要問題,在這種情況下,當您希望將代幣從每個使用者的地址轉移到您的主賬戶時,每個使用者賬戶都必須有乙太幣(支付交易費用),但使用者有只轉移代幣。這是你應該擔心的事情。一種可能的方法是向使用者索要代幣和少量乙太幣(用於交易費用)。
另一種可能的解決方案可能是擁有一個固定地址池並為使用者提供重複地址。在這種情況下,您必須向使用者詢問交易雜湊或他們願意支付的帳戶以辨識使用者的付款。該解決方案存在隱私問題,例如任何人都可以跟踪您從區塊瀏覽器中擁有的資金。
這背後的原因是比特幣和乙太坊架構之間的基本區別。比特幣被用作貨幣,但乙太坊可以提供更多。這就是為什麼這種實現在比特幣中非常容易,但在乙太坊中卻不然。我不確定是否有任何商家 API 可用於將 erc-20 令牌集成為支付方式。
PS:問題要求最好的方法。如果有人有更好的解決方案,我很樂意聽到。如果需要更新/修改,請編輯答案。
嗨,你的情況可能遲到了,但它可能對其他人有幫助,你可以通過創建一個簡單的智能合約來解決這個問題(如果是普通賬戶,當你想收集 eth/token 到主帳戶)接收每個使用者的 eth/token。由於使用者向此存款,將觸發一個事件,並且從這裡,所有者/管理員帳戶(此人支付費用)將呼叫收款。希望這有幫助!