通过智能合约将 ETH 交换为 WBTC 或其他山寨币

问题描述

我正在尝试为 gmae 创建一个智能合约,也就是说,如果有人将 ETH 发送到它的地址,它将 ETH 值分成两个相等的值,并将第一部分的等效 WBTC 发送到一个地址,另一部分发送到另一个地址地址与其他ALT币。

比如 - 有人向合约地址发送 1 ETH,然后将其分成两个相等的值 0.5 和 0.5;在该智能合约之后,先将 0.5 ETH 转换为 WBTC 并将其发送到一个地址,然后将其他 0.5 转换为任何其他 ALT 代币(ERC20 代币)将其发送到另一个地址。

在将 ETH 转换为其他代币或 WBTC 之前,它可以从各种 DeFi 中获取最佳价值,例如 uniswap、kyberswap 等。

contract Game {

    event PaidToGame(address to,uint256 amount);
    event PaidToInvestor(address to,uint256 amount);

    address public commission_1_holder = 0xBCC26F87;
    address public commission_2_holder = 0xBCC26F98;

    receive() payable external  {
        uint256 eth_amount = msg.value;
        uint256 shareX = eth_amount/2;
        payable(commission_1_holder).transfer(shareX);
        payable(commission_2_holder).transfer(shareX);
        emit PaidToGame(commission_1_holder,shareX);
        emit PaidToInvestor(commission_1_holder,shareX);
    }
}

我创建了智能合约来获取 ETH,并在等分后将其发送到两个不同的地址。我需要一些指导,如何开始发展。或者是否有可能通过智能合约在获得最佳交换价值后交换代币?如果可能的话,我该如何开发?

提前致谢?

解决方法

我认为您可能需要 Chainlink Oracle 才能获取最佳价值。

这是他们的网站,可以帮助您入门:https://chain.link/

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...