블록체인/테라 (8) 썸네일형 리스트형 [terra.js] CreateTxFailed: First argument must be...에러 terra.js로 컨트랙트를 호출하려고 하는데 ExecuteMsg로 트랜잭션 생성 과정에서 다음과 같은 에러가 발생했다. 원인 package.json 에서 라이브러리는 보통 다음과 같이 표시되는데 "@terra-money/terra.js": "^3.0.4" 원인은 모르지만 특정 버전을 표시하더라도 최신 버전으로 작동하는 경우가 있다고 한다. 해결 버전 앞에 '^'를 제거해주면 된다. "@terra-money/terra.js": "3.0.4" [에러] linker 'cc' not found 에러 해결 terrain 설치 중 linker 'cc' not found 라는 에러 발생 해결 방법 sudo apt install build-essential CosWasm-plus를 이용한 스마트컨트랙트 만들기 - 1 테라 생태계에서 스마트 컨트랙트를 개발하는 데 사용하는 CosWasm을 활용해 간단한 스마트컨트랙트를 개발해보겠습니다. 개발할 스마트 컨트랙트는 가위바위보 게임입니다. 내기로 가위바위보 새 게임 시작(금액은 에스크로에 보관) 두 선수 모두가 자신이 무엇을 냈는지 확정하기 전까지는 비공개여야한다. 게임에서 이기면 배팅 금액을 얻고 리더보드에 표시된다. CosWasm-plus 먼저 요청 들어온 상대방의 지갑 주소가 유효한 것인지 확인하는 기능을 먼저 만들겠습니다. /packages/cw20/src/msg.rs의 Cw20ExecuteMsg에 StartGame을 추가해줍니다. StartGame { opponent : String, } 그 후 contracts/cw20-base/src/contracts.rs의 e.. 테스트넷에 배포하기 raffle-dapp 프로젝트를 테스트넷에 배포해보겠습니다. raffle-dapp 프로젝트 파일에 key.terrain.js 파일을 수정합니다. module.exports = { custom_tester_1: { mnemonic: "shiver position copy catalog upset verify cheap library enjoy extend second peasant basic kit polar business document shrug pass chuckle lottery blind ecology stand", } }; mnemonic은 자신의 테라스테이션 복구키를 적어주시면 됩니다. 임의로 하나 만드셔도 상관없습니다. 저장해주시고 콘솔로 돌아옵니다. raffle-dapp 경로에서 다음과 .. Terrain 프로젝트 예제 프론트 연동하기 raffle-dapp을 프론트로 연동해보겠습니다. terrain sync-refs cd frontend npm start npm install을 하지 않으셨던 분은 npm install 을 먼저 해주시고 그다음 진행해주세요. 다음과 같이 성공적으로 리액트가 실행되면 브라우저에서 다음과 페이지가 출력됩니다. 이제 테스트용 테라 월렛을 생성해야합니다. 크롬 웹스토어에서 테라 월렛을 설치해줍니다. 링크 Terra Station Wallet The Terra Station web extension allows you to access decentralized applications (DApps) powered by smart contracts on the Terra… chrome.google.com 월렛을 실행.. Terrain 예제 (Raffle - Dapp) 실행해보기 vscode에서 RAFFLE-DAPP 프로젝트를 열어보겠습니다. frontend 폴더를 보면 저번에 말했던 것처럼 리액트로 구성되어있는 것을 확인할 수 있습니다. contracts 폴더를 열어 src에 있는 contract.rs 파일입니다. 러스트로 작성되어있습니다. raffle-dapp 디렉토리에서 배포를 해보겠습니다. npx terrain deploy counter --signer validator 배포가 완료되었으면 컨트랙트를 수행해보겠습니다. raffle-dapp 프로젝트 폴더에 index.js를 보면 getCount 와 increment가 있습니다. 이 두 개는 우리가 콘솔 상에서 우리가 사용할 수 있는 컨트랙트 명령어라고 생각하시면 될 것 같습니다. 수행해보기 위해 terrain console.. Terrain 설치하기 LocalTerra에서 스마트컨트랙트를 개발하는 데 도움을 주는 도구인 Terrain을 설치해 보기로 하겠습니다. Terrain은 스마트컨트랙트, 리액트로 구성된 프론트엔드 예제부터 테스트넷에 배포까지 할 수 있게 구성되어있어 개발 및 공부하는 데 도움을 줍니다. 먼저 LocalTerra를 실행시켜줍니다. cd LocalTerra docker-compose up 다음 명령어들을 차례로 실행해 환경 구성을 해줍니다. rustup target add wasm32-unknown-unknown cargo install cargo-generate --features vendored-openssl cargo install cargo-run-script curl -o- https://raw.githubusercont.. LocalTerra 설치하기 스마트 컨트랙트를 개발할 때 메인 넷, 테스트 넷을 이용할 수 있지만 그 전에 먼저 로컬에서만 작동되는 LocalTerra를 설치해 개발을 시작해보겠습니다.. 1. Docker 설치 (윈도우10 WSL 사용자만) DockerDocs Install Docker Desktop on Windows docs.docker.com Docker를 실행후 설정에서 Use the WSL 2 based engine이 체크되어있나 확인합니다. 2. LocalTerra 설치 git clone https://github.com/terra-project/localterra 깃허브에서 LocalTerra를 받아준 후 다운 받은 디렉토리로 이동 docker-compose up 명령어를 입력해줍니다. cd localterra dock.. 이전 1 다음