我正在尝试构建一个智能合约并继承一些功能来交换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在服务器端进程上处理该过程更好,还是以可靠的方式实现?
完整的智能合约代码:
pragma solidity ^0.5.11;
contract SwapTest {
address public manager;
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);
}
}
期待收到你们的回复,提前致谢。
处理外部合约时,首先包括一个接口定义,因此您可以调用合约的函数。
interface ERC20 {
function balanceOf(address owner) external view returns (unit);
function allowance(address owner, address spender) external view returns (unit);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
}
答:代币可以直接转移到合约的地址,无需指定其他功能。但是,根据您的用例,您还可以编写一个将令牌传输到自身的函数。
function transferToMe(address _owner, address _token, unit _amount) public {
ERC20(_token).transferFrom(_owner, address(this), _amount);
}
B: 您可以使用:
function getBalanceOfToken(address _address) public view returns (unit) {
return ERC20(_address).balanceOf(address(this));
}
C:如果您需要您的合约能够交换代币,您需要包含相应的功能。请参阅Uniswap或Sushiswap留档,因为它们深入描述了这一点。
嗨,我已经编写了一个简单的智能合约,将erc20令牌从用户转移到智能合约,并从智能合约转移到用户。我在调用transferFrom函数之前批准了它,但事务失败。我试过只打电话给approve,而不打电话给transferFrom。它很管用。我正在林克比测试网上测试。 我在测试注入了web3的混音。我得到的错误是 此外,我在 rinkeby 测试网上的测试钱包中有令牌,我正在使用注入的 remix
我的目标是创建一个智能合约,用户可以使用该合约存入erc20并提取erc20代币。我尝试使用token transfer实现此功能,transferfrom函数尝试将令牌发送到合约地址。但它显示了一些错误。我尝试了互联网上所有可能的解决方案,但没有运气。请帮助我######################################## 在此输入图像描述 在此输入图像描述 当我试图转移使用保存
最近,我在处理具有质押功能的智能合约时遇到了一个问题。通过IERC20界面,我设法与来自另一个合约的Erc20令牌进行交互,但仍然存在一个混乱。我正在开发一个智能合约,用户可以在智能合约中抵押我的代币(代币已经部署在网络中),当质押持续时间结束时,利益相关者可以获得他们的质押金额以及奖励的代币。对于奖励代币,我想铸造新的代币,以奖励我的智能合约中的利益相关者。如何在另一个智能合约中使用薄荷功能?我
我正在审查OpenZeppelin的智能合约,在许多情况下,我发现往往存在冗余或重复的继承。 在本例中,ERC20实现了已经实现了IERC20的IERC20元数据。尽管如此,合同实现了这两个。我试着移除冗余接口,效果很好。这有什么原因吗?是否仅出于清晰或易读目的?
环境要求 搭建测试网络 创建第一个合约 发布合约 执行合约 昵称 GOVM后台的合约流程 关键字 系统接口
指导编写一个EOSIO的智能合约 模块 Account API 查询账户数据的API. Chain API 查询链内部状态的API. Database API 存储和检索EOS.IO区块链的数据API根据以下广泛结构来组织数据. Math API 定义常用的数学函数. Action API 定义用于查询操作属性的API. Memory API 定义常用的记忆功能. Console API 使应用程