假设这里是智能合约A和B。B已被部署并具有BuyService功能。用户需要调用此函数才能获得令牌服务。 A有足够的令牌(Erc20)。
这种逻辑可行吗?如果没有,我该如何做A?我不想更改B中的代码。B非常笼统。请纠正我。
合同A {
ERC20 token = ERC20(0x...);
B b = B(0x...);
function helpMeBuyService() external {
token.approve(b, 1000);
b.BuyService(msg.sender);
}
}
答案 0 :(得分:1)
您的验证码正确
pragma solidity ^0.5.0;
interface B {
function BuyService(address receiver) external;
}
interface ERC20 {
function approve(address receiver, uint256 amout) external;
}
contract A {
ERC20 public token = ERC20(0x123);
B public b = B(0x123);
function helpMeBuyService() external {
token.approve(address(b), 1000);
b.BuyService(msg.sender);
}
}