首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >稳健与智能合同中的自动转移

问稳健与智能合同中的自动转移
EN

Stack Overflow用户
提问于 2022-08-24 09:51:00
回答 1查看 120关注 0票数 0

我需要一份聪明的合同,把一定百分比的现金自动送到另一个钱包,

例如,我的公司有一个钱包,而我有另一个业务伙伴,我想立即分享我们公司的利润,当涉及到公司的钱包时,我和我的合作伙伴在技术上是否有可能订立一份明智的合同来进行这种转让!?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-08-26 15:28:40

实现这一点的唯一方法是通过智能契约,不可能直接在钱包中执行此规则。

如何在可靠的情况下这样做的一个例子是使用一个智能契约,它看起来可能如下所示:

代码语言:javascript
复制
pragma solidity 0.8.9;

interface IERC20 {
function balanceOf(address who) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function transferFrom(address from, address to, uint256 value) external returns (bool);
function approve(address spender, uint256 value) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract MyVault {

address public yourWallet;
address public partnerWallet;
uint256 public partnerFee;

constructor(address _yourWallet, address _partnerWallet, uint256 _partnerFee) {
    yourWallet = _yourWallet;
    partnerWallet = _partnerWallet;
    partnerFee = _partnerFee;
}

function applyFee(address _coin, uint256 _quantity) public returns(bool) {
    IERC20 coinInstance = IERC20(_coin);
    require(coinInstance.allowance(msg.sender,address(this)) >= _quantity, "MyVault: not approved" );
    require(coinInstance.transferFrom(msg.sender, address(this), _quantity), "MyVault: transfer from failed");
    uint256 partnerAmount = calculateFee(_quantity);
    coinInstance.transfer(partnerWallet, partnerAmount);
    coinInstance.transfer(yourWallet, _quantity - partnerAmount);
    return true;
}

function calculateFee(uint _value) public view returns(uint256) {
       return (partnerFee * _value) / 100;
   }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73470999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档