truffle을 이용해서 개발을 진행하려고 하는데
공식 문서를 보고
진행하는데 자꾸 에러메시지가 나옵니다.
어떤 contract를 migrate 하더라도
Deploying 'Migrations'
----------------------
> transaction hash: 0xa6db1c3510716ff87d3778fa6f9992bf65cff3fab8c39ee2ed2aef4efd5773c0
Error: Given value "TxTypeLegacyTransaction" is not a valid hex string.
at Object.hexToNumber (/usr/local/lib/node_modules/truffle/build/webpack:/node_modules/web3-utils/lib/utils.js:205:1)
at Method.outputTransactionFormatter (/usr/local/lib/node_modules/truffle/build/webpack:/node_modules/web3-core-helpers/lib/formatters.js:214:1)
at Method.web3.eth.getTransaction.method.outputFormatter (/usr/local/lib/node_modules/truffle/build/webpack:/packages/interface-adapter/dist/shim/overloads/ethereum.js:52:1)
at Method.formatOutput (/usr/local/lib/node_modules/truffle/build/webpack:/node_modules/web3-eth/node_modules/web3-core-method/lib/index.js:146:1)
at sendTxCallback (/usr/local/lib/node_modules/truffle/build/webpack:/node_modules/web3-eth/node_modules/web3-core-method/lib/index.js:522:1)
at /usr/local/lib/node_modules/truffle/build/webpack:/node_modules/web3/node_modules/web3-core-requestmanager/lib/index.js:307:1
at finished (/Users/유저이름/Desktop/truffle/node_modules/truffle-hdwallet-provider-klaytn/dist/webpack:/truffle-hdwallet-provider/node_modules/web3-provider-engine/index.js:152:9)
at apply (/Users/유저이름/Desktop/truffle/node_modules/truffle-hdwallet-provider-klaytn/dist/webpack:/truffle-hdwallet-provider/node_modules/async/internal/once.js:12:16)
at callback (/Users/유저이름/Desktop/truffle/node_modules/truffle-hdwallet-provider-klaytn/dist/webpack:/truffle-hdwallet-provider/node_modules/async/internal/eachOfLimit.js:61:25)
at replenish (/Users/유저이름/Desktop/truffle/node_modules/truffle-hdwallet-provider-klaytn/dist/webpack:/truffle-hdwallet-provider/node_modules/async/internal/eachOfLimit.js:71:9)
at t.default (/Users/유저이름/Desktop/truffle/node_modules/truffle-hdwallet-provider-klaytn/dist/webpack:/truffle-hdwallet-provider/node_modules/async/eachLimit.js:43:3)
at fn (/Users/유저이름/Desktop/truffle/node_modules/truffle-hdwallet-provider-klaytn/dist/webpack:/truffle-hdwallet-provider/node_modules/async/internal/doLimit.js:9:16)
at eachSeries (/Users/유저이름/Desktop/truffle/node_modules/truffle-hdwallet-provider-klaytn/dist/webpack:/truffle-hdwallet-provider/node_modules/web3-provider-engine/index.js:127:5)
at end (/Users/유저이름/Desktop/truffle/node_modules/truffle-hdwallet-provider-klaytn/dist/webpack:/truffle-hdwallet-provider/src/subproviders/provider.js:19:5)
at t.callback [as onreadystatechange] (/Users/유저이름/Desktop/truffle/node_modules/truffle-hdwallet-provider-klaytn/dist/webpack:/truffle-hdwallet-provider/node_modules/caver-js/packages/caver-core-requestmanager/caver-providers-http/src/index.js:119:13)
at t.call [as dispatchEvent] (/Users/유저이름/Desktop/truffle/node_modules/truffle-hdwallet-provider-klaytn/dist/webpack:/truffle-hdwallet-provider/node_modules/xhr2-cookies/dist/xml-http-request-event-target.js:34:22)
- Blocks: 0 Seconds: 0
라는 에러 메시지가 나옵니다.
module.exports = {
// Uncommenting the defaults below
// provides for an easier quick-start with Ganache.
// You can also follow this format for other networks;
// see <http://truffleframework.com/docs/advanced/configuration>
// for more details on how to specify configuration options!
//
//networks: {
// development: {
// host: "127.0.0.1",
// port: 7545,
// network_id: "*"
// },
// test: {
// host: "127.0.0.1",
// port: 7545,
// network_id: "*"
// }
//},
//
// Truffle DB is currently disabled by default; to enable it, change enabled:
// false to enabled: true. The default storage location can also be
// overridden by specifying the adapter settings, as shown in the commented code below.
//
// NOTE: It is not possible to migrate your contracts to truffle DB and you should
// make a backup of your artifacts to a safe location before enabling this feature.
//
// After you backed up your artifacts you can utilize db by running migrate as follows:
// $ truffle migrate --reset --compile-all
//
// db: {
// enabled: false,
// host: "127.0.0.1",
// adapter: {
// name: "sqlite",
// settings: {
// directory: ".db"
// }
// }
// }
};
const HDWalletProvider = require("truffle-hdwallet-provider-klaytn");
const privateKey = "개인키";
module.exports = {
networks: {
development: {
host: "localhost",
port: 8551,
network_id: "*", // Match any network id
},
klaytn: {
provider: () => {
const pks = JSON.parse(
fs.readFileSync(path.resolve(__dirname) + "/privateKeys.js")
);
return new HDWalletProvider(
pks,
"http://localhost:8551",
0,
pks.length
);
},
network_id: "1001", //Klaytn baobab testnet's network id
gas: "8500000",
gasPrice: null,
},
kasBaobab: {
provider: () => {
const option = {
headers: [
{
name: "Authorization",
value:
"Basic " +
Buffer.from(accessKeyId + ":" + secretAccessKey).toString(
"base64"
),
},
{ name: "x-chain-id", value: "1001" },
],
keepAlive: false,
};
return new HDWalletProvider(
privateKey,
new Caver.providers.HttpProvider(
"https://node-api.klaytnapi.com/v1/klaytn",
option
)
);
},
network_id: "1001", //Klaytn baobab testnet's network id
gas: "8500000",
gasPrice: "25000000000",
},
kasCypress: {
provider: () => {
const option = {
headers: [
{
name: "Authorization",
value:
"Basic " +
Buffer.from(accessKeyId + ":" + secretAccessKey).toString(
"base64"
),
},
{ name: "x-chain-id", value: "8217" },
],
keepAlive: false,
};
return new HDWalletProvider(
cypressPrivateKey,
new Caver.providers.HttpProvider(
"https://node-api.klaytnapi.com/v1/klaytn",
option
)
);
},
network_id: "8217", //Klaytn baobab testnet's network id
gas: "8500000",
gasPrice: "25000000000",
},
baobab: {
provider: () => {
return new HDWalletProvider(privateKey, "https://kaikas.baobab.klaytn.net:8651/");
},
network_id: "1001", //Klaytn baobab testnet's network id
gas: "8500000",
gasPrice: null,
},
cypress: {
provider: () => {
return new HDWalletProvider(privateKey, "http://your.cypress.en:8551");
},
network_id: "8217", //Klaytn mainnet's network id
gas: "8500000",
gasPrice: null,
},
},
compilers: {
solc: {
version: "0.5.6", // Fetch exact version from solc-bin (default: truffle's version)
//docker: true, // Use "0.5.1" you've installed locally with docker (default: false)
settings: { // See the solidity docs for advice about optimization and evmVersion
optimizer: {
enabled: false,
runs: 200
},
evmVersion: "constantinople"
}
}
}
};
truffle-config.js 파일은 위와 같으며
compilers: {
solc: {
version: "0.5.6", // Fetch exact version from solc-bin (default: truffle's version)
//docker: true, // Use "0.5.1" you've installed locally with docker (default: false)
settings: { // See the solidity docs for advice about optimization and evmVersion
optimizer: {
enabled: false,
runs: 200
},
evmVersion: "constantinople"
}
}
}
HDWalletProvider(privateKey, "https://kaikas.baobab.klaytn.net:8651/");
위의 내용만 baobab 설정값 변경 및 추가하여 공식문서 예제와 동일합니다.
node.js version 은 v10.24.1 입니다.