[CTE] Warmup


Warmup


Deploy ( # )

  • 特にすることはなく、環境設定を行う段階
  • Metamask取付
  • Metamask財布生成
  • ネットワークをRopstenに変更
  • 取引用のRopsten Eth取得(faucet)
  • その後指示ボタンを押すと入手可能50 points通過.
  • Call me( # )

  • 컨트랙트ブロックチェーンネットワークに配備(deployed).
  • そのため、On-Chain田舎とやり取りする方法が必要です.
  • この問題を解決するために利用するHardhat
  • Hardhatイーサネット開発環境であり、컨트랙트 컴파일Built-in Local Network 제공など多様な機能を有している.
  • 複数の機能のうち、CTEはtest機能を使用する.
  • Warmupフェーズなので、Call me Changeは環境設定フェーズとみなすこともできます.
  • Hardhat取付
  • hardhat.config.jsエーRopstenネットワーク設定追加
  • callmeの課題を解決するため、以下のスクリプトを作成するnpx hardhat test --network ropsten問題解決
  • Ropstenネットワークを使用するには、AlchemyAPI Key 값MetamaskPrivate Key値を取得し、hardhat.config.jsで指定する必要があります.
  • これはhardhat tutorialなど、調べてみればわかります.
  • const { expect } = require("chai");
    const { ethers } = require("hardhat");
    
    describe("Call Me Contract", function () {
    
    	before( async () => {
    		const factory = await ethers.getContractFactory("CallMeChallenge")
    		contract = factory.attach("0x8FA2BEBace3C78492601306035852Ab748179073")
    	});
    
    	it("solves the challenge", async () => {
    		const tx = await contract.callme();
    		await tx.wait()
    	});
    });
  • スクリプト実行結果は以下の通り.
  • c0np4nn4@ubuntu:~/Desktop/hardhat-tutorial$ npx hardhat test ./test/callme.js --network ropsten
    
    
      Call Me Contract
        ✔ solves the challenge (8626ms)
    
    
      1 passing (10s)
    
    c0np4nn4@ubuntu:~/Desktop/hardhat-tutorial$ 

    Choose a nickname( # )

  • callme challengeと同じフルチェーン会議インタラクティブな挑戦です.
  • スクリプトコードは以下の通り.
  • const { ethers } = require("hardhat");
    const { expect } = require("chai");
    
    describe("Nickname Challenge", function () {
    	before(async function () {
    		const factory = await ethers.getContractFactory("CaptureTheEther")
    		contract = factory.attach(`0x71c46Ed333C35e4E6c62D32dc7C8F00D125b4fee`)
    	});
    
    	it("solves the challenge", async function () {
    		const myNickname = ethers.utils.formatBytes32String(`p4nn4`);
    		const tx = await contract.setNickname(myNickname);
    	});
    
    
    });
  • 関数呼び出し時にパラメータが渡される点が異なる.
  • 結果


  • 設定したネット名はアドレス値を変更し、点数も50+100+200=35050+100+200=35050+100+200+200=350点となった.