Web3js
兌換存款智能合約
我正在開發 ETH 和 ERC20 代幣存款服務。對於每個使用者,我需要唯一的錢包地址,
- 我可以開發一個智能合約來為每個使用者生成唯一的錢包地址嗎?
- 我可以將存入的 ERC20 代幣從使用者錢包轉移到另一個錢包並支付智能合約主賬戶的交易費用嗎?
- 是的,您可以為每個使用者的每個 EOA 生成一個錢包合約,並且該合約可以代表使用者行事,即通過其簽名控制它的使用者。要查看範例,請在此處查看 Augur 的錢包合約:https ://github.com/AugurProject/augur/blob/0a12a20a3ab0f4a822ec2c5070136e3e4a8180c4/packages/augur-core/src/contracts/AugurWalletRegistry.sol#L180
- 你不能用 ERC20 代幣支付交易費用,除非你在執行相應功能之前在 Uniswap 上將它們換成 ETH,但這必須在使用者呼叫合約之前,這不是我們正在討論的情況。使用者(EOA 所有者)是支付交易費用的人。不過,您可以從契約中恢復向使用者支付的費用金額。