truffle-config.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. require("dotenv").config({ path: ".env" });
  2. const HDWalletProvider = require("@truffle/hdwallet-provider");
  3. /**
  4. *
  5. * @param {string} url
  6. * @returns {HDWalletProvider} An instance of HDWalletProvider
  7. */
  8. function payerProvider(url) {
  9. return () =>
  10. new HDWalletProvider({
  11. mnemonic: process.env.MNEMONIC,
  12. providerOrUrl: url,
  13. // This option makes deployments more reliable (by avoiding rate limiting errors) at the cost of
  14. // taking a little longer.
  15. pollingInterval: 12000,
  16. });
  17. }
  18. module.exports = {
  19. migrations_directory: process.env.MIGRATIONS_DIR,
  20. networks: {
  21. development: {
  22. host: "127.0.0.1",
  23. port: 8545,
  24. network_id: "*",
  25. },
  26. ethereum: {
  27. provider: payerProvider(
  28. `https://mainnet.infura.io/v3/` + process.env.INFURA_KEY
  29. ),
  30. network_id: 1,
  31. gas: 10000000,
  32. gasPrice: 17000000000,
  33. confirmations: 1,
  34. timeoutBlocks: 200,
  35. skipDryRun: false,
  36. },
  37. rinkeby: {
  38. provider: payerProvider(
  39. `https://rinkeby.infura.io/v3/` + process.env.INFURA_KEY
  40. ),
  41. network_id: 4,
  42. gas: 5500000,
  43. confirmations: 2,
  44. timeoutBlocks: 200,
  45. skipDryRun: true,
  46. },
  47. goerli: {
  48. provider: payerProvider(
  49. `https://goerli.infura.io/v3/` + process.env.INFURA_KEY
  50. ),
  51. network_id: "5",
  52. gas: 8465030,
  53. gasPrice: 15000000000,
  54. skipDryRun: true,
  55. },
  56. bnb: {
  57. provider: payerProvider(`https://rpc.ankr.com/bsc`),
  58. network_id: "56",
  59. gas: 70000000,
  60. gasPrice: 5500000000,
  61. },
  62. bnb_testnet: {
  63. provider: payerProvider(`https://rpc.ankr.com/bsc_testnet_chapel`),
  64. network_id: "97",
  65. confirmations: 10,
  66. networkCheckTimeout: 1000000,
  67. timeoutBlocks: 1000,
  68. skipDryRun: true,
  69. },
  70. polygon: {
  71. provider: payerProvider(`https://polygon-rpc.com`),
  72. network_id: "137",
  73. gas: 20000000,
  74. gasPrice: 300000000000,
  75. },
  76. mumbai: {
  77. provider: payerProvider(
  78. `https://polygon-testnet-rpc.allthatnode.com:8545`
  79. ),
  80. network_id: "80001",
  81. },
  82. avalanche: {
  83. provider: payerProvider(`https://api.avax.network/ext/bc/C/rpc`),
  84. network_id: "43114",
  85. gas: 8000000,
  86. gasPrice: 30000000000,
  87. },
  88. fuji: {
  89. provider: payerProvider(`https://api.avax-test.network/ext/bc/C/rpc`),
  90. network_id: "43113",
  91. },
  92. aurora: {
  93. provider: payerProvider(`https://mainnet.aurora.dev`),
  94. network_id: 0x4e454152,
  95. gas: 10000000,
  96. from: "0xC42e9476b0a458097087336e2395Dbf45B0BdC12", // creator public key
  97. networkCheckTimeout: 1000000,
  98. timeoutBlocks: 1000,
  99. },
  100. aurora_testnet: {
  101. provider: payerProvider(`https://testnet.aurora.dev`),
  102. network_id: 0x4e454153,
  103. gas: 10000000,
  104. from: "0xC42e9476b0a458097087336e2395Dbf45B0BdC12", // public key
  105. networkCheckTimeout: 1000000,
  106. timeoutBlocks: 1000,
  107. },
  108. arbitrum: {
  109. provider: payerProvider(`https://arb1.arbitrum.io/rpc`),
  110. network_id: 42161,
  111. },
  112. arbitrum_testnet: {
  113. provider: payerProvider(`https://goerli-rollup.arbitrum.io/rpc`),
  114. network_id: 421613,
  115. },
  116. optimism: {
  117. provider: payerProvider(`https://rpc.ankr.com/optimism`),
  118. network_id: 10,
  119. },
  120. optimism_goerli: {
  121. provider: payerProvider(`https://rpc.ankr.com/optimism_testnet`),
  122. network_id: 420,
  123. },
  124. fantom: {
  125. provider: payerProvider(`https://rpc.ankr.com/fantom`),
  126. network_id: 250,
  127. gas: 8000000,
  128. gasPrice: 50000000000,
  129. timeoutBlocks: 15000,
  130. },
  131. fantom_testnet: {
  132. provider: payerProvider(`https://rpc.ankr.com/fantom_testnet`),
  133. network_id: 0xfa2,
  134. gas: 8000000,
  135. gasPrice: 300000000000,
  136. },
  137. canto_testnet: {
  138. provider: payerProvider(`https://canto-testnet.plexnode.wtf`),
  139. deploymentPollingInterval: 20000,
  140. network_id: 7701,
  141. networkCheckTimeout: 1000000,
  142. timeoutBlocks: 200,
  143. disableConfirmationListener: true,
  144. },
  145. canto: {
  146. provider: payerProvider(`https://canto.gravitychain.io`),
  147. network_id: 7700,
  148. },
  149. celo: {
  150. provider: payerProvider(`https://forno.celo.org`),
  151. network_id: 42220,
  152. },
  153. celo_alfajores_testnet: {
  154. provider: payerProvider(`https://alfajores-forno.celo-testnet.org`),
  155. network_id: 44787,
  156. },
  157. kcc: {
  158. provider: payerProvider(`https://rpc-mainnet.kcc.network`),
  159. network_id: 321,
  160. },
  161. kcc_testnet: {
  162. provider: payerProvider(`https://rpc-testnet.kcc.network`),
  163. network_id: 322,
  164. },
  165. zksync: {
  166. provider: payerProvider(`https://zksync2-mainnet.zksync.io`),
  167. network_id: 324,
  168. },
  169. zksync_goerli: {
  170. provider: payerProvider(`https://zksync2-testnet.zksync.dev`),
  171. network_id: 280,
  172. },
  173. cronos: {
  174. provider: payerProvider(`https://cronosrpc-1.xstaking.sg`),
  175. network_id: 25,
  176. },
  177. cronos_testnet: {
  178. provider: payerProvider(`https://evm-t3.cronos.org`),
  179. network_id: 338,
  180. },
  181. polygon_zkevm_testnet: {
  182. provider: payerProvider(`https://rpc.public.zkevm-test.net/`),
  183. network_id: 1442,
  184. },
  185. polygon_zkevm: {
  186. provider: payerProvider(`https://zkevm-rpc.com`),
  187. network_id: 1101,
  188. },
  189. gnosis: {
  190. provider: payerProvider(`https://rpc.gnosischain.com`),
  191. network_id: 100,
  192. },
  193. chiado: {
  194. // gnosis testnet
  195. provider: payerProvider(`https://rpc.chiadochain.net`),
  196. network_id: 10200,
  197. },
  198. base_goerli: {
  199. provider: payerProvider(`https://goerli.base.org`),
  200. network_id: 84531,
  201. verify: {
  202. apiUrl: "https://api-goerli.basescan.org/api",
  203. explorerUrl: "https://goerli.basescan.org/",
  204. apiKey: "there_should_be_a_dummy_value_here_to_avoid_error",
  205. },
  206. },
  207. evmos: {
  208. provider: payerProvider(`https://eth.bd.evmos.org:8545/`),
  209. network_id: 9001,
  210. },
  211. evmos_testnet: {
  212. provider: payerProvider(`https://eth.bd.evmos.dev:8545/`),
  213. network_id: 9000,
  214. },
  215. neon_devnet: {
  216. provider: payerProvider(`https://devnet.neonevm.org`),
  217. network_id: 245022926,
  218. },
  219. meter_testnet: {
  220. provider: payerProvider("https://rpctest.meter.io"),
  221. network_id: 83,
  222. },
  223. meter: {
  224. provider: payerProvider("https://rpc-meter.jellypool.xyz"),
  225. network_id: 82,
  226. },
  227. mantle: {
  228. provider: payerProvider("https://rpc.mantle.xyz/"),
  229. network_id: 5000,
  230. },
  231. mantle_testnet: {
  232. provider: payerProvider("https://rpc.testnet.mantle.xyz/"),
  233. network_id: 5001,
  234. },
  235. conflux_espace: {
  236. provider: payerProvider("https://evm.confluxrpc.org"),
  237. network_id: 1030,
  238. },
  239. conflux_espace_testnet: {
  240. provider: payerProvider("https://evmtestnet.confluxrpc.com"),
  241. network_id: 71,
  242. },
  243. neon: {
  244. provider: payerProvider("https://neon-proxy-mainnet.solana.p2p.org"),
  245. network_id: 245022934,
  246. },
  247. kava: {
  248. provider: payerProvider("https://evm.kava.io"),
  249. network_id: 2222,
  250. verify: {
  251. apiUrl: "https://explorer.kava.io/api",
  252. explorerUrl: "https://explorer.kava.io/",
  253. apiKey: "there_should_be_a_dummy_value_here_to_avoid_error",
  254. },
  255. },
  256. kava_testnet: {
  257. provider: payerProvider("https://evm.testnet.kava.io"),
  258. network_id: 2221,
  259. },
  260. wemix: {
  261. provider: payerProvider("https://api.wemix.com"),
  262. network_id: 1111,
  263. gas: 10000000,
  264. gasPrice: 200000000000,
  265. },
  266. wemix_testnet: {
  267. provider: payerProvider("https://api.test.wemix.com"),
  268. network_id: 1112,
  269. gas: 10000000,
  270. gasPrice: 200000000000,
  271. },
  272. linea_goerli: {
  273. provider: payerProvider("https://rpc.goerli.linea.build"),
  274. network_id: 59140,
  275. },
  276. linea: {
  277. provider: payerProvider(
  278. `https://linea-mainnet.infura.io/v3/` + process.env.INFURA_KEY
  279. ),
  280. network_id: 59144,
  281. verify: {
  282. apiUrl: "http://explorer.linea.build/api",
  283. explorerUrl: "https://explorer.linea.build/",
  284. apiKey: "there_should_be_a_dummy_value_here_to_avoid_error",
  285. },
  286. },
  287. eos: {
  288. provider: payerProvider("https://api.evm.eosnetwork.com"),
  289. network_id: 17777,
  290. verify: {
  291. apiUrl: "https://explorer.evm.eosnetwork.com/api",
  292. explorerUrl: "https://explorer.evm.eosnetwork.com",
  293. apiKey: "there_should_be_a_dummy_value_here_to_avoid_error",
  294. },
  295. },
  296. eos_testnet: {
  297. provider: payerProvider("https://api.testnet.evm.eosnetwork.com"),
  298. network_id: 15557,
  299. verify: {
  300. apiUrl: "https://explorer.testnet.evm.eosnetwork.com/api",
  301. explorerUrl: "https://explorer.testnet.evm.eosnetwork.com",
  302. apiKey: "there_should_be_a_dummy_value_here_to_avoid_error",
  303. },
  304. },
  305. },
  306. compilers: {
  307. solc: {
  308. version: "0.8.4",
  309. settings: {
  310. optimizer: {
  311. enabled: true,
  312. runs: 2000,
  313. },
  314. },
  315. },
  316. },
  317. plugins: ["truffle-plugin-verify", "truffle-contract-size"],
  318. api_keys: {
  319. etherscan: process.env.ETHERSCAN_KEY,
  320. bscscan: process.env.BSCSCAN_KEY,
  321. snowtrace: process.env.SNOWTRACE_KEY,
  322. ftmscan: process.env.FTMSCAN_KEY,
  323. polygonscan: process.env.POLYGONSCAN_KEY,
  324. optimistic_etherscan: process.env.OPTIMISTIC_ETHERSCAN_KEY,
  325. aurorascan: process.env.AURORASCAN_KEY,
  326. arbiscan: process.env.ARBISCAN_KEY,
  327. gnosisscan: process.env.GNOSISSCAN_KEY,
  328. },
  329. };