truffle-config.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. require("dotenv").config({ path: ".env" });
  2. const HDWalletProvider = require("@truffle/hdwallet-provider");
  3. const KLAYHDWalletProvider = require("truffle-hdwallet-provider-klaytn");
  4. module.exports = {
  5. contracts_directory:
  6. "contracts/{*.sol,bridge/{*.sol,interfaces/*.sol,token/*.sol,mock/*.sol,utils/*.sol},interfaces/IWormhole.sol,mock/*.sol,nft/{*.sol,interfaces/*.sol,token/*.sol,mock/*.sol}}",
  7. networks: {
  8. development: {
  9. host: "127.0.0.1",
  10. port: 8545,
  11. network_id: "*",
  12. },
  13. // test network is the same as development but allows us to omit certain migrations
  14. test: {
  15. host: "127.0.0.1",
  16. port: 8545,
  17. network_id: "*",
  18. },
  19. ethereum: {
  20. provider: () =>
  21. new HDWalletProvider(process.env.MNEMONIC, "https://rpc.ankr.com/eth"),
  22. network_id: 1,
  23. confirmations: 1,
  24. timeoutBlocks: 200,
  25. skipDryRun: false,
  26. },
  27. rinkeby: {
  28. provider: () =>
  29. new HDWalletProvider(
  30. process.env.MNEMONIC,
  31. "https://rpc.ankr.com/eth_rinkeby"
  32. ),
  33. network_id: 4,
  34. gas: 5500000,
  35. confirmations: 2,
  36. timeoutBlocks: 200,
  37. skipDryRun: true,
  38. },
  39. ethereum_testnet: {
  40. provider: () => {
  41. return new HDWalletProvider(
  42. process.env.MNEMONIC,
  43. "https://rpc.ankr.com/eth_goerli"
  44. );
  45. },
  46. network_id: "5",
  47. },
  48. bsc: {
  49. provider: () => {
  50. return new HDWalletProvider(
  51. process.env.MNEMONIC,
  52. "https://bsc-dataseed.binance.org/"
  53. );
  54. },
  55. network_id: "56",
  56. gas: 70000000,
  57. gasPrice: 8000000000,
  58. },
  59. bsc_testnet: {
  60. provider: () =>
  61. new HDWalletProvider(
  62. process.env.MNEMONIC,
  63. "https://data-seed-prebsc-1-s1.binance.org:8545/"
  64. ),
  65. network_id: "97",
  66. },
  67. polygon: {
  68. provider: () => {
  69. return new HDWalletProvider(
  70. process.env.MNEMONIC,
  71. "https://polygon-rpc.com"
  72. );
  73. },
  74. network_id: "137",
  75. gas: 10000000,
  76. gasPrice: 700000000000,
  77. },
  78. polygon_testnet: {
  79. provider: () => {
  80. return new HDWalletProvider(
  81. process.env.MNEMONIC,
  82. "https://rpc.ankr.com/polygon_mumbai"
  83. );
  84. },
  85. network_id: "80001",
  86. },
  87. polygon_sepolia_testnet: {
  88. provider: () => {
  89. return new HDWalletProvider(
  90. process.env.MNEMONIC,
  91. "https://rpc-amoy.polygon.technology/"
  92. );
  93. },
  94. network_id: "80002",
  95. },
  96. avalanche: {
  97. provider: () => {
  98. return new HDWalletProvider(
  99. process.env.MNEMONIC,
  100. "https://api.avax.network/ext/bc/C/rpc"
  101. );
  102. },
  103. network_id: "43114",
  104. gas: 8000000,
  105. gasPrice: 26000000000,
  106. },
  107. avalanche_testnet: {
  108. provider: () =>
  109. new HDWalletProvider(
  110. process.env.MNEMONIC,
  111. "https://api.avax-test.network/ext/bc/C/rpc"
  112. ),
  113. network_id: "43113",
  114. },
  115. oasis: {
  116. provider: () => {
  117. return new HDWalletProvider(
  118. process.env.MNEMONIC,
  119. "https://emerald.oasis.dev/"
  120. );
  121. },
  122. network_id: 42262,
  123. },
  124. oasis_testnet: {
  125. provider: () => {
  126. return new HDWalletProvider(
  127. process.env.MNEMONIC,
  128. "https://testnet.emerald.oasis.dev"
  129. );
  130. },
  131. network_id: 42261,
  132. },
  133. aurora: {
  134. provider: () => {
  135. return new HDWalletProvider(
  136. process.env.MNEMONIC,
  137. "https://mainnet.aurora.dev"
  138. );
  139. },
  140. network_id: 0x4e454152,
  141. from: "0xE2e2d9E31d7e1CC1178Fe0d1c5950f6C809816a3",
  142. },
  143. aurora_testnet: {
  144. provider: () => {
  145. return new HDWalletProvider(
  146. process.env.MNEMONIC,
  147. "https://testnet.aurora.dev"
  148. );
  149. },
  150. network_id: 0x4e454153,
  151. gas: 10000000,
  152. from: "0x8F26A0025dcCc6Cfc07A7d38756280a10E295ad7", // public key
  153. },
  154. fantom: {
  155. provider: () => {
  156. return new HDWalletProvider(
  157. process.env.MNEMONIC,
  158. "https://rpc.ftm.tools/"
  159. );
  160. },
  161. network_id: 250,
  162. gas: 8000000,
  163. gasPrice: 3000000000000,
  164. timeoutBlocks: 15000,
  165. },
  166. fantom_testnet: {
  167. provider: () => {
  168. return new HDWalletProvider(
  169. process.env.MNEMONIC,
  170. "https://rpc.testnet.fantom.network/"
  171. );
  172. },
  173. network_id: 0xfa2,
  174. },
  175. karura: {
  176. provider: () => {
  177. return new HDWalletProvider(
  178. process.env.MNEMONIC,
  179. // NOTE: To use this local host, needed to run this: ENDPOINT_URL=wss://karura-rpc-1.aca-api.network npx @acala-network/eth-rpc-adapter@latest
  180. // "http://localhost:8545"
  181. "https://eth-rpc-karura.aca-api.network/"
  182. );
  183. },
  184. network_id: 686,
  185. // NOTE: run ./karura-gas-prices and update the following two values, otherwise the transactions will likely fail
  186. gasPrice: "0x2fad8f03ea",
  187. gasLimit: "0x329b140",
  188. gas: "0x329b140",
  189. },
  190. karura_testnet: {
  191. provider: () => {
  192. return new HDWalletProvider(
  193. process.env.MNEMONIC,
  194. "https://eth-rpc-karura-testnet.aca-staging.network"
  195. );
  196. },
  197. network_id: 596,
  198. gasPrice: "0x3006b003ea",
  199. gasLimit: "0x329b140",
  200. gas: "0x329b0dc",
  201. },
  202. acala: {
  203. provider: () => {
  204. return new HDWalletProvider(
  205. process.env.MNEMONIC,
  206. // To use this local host, needed to run this: ENDPOINT_URL=wss://acala-rpc-0.aca-api.network npx @acala-network/eth-rpc-adapter@latest
  207. //"http://localhost:8545"
  208. "https://eth-rpc-acala.aca-api.network/"
  209. );
  210. },
  211. network_id: 787,
  212. gasPrice: "0x33a70303ea",
  213. gasLimit: "0x6fc3540",
  214. gas: "0x6fc3400",
  215. },
  216. acala_testnet: {
  217. provider: () => {
  218. return new HDWalletProvider(
  219. process.env.MNEMONIC,
  220. "https://eth-rpc-acala-testnet.aca-staging.network"
  221. );
  222. },
  223. network_id: 597,
  224. gasPrice: "0x33a70303ea", // Query for gas parameters.
  225. gas: "0x6fc3540", // This is the value reported as "gasLimit" in the query.
  226. },
  227. klaytn: {
  228. // Note that Klaytn works with version 5.3.14 of truffle, but not some of the newer versions.
  229. provider: () => {
  230. return new KLAYHDWalletProvider(
  231. process.env.MNEMONIC,
  232. "https://public-node-api.klaytnapi.com/v1/cypress"
  233. );
  234. },
  235. network_id: "8217", //Klaytn mainnet's network id
  236. gas: "8500000",
  237. gasPrice: null,
  238. },
  239. klaytn_testnet: {
  240. // Note that Klaytn works with version 5.3.14 of truffle, but not some of the newer versions.
  241. provider: () => {
  242. return new HDWalletProvider(
  243. process.env.MNEMONIC,
  244. "https://api.baobab.klaytn.net:8651/"
  245. );
  246. },
  247. network_id: "1001",
  248. gas: "8500000",
  249. gasPrice: null,
  250. },
  251. celo: {
  252. provider: () => {
  253. return new HDWalletProvider(
  254. process.env.MNEMONIC,
  255. "https://forno.celo.org"
  256. );
  257. },
  258. network_id: 42220,
  259. gas: 8000000,
  260. gasPrice: null,
  261. },
  262. celo_testnet: {
  263. provider: () => {
  264. return new HDWalletProvider(
  265. process.env.MNEMONIC,
  266. "https://alfajores-forno.celo-testnet.org"
  267. );
  268. },
  269. network_id: 44787,
  270. },
  271. moonbeam: {
  272. provider: () => {
  273. return new HDWalletProvider(
  274. process.env.MNEMONIC,
  275. "https://rpc.api.moonbeam.network"
  276. //"https://moonbeam.api.onfinality.io/public" // When the core was deployed on 7/21/2022, the one above kept timing out but this one worked.
  277. );
  278. },
  279. network_id: 1284,
  280. },
  281. moonbeam_testnet: {
  282. provider: () => {
  283. return new HDWalletProvider(
  284. process.env.MNEMONIC,
  285. "https://rpc.api.moonbase.moonbeam.network"
  286. );
  287. },
  288. network_id: 1287,
  289. gasPrice: 3000000000, // 3.0 gwei
  290. timeoutBlocks: 15000,
  291. },
  292. neon_testnet: {
  293. provider: () => {
  294. return new HDWalletProvider(
  295. process.env.MNEMONIC,
  296. "https://proxy.devnet.neonlabs.org/solana"
  297. );
  298. },
  299. network_id: "*",
  300. gas: 3000000000,
  301. gasPrice: 443065000000,
  302. },
  303. arbitrum: {
  304. // Note that arbitrum did not work with our standard version of truffle (5.3.14), but it did work with the latest (5.5.22)
  305. provider: () => {
  306. return new HDWalletProvider(
  307. process.env.MNEMONIC,
  308. "https://arb1.arbitrum.io/rpc"
  309. );
  310. },
  311. network_id: 42161,
  312. },
  313. arbitrum_testnet: {
  314. provider: () => {
  315. return new HDWalletProvider(
  316. process.env.MNEMONIC,
  317. "https://goerli-rollup.arbitrum.io/rpc"
  318. );
  319. },
  320. network_id: 421613,
  321. },
  322. arbitrum_sepolia_testnet: {
  323. provider: () => {
  324. return new HDWalletProvider(
  325. process.env.MNEMONIC,
  326. "https://arbitrum-sepolia.publicnode.com"
  327. //"https://sepolia-rollup.arbitrum.io/rpc" // This didn't work.
  328. );
  329. },
  330. network_id: 421614,
  331. },
  332. optimism: {
  333. provider: () => {
  334. return new HDWalletProvider(
  335. process.env.MNEMONIC,
  336. "https://mainnet.optimism.io"
  337. );
  338. },
  339. network_id: 10,
  340. },
  341. optimism_testnet: {
  342. provider: () => {
  343. return new HDWalletProvider(
  344. process.env.MNEMONIC,
  345. "https://rpc.ankr.com/optimism_testnet"
  346. // "https://goerli.optimism.io" <== This didn't work for testnet
  347. );
  348. },
  349. network_id: 420,
  350. },
  351. optimism_sepolia_testnet: {
  352. provider: () => {
  353. return new HDWalletProvider(
  354. process.env.MNEMONIC,
  355. "https://rpc.ankr.com/optimism_sepolia"
  356. // "https://sepolia.optimism.io/" <== This didn't work for testnet
  357. );
  358. },
  359. network_id: 11155420,
  360. },
  361. gnosis: {
  362. provider: () => {
  363. return new HDWalletProvider(
  364. process.env.MNEMONIC,
  365. "https://rpc.gnosischain.com/"
  366. );
  367. },
  368. network_id: 100,
  369. },
  370. gnosis_testnet: {
  371. provider: () => {
  372. return new HDWalletProvider(
  373. process.env.MNEMONIC,
  374. "https://sokol.poa.network/"
  375. );
  376. },
  377. network_id: 77,
  378. },
  379. base: {
  380. provider: () => {
  381. return new HDWalletProvider(
  382. process.env.MNEMONIC,
  383. "https://developer-access-mainnet.base.org"
  384. );
  385. },
  386. network_id: 8453,
  387. },
  388. base_testnet: {
  389. provider: () => {
  390. return new HDWalletProvider(
  391. process.env.MNEMONIC,
  392. "https://goerli.base.org"
  393. );
  394. },
  395. network_id: 84531,
  396. },
  397. base_sepolia_testnet: {
  398. provider: () => {
  399. return new HDWalletProvider(
  400. process.env.MNEMONIC,
  401. "https://sepolia.base.org"
  402. );
  403. },
  404. network_id: 84532,
  405. },
  406. scroll_testnet: {
  407. provider: () => {
  408. return new HDWalletProvider(
  409. process.env.MNEMONIC,
  410. "https://sepolia-rpc.scroll.io"
  411. );
  412. },
  413. network_id: 534351,
  414. },
  415. mantle_testnet: {
  416. provider: () => {
  417. return new HDWalletProvider(
  418. process.env.MNEMONIC,
  419. "https://rpc.testnet.mantle.xyz"
  420. );
  421. },
  422. network_id: 5001,
  423. },
  424. rootstock: {
  425. provider: () => {
  426. return new HDWalletProvider(
  427. process.env.MNEMONIC,
  428. "https://public-node.rsk.co"
  429. );
  430. },
  431. network_id: 30,
  432. },
  433. rootstock_testnet: {
  434. provider: () => {
  435. return new HDWalletProvider(
  436. process.env.MNEMONIC,
  437. "https://public-node.testnet.rsk.co"
  438. );
  439. },
  440. network_id: 31,
  441. },
  442. sepolia_testnet: {
  443. provider: () => {
  444. return new HDWalletProvider(
  445. process.env.MNEMONIC,
  446. "https://rpc.ankr.com/eth_sepolia"
  447. );
  448. },
  449. network_id: "11155111",
  450. },
  451. holesky_testnet: {
  452. provider: () => {
  453. return new HDWalletProvider(
  454. process.env.MNEMONIC,
  455. "https://rpc.ankr.com/eth_holesky"
  456. );
  457. },
  458. network_id: "17000",
  459. },
  460. },
  461. compilers: {
  462. solc: {
  463. version: "0.8.4",
  464. settings: {
  465. optimizer: {
  466. enabled: true,
  467. runs: 200,
  468. },
  469. viaIR: false,
  470. },
  471. },
  472. },
  473. plugins: ["@chainsafe/truffle-plugin-abigen", "truffle-plugin-verify"],
  474. api_keys: {
  475. etherscan: process.env.ETHERSCAN_KEY,
  476. },
  477. };