Stablecoin 계약 배포 및 테스트
CLI를 사용하거나 Blockchain App Builder용 Microsoft Visual Studio Code 확장을 사용하여 계약을 배포할 수 있습니다.
Visual Studio 코드에서 배포
Blockchain App Builder용 Visual Studio Code 확장을 사용하여 계약을 배포하려면 다음 단계를 완료하십시오.
Stablecoin.zip아카이브 파일의 압축을 풉니다.Stablecoin계약을 Visual Studio Code의 Blockchain App Builder 확장으로 임포트합니다.- 임포트된 프로젝트를 선택한 다음 배포 탭을 선택합니다.
자세한 내용은 Visual Studio 코드용 Blockchain App Builder 확장 사용을 참조하십시오.
명령행에서 배치
명령행에서 계약을 배치하려면 다음 단계를 완료합니다.
Stablecoin.zip아카이브 파일의 압축을 풉니다.- 종속성을 설치하려면 다음 명령을 실행하십시오.
npm install - 다음 명령을 실행하여 계약을 컴파일합니다.
npx hardhat clean npx hardhat compile - 다음 네트워크 변수를 구성합니다.
다음 텍스트는 변수 구성의 예를 보여줍니다.npx hardhat vars set BESU_CHAIN_ID <chain-id> npx hardhat vars set BESU_RPC_URL <rpc-url> npx hardhat vars set BESU_RPX_PROXY_AUTH_TOKEN "Bearer {auth-token}" npx hardhat vars set WALLET_SERVICE_BASE_URL <wallet-svc-url> npx hardhat vars set WALLET_SERVICE_ENABLED true npx hardhat vars set WALLET_SERVICE_ACCOUNTS <wallet-svc-accounts> npx hardhat vars set WALLET_SERVICE_AUTH_TOKEN "Bearer {auth-token}"npx hardhat vars set BESU_CHAIN_ID 1500 npx hardhat vars set BESU_RPC_URL https://rpcproxy.example.com/v1/besu/proxy npx hardhat vars set BESU_RPX_PROXY_AUTH_TOKEN "Bearer ej1q..." npx hardhat vars set WALLET_SERVICE_BASE_URL https://rpcproxy.example.com/v1/besu/transaction npx hardhat vars set WALLET_SERVICE_ENABLED true npx hardhat vars set WALLET_SERVICE_ACCOUNTS '[{"address":"0xFf93749DEFa27077d055581642E077E94426A89C","walletId":"031cab07-ca25-422f-84a0-4a78d89982cc"}]' npx hardhat vars set WALLET_SERVICE_AUTH_TOKEN "Bearer ej1q..." - 계약을 배치합니다. 모든 배치에는
DEPLOYMENT_ID,GOVERNANCE_ADDRESS및GOVERNANCE_UUID변수가 필요합니다.- 배치가 실패하면 동일한
DEPLOYMENT_ID값으로 다시 실행하여 재개합니다. 배치가 성공하면 재개 캐시가 삭제됩니다. 동일한DEPLOYMENT_ID값으로 성공적인 배치를 다시 실행하는 경우 새 배치로 처리됩니다. GOVERNANCE_ADDRESS값은 인스턴스에 대해 사전 배치된 거버넌스 계약 주소입니다.GOVERNANCE_UUID값에 대해DA_ADMIN롤에 문의하십시오.
.obp-da/.erc7201레지스트리 항목에 기록합니다. 다음 명령을 실행하여 계약을 배치합니다.DEPLOYMENT_ID=<deployment-id> \ GOVERNANCE_ADDRESS=<ida-contract-governance-address> \ GOVERNANCE_UUID=<customer-governance-uuid> \ TOKEN_NAME="Stablecoin" \ TOKEN_SYMBOL="STBL" \ TOKEN_DESCRIPTION="Stablecoin token proxy contract" \ ADMIN_USER_ID="platformadmin1" \ ADMIN_ORG_ID="org1" \ CONTRACT_METADATA_SMART_CONTRACT_ID="stablecoin" \ CONTRACT_METADATA_VERSION="1.0.0" \ CONTRACT_METADATA_DESCRIPTION="Stablecoin token proxy contract" \ CONTRACT_METADATA_AUTHOR="Oracle" \ CONTRACT_METADATA_TAGS='{"assetType":"stablecoin token"}' \ npx hardhat run scripts/deploy/stablecoin/deploy-stablecoin-erc-5982.ts --network obp-besuCONTRACT_METADATA_*변수는 스크립트에 의해 배치된 토큰 프록시에 적용됩니다. 태그는 문자열 값이 있는 JSON 객체여야 합니다.이 명령은 계약을
INACTIVE모드로 배포합니다. 배포 의도를 제출하고 의도가GOVERNANCE_UUID값에 첨부된 정책에 따라 승인되면 배포가 자동으로ACTIVE로 표시됩니다. - 배치가 실패하면 동일한
- 관리되는 프록시를 위한 배포 의도를 제안합니다. 업그레이드의 경우 거버넌스 승인은 기존 프록시 및 검토된 정확한 새 구현에 연결됩니다. 필요한 승인 후 프록시는 주소 및 누적된 비즈니스 상태를 유지하면서 승인된 버전으로 이동할 수 있습니다. 다른 구현, 만료된 의도 또는 거부된 제안에는 새로운 거버넌스 결정이 필요합니다.
배포에서 거버넌스 컨텍스트를 설정한 후 모든 제어된 프록시에 대해 하나의 인텐트를 제출합니다. 다음 명령을 실행하여 배포 의도를 제안합니다.
GOVERNANCE_INTENT_MODE=obp-besu \ GOVERNANCE_ADDRESS=<governance-address> \ GOVERNANCE_UUID=<customer-uuid> \ DEPLOY_TARGETS_JSON='["<stablecoin-proxy>"]' \ DEPLOY_INTENT_MANIFEST=.obp-da/governance/deploy-intent.json \ npx hardhat run scripts/deploy/governance/propose-deploy-intent.ts --network obp-besu직접 계약 제출에
GOVERNANCE_INTENT_MODE = json-rpc를 사용합니다.GOVERNANCE_INTENT_MODE = obp-besu를 사용하는 경우 제안서는 RPC 프록시를 통해 UWaaS 엔드포인트로 제출됩니다.배포가 완료된 후 제공된 Postman 컬렉션을 사용하여 RPC 프록시를 통해 계약 메소드를 호출할 수 있습니다.