Ethereum 这种逻辑在以太坊中可能吗?
假设这里有smartcontract A和B。B已经部署并具有BuyService功能。用户需要调用此函数才能使用令牌获取服务。A有足够的Ethereum 这种逻辑在以太坊中可能吗?,ethereum,solidity,Ethereum,Solidity,假设这里有smartcontract A和B。B已经部署并具有BuyService功能。用户需要调用此函数才能使用令牌获取服务。A有足够的令牌(Erc20) 用户发送TX到 A呼叫B的付费服务 B在A中接收令牌(erc20),并向用户提供服务 这种逻辑可能吗?如果没有,我怎样才能作出决定?我不想更改B中的代码。B非常通用。请纠正我 contract A { ERC20 token = ERC20(0x...); B b = B(0x...); function help
令牌(Erc20)
令牌(erc20)
,并向用户提供服务contract A {
ERC20 token = ERC20(0x...);
B b = B(0x...);
function helpMeBuyService() external {
token.approve(b, 1000);
b.BuyService(msg.sender);
}
}
你的代码是正确的
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);
}
}