일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프록시배포구조
- vue기초
- ethers type
- chainlink 설명
- 티스토리챌린지
- 스마트 컨트렉트 함수이름 중복
- ethers typescript
- 스마트컨트렉트테스트
- ambiguous function description
- ethers v6
- 체인의정석
- 컨트렉트 배포 자동화
- 스마트컨트렉트 예약어 함수이름 중복
- ethers
- 머신러닝기초
- 오블완
- nest.js설명
- git rebase
- 러스트 기초
- 컨트렉트 동일한 함수이름 호출
- rust 기초
- SBT표준
- Vue.js
- 스마트컨트렉트프록시
- 러스트 기초 학습
- Vue
- ethers websocket
- multicall
- 스마트컨트렉트 함수이름 중복 호출
- 러스트기초
Archives
- Today
- Total
체인의정석
Truffle에서 migration 사용하기 본문
728x90
반응형
한 환경에서 배포를 다양하게 해야할 경우
migration을 사용하여서 배포가 가능하다.
https://trufflesuite.com/docs/truffle/reference/truffle-commands/
truffle migrate [--reset] [--f <number>] [--to <number>] [--network <name>] [--compile-all] [--verbose-rpc] [--dry-run] [--interactive] [--skip-dry-run] [--describe-json]
이런식으로 그냥 migrate를 할 경우 전체가 배포되게 된다.
하지만 옵션을 설정할 경우 특정 파일만 배포할 수 있게 된다.
Options:
- --reset: Run all migrations from the beginning, instead of running from the last completed migration.
- --f <number>: Run contracts from a specific migration. The number refers to the prefix of the migration file.
- --to <number>: Run contracts to a specific migration. The number refers to the prefix of the migration file.
- --network <name>: Specify the network to use, saving artifacts specific to that network. Network name must exist in the configuration.
- --compile-all: Compile all contracts instead of intelligently choosing which contracts need to be compiled.
- --verbose-rpc: Log communication between Truffle and the Ethereum client.
- --dry-run: Fork the network specified and only perform a test migration.
- --skip-dry-run: Skip the test migration performed before the real migration.
- --interactive: Prompt to confirm that the user wants to proceed after the dry run.
- --describe-json: Prints additional status messages.
일단
--f 를 넣고 숫자를 지정하면 해당 숫자부터 시작이 되고
--to 를 넣고 숫자를 지정하면 해당 숫자까지 진행이 된다.
--network를 넣고 실행을 하면 truffle-config.js에 정의되어 있는 네트워크에 맞게 배포가 된다.
base) klaytn % truffle migrate --f 2 --to 2
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'ganache'
> Network id: 5777
> Block gas limit: 6721975 (0x6691b7)
실행해본 결과 잘 되는것을 확인할 수 있었다.
일단 배포의 경우 단일 배포를 가정하여 모든 배포 스크립트를 쪼개서 사용하기로 하였다.
그리고, 각 실행하는 함수에 대한 스크립트를 작성할 예정이다.
migration을 조금 더 잘 작성하면 배포 스크립트의 경우 다양하게 만들 수 있을 것으로 판단하였다.
var a, b;
deployer.then(function() {
// Create a new version of A
return A.new();
}).then(function(instance) {
a = instance;
// Get the deployed instance of B
return B.deployed();
}).then(function(instance) {
b = instance;
// Set the new instance of A's address on B via B's setA() function.
return b.setA(a.address);
});
이런식으로 배포를 진행할 시 한번에 여러개의 함수들을 모두 배포할 수 있다고 한다.
이걸 이용해서 전체 배포 스크립트를 만들어봐야겠다.
그리고 동기/비동기 처리도 가능하다고 한다.
module.exports = async function(deployer) {
// deploy a contract
await deployer.deploy(MyContract);
//access information about your deployed contract instance
const instance = await MyContract.deployed();
}
728x90
반응형
'블록체인 > Ethers & web3' 카테고리의 다른 글
상용 서비스에 들어가는 Smart Contract 테스트 코드 작성 팁 (0) | 2022.05.30 |
---|---|
ethers+hardhat) 스마트컨트렉트에서 uint256 배열이 리턴되는 경우의 테스트 코드 (0) | 2022.05.25 |
Ganche CLI 사용하기 (0) | 2022.05.19 |
스마트컨트렉트 UML 자동생성 (0) | 2022.05.19 |
Klaytn 개발환경 설정하기 (0) | 2022.05.18 |
Comments