CosmWasm을 사용한 스마트 계약(5부)
소개
개인적인 일을 마치고 돌아옵니다. 나를 따르고 지원하는 모든 사람에게 감사하며 시리즈의 끝입니다.
계약서 작성
파일
examples/schema.rs
에서 계약의 스키마를 정의해야 합니다. 이전 부분에서 가져온 모든 스키마를 State
, InstantiateMsg
, ExecuteMsg
, QueryMsg
, ExecuteResponse
, QueryResponse
로 가져옵니다.use std::env::current_dir;
use std::fs::create_dir_all;
use cosmwasm_schema::{export_schema, remove_schemas, schema_for};
use cw_starter::msg::{ExecuteMsg, ExecuteResponse, InstantiateMsg, QueryMsg, QueryResponse};
use cw_starter::state::State;
fn main() {
let mut out_dir = current_dir().unwrap();
out_dir.push("schema");
create_dir_all(&out_dir).unwrap();
remove_schemas(&out_dir).unwrap();
export_schema(&schema_for!(State), &out_dir);
export_schema(&schema_for!(InstantiateMsg), &out_dir);
export_schema(&schema_for!(ExecuteMsg), &out_dir);
export_schema(&schema_for!(ExecuteResponse), &out_dir);
export_schema(&schema_for!(QueryMsg), &out_dir);
export_schema(&schema_for!(QueryResponse), &out_dir);
}
모든
json
스키마를 schema
디렉토리로 푸시합니다. 이제 스키마를 생성합니다.루트 폴더의 터미널에서 명령을 실행합니다.
cargo schema
명령이 성공적으로 실행되면
schema
폴더에 json 스키마가 표시됩니다.준비 단계는 괜찮습니다. 다음으로
CosmWasm IDE
로 스마트 계약을 구축합니다.파일
src/contract.rs
을 열고 상태 표시줄에서 Build CosmWasm
를 클릭한 다음 확장 프로그램이 계약을 빌드할 때까지 기다립니다. 빌드가 완료되면 새 파일artifacts/cw-starter.wasm
을 찾고 확장의 UI가 나타납니다. 이것은 우리의 계약입니다:참고:
Cargo.toml
에서 이러한 종속성을 사용하고 있으므로 계약 지원 체인을 Malaga
, Osmosis Testnet
, Osmosis Mainnet
및 CosmosHub Testnet
로 선택하고 니모닉을 .env
파일에 추가해야 합니다. 니모닉을 읽고 지갑과 상호 작용하기 위한 확장을 위한 루트 프로젝트.[dependencies]
cosmwasm-std = "1.0.0"
cosmwasm-storage = "1.0.0"
cw-storage-plus = "0.13.2"
cw2 = "0.13.2"
schemars = "0.8.8"
serde = { version = "1.0.137", default-features = false, features = ["derive"] }
thiserror = { version = "1.0.31" }
좋습니다. 다음 단계인 체인에 계약을 배포합니다.
계약 배포
먼저 체인을 선택합니다. 저는
Osmosis Testnet
를 선택하겠습니다.계약을 배포할 때 모든 필드를 완료해야 합니다. 우리의 경우
InstantiateMsg
에는 필드가 필요하지 않으므로 계약 레이블만 입력하거나 무시할 수 있습니다.Deploy CosmWasm
로 배포하고 계약StoreCode
과 Instantiate
가 체인에 연결될 때까지 기다립니다. 배포 성공 후 계약 주소가 있습니다.계약을 실행
선택 상자를 열고
Execute
를 선택하고 위 단계에서 얻은 컨트랙트 주소를 입력하고 Execute Message
입력란에 다음 메시지를 입력합니다.wallet mnemonic(optional)
에 니모닉을 입력해야 합니다(혼란스러울 수 있지만 필수 항목임).{"update":{}}
Execute
버튼을 누르세요. 확장 프로그램은 계약을 실행하고 msg를 포함하는 트랜잭션을 반환하여 계약을 실행합니다.계약 조회
동일하게 계약을 실행하면 빠르게 이동합니다.
쿼리를 선택하고 계약 주소를 입력한 다음
Query Message
를 입력합니다.{"counter":{}}
Query
버튼을 누르고 짜잔! 그리고 계약의 현재 상태가 나타납니다.요약
이것이 시리즈의 끝입니다. 이 시리즈 이후에 우리는 간단한 용어, 개발 코드를 갖고 CosmWasm 스마트 계약과 상호 작용하기를 바랍니다.
읽어 주셔서 감사합니다.
참조
Reference
이 문제에 관하여(CosmWasm을 사용한 스마트 계약(5부)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/im6h/smartcontract-with-cosmwasm-part-5-2cg1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)