이 섹션에서는 스마트 컨트랙트 코드 제안을 제출하고 투표하는 방법을 배웁니다.Injective 네트워크 참여자는 스마트 컨트랙트 배포를 제안하고 거버넌스에서 투표하여 활성화할 수 있습니다. wasmd 권한 설정은 온체인 거버넌스에 의해 결정되며, 이는 컨트랙트 배포가 완전히 거버넌스에 의해 결정됨을 의미합니다. 따라서 거버넌스 제안은 Injective 메인넷에 컨트랙트를 업로드하는 첫 번째 단계입니다.체인에 코드를 업로드하기 위한 거버넌스 제안을 시작하는 injectived 사용 예:
injectived tx gov submit-proposal wasm-store 명령은 wasm 바이너리 제안을 제출합니다. 제안이 거버넌스에 의해 승인되면 코드가 배포됩니다.업로드된 코드의 인스턴스화 권한을 설정하는 두 가지 주요 플래그 instantiate-everybody와 instantiate-only-address를 살펴보겠습니다. 기본적으로 모든 사람이 컨트랙트를 인스턴스화할 수 있습니다.
복사
AI에게 묻기
--instantiate-everybody boolean # 모든 사람이 코드에서 컨트랙트를 인스턴스화할 수 있음, 선택사항--instantiate-only-address string # 이 주소만 코드에서 컨트랙트 인스턴스를 인스턴스화할 수 있음
대부분의 경우 인스턴스화를 위해 다른 거버넌스 제안을 푸시할 필요가 없습니다. 간단히 injectived tx wasm instantiate로 인스턴스화하세요. 컨트랙트를 _업로드_하기 위해서만 거버넌스 제안이 필요합니다. --instantiate-everybody 플래그가 false로 설정되고 --instantiate-only-address 플래그가 거버넌스 모듈로 설정된 경우가 아니면 인스턴스화를 위해 거버넌스를 거칠 필요가 없습니다. --instantiate-everybody의 기본값은 true이며, 이 경우 injectived tx wasm instantiate를 통해 무허가로 인스턴스화할 수 있습니다.
마이그레이션은 주어진 스마트 컨트랙트의 코드를 교체하거나 ‘업그레이드’하는 프로세스입니다.컨트랙트를 인스턴스화할 때 설정할 수 있는 선택적 admin 필드가 있습니다. 비어 있으면 컨트랙트는 불변입니다. admin이 설정되면(외부 계정 또는 거버넌스 컨트랙트로) 해당 계정이 마이그레이션을 트리거할 수 있습니다. admin은 또한 admin 역할을 재할당하거나 원하는 경우 컨트랙트를 완전히 불변으로 만들 수 있습니다. 그러나 이전 컨트랙트에서 새 컨트랙트로 마이그레이션할 때 새 컨트랙트는 이전에 상태가 어떻게 인코딩되었는지 알아야 한다는 점을 명심하세요.마이그레이션의 기술적 측면에 대한 자세한 설명은 CosmWasm 마이그레이션 문서에서 찾을 수 있습니다.