【发布时间】:2021-04-26 23:45:16
【问题描述】:
我正在尝试构建一个智能合约并继承一些函数来交换 ERC20 代币,
这是我的问题?
问题 A: 可以将ERC20代币转入智能合约余额吗?, 请举个例子, 即我们可以创建一个函数将 ETH 发送到智能合约
function contribute() external payable {}
//It will allow us to send ETH to smart contract balance,but how to send,for example, "BAND" token
//to smart contract balance?
问题 B: 如果 A 是可能的,如何获取合约的代币余额? 即我们可以通过这个函数获取合约 ETH 余额:
// Get ETH balance
function getBalance() external view returns(uint) {
return address(this).balance;
}
// How to return contract's BAND balance, if A is possible ...
问题 C:
如果“A”是可能的,如何使用 Uniswap 或 Sushiswap API 交换到 BAND/ETH 流动性池, 是使用 NodeJS 在服务器端进程上处理该进程更好,还是在solidity 中实现它?
完整的智能合约代码:
pragma solidity ^0.5.11;
合约 SwapTest { 向公共经理致辞;
constructor() public {
manager = msg.sender;
}
modifier OnlyManager() {
require(msg.sender == manager);
_;
}
// Add funds to contract
function contribute() external payable {}
// Get ETH balance
function getBalance() external view returns(uint) {
return address(this).balance;
}
// Send provided amount of WEI to recipient
function sendEther (address payable recipient, uint weiAmount) external OnlyManager{
recipient.transfer(weiAmount);
}
// Send contract balance to recipient
function withdrawBalance (address payable recipient) external OnlyManager{
recipient.transfer(address(this).balance);
}
}
期待你们的回音, 提前致谢。
【问题讨论】:
-
对于 StackOverflow Q&A 格式,我建议您每个问题只添加一个问题。
-
要创建 Uniswav v2 池,您需要调用 Uniswap Factory 合约并使用相应的参数。下载 Uniswap 源并进行检查。
-
检查了我的 uniswap 对数据库。您要创建的对已经存在,地址是 0xf421c3f2e695C2D4C0765379cCace8adE4a480D9 。 BAND代币还有另外16对与其他代币:DIA、NMR、YFI、GEM、AXIA、DAI、BAT、USDC、YUNO、UNI、LINK、DREAM、AGI
标签: javascript api ethereum solidity erc20