truffle-config.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  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. });
  14. }
  15. module.exports = {
  16. migrations_directory: process.env.MIGRATIONS_DIR,
  17. networks: {
  18. development: {
  19. host: "127.0.0.1",
  20. port: 8545,
  21. network_id: "*",
  22. },
  23. ethereum: {
  24. provider: payerProvider(
  25. `https://mainnet.infura.io/v3/` + process.env.INFURA_KEY
  26. ),
  27. network_id: 1,
  28. gas: 10000000,
  29. gasPrice: 17000000000,
  30. confirmations: 1,
  31. timeoutBlocks: 200,
  32. skipDryRun: false,
  33. },
  34. ropsten: {
  35. provider: payerProvider(
  36. `https://ropsten.infura.io/v3/` + process.env.INFURA_KEY
  37. ),
  38. network_id: 3,
  39. gas: 5500000,
  40. confirmations: 2,
  41. timeoutBlocks: 200,
  42. skipDryRun: true,
  43. },
  44. rinkeby: {
  45. provider: payerProvider(
  46. `https://rinkeby.infura.io/v3/` + process.env.INFURA_KEY
  47. ),
  48. network_id: 4,
  49. gas: 5500000,
  50. confirmations: 2,
  51. timeoutBlocks: 200,
  52. skipDryRun: true,
  53. },
  54. goerli: {
  55. provider: payerProvider(
  56. `https://goerli.infura.io/v3/` + process.env.INFURA_KEY
  57. ),
  58. network_id: "5",
  59. gas: 8465030,
  60. gasPrice: 15000000000,
  61. skipDryRun: true,
  62. },
  63. bnb: {
  64. provider: payerProvider(`https://rpc.ankr.com/bsc`),
  65. network_id: "56",
  66. gas: 70000000,
  67. gasPrice: 5500000000,
  68. },
  69. bnb_testnet: {
  70. provider: payerProvider(`https://rpc.ankr.com/bsc_testnet_chapel`),
  71. network_id: "97",
  72. confirmations: 10,
  73. networkCheckTimeout: 1000000,
  74. timeoutBlocks: 1000,
  75. skipDryRun: true,
  76. },
  77. polygon: {
  78. provider: payerProvider(`https://polygon-rpc.com`),
  79. network_id: "137",
  80. gas: 20000000,
  81. gasPrice: 300000000000,
  82. },
  83. mumbai: {
  84. provider: payerProvider(
  85. `https://polygon-testnet-rpc.allthatnode.com:8545`
  86. ),
  87. network_id: "80001",
  88. },
  89. avalanche: {
  90. provider: payerProvider(`https://api.avax.network/ext/bc/C/rpc`),
  91. network_id: "43114",
  92. gas: 8000000,
  93. gasPrice: 30000000000,
  94. },
  95. fuji: {
  96. provider: payerProvider(`https://api.avax-test.network/ext/bc/C/rpc`),
  97. network_id: "43113",
  98. },
  99. oasis: {
  100. provider: payerProvider(`https://emerald.oasis.dev/`),
  101. network_id: 42262,
  102. gas: 4465030,
  103. gasPrice: 30000000000,
  104. },
  105. aurora: {
  106. provider: payerProvider(`https://mainnet.aurora.dev`),
  107. network_id: 0x4e454152,
  108. gas: 10000000,
  109. from: "0xC42e9476b0a458097087336e2395Dbf45B0BdC12", // creator public key
  110. networkCheckTimeout: 1000000,
  111. timeoutBlocks: 1000,
  112. },
  113. aurora_testnet: {
  114. provider: payerProvider(`https://testnet.aurora.dev`),
  115. network_id: 0x4e454153,
  116. gas: 10000000,
  117. from: "0xC42e9476b0a458097087336e2395Dbf45B0BdC12", // public key
  118. networkCheckTimeout: 1000000,
  119. timeoutBlocks: 1000,
  120. },
  121. arbitrum: {
  122. provider: payerProvider(`https://arb1.arbitrum.io/rpc`),
  123. network_id: 42161,
  124. },
  125. arbitrum_testnet: {
  126. provider: payerProvider(`https://goerli-rollup.arbitrum.io/rpc`),
  127. network_id: 421613,
  128. },
  129. optimism: {
  130. provider: payerProvider(`https://rpc.ankr.com/optimism`),
  131. network_id: 10,
  132. },
  133. optimism_goerli: {
  134. provider: payerProvider(`https://rpc.ankr.com/optimism_testnet`),
  135. network_id: 420,
  136. },
  137. fantom: {
  138. provider: payerProvider(`https://rpc.ankr.com/fantom`),
  139. network_id: 250,
  140. gas: 8000000,
  141. gasPrice: 50000000000,
  142. timeoutBlocks: 15000,
  143. },
  144. fantom_testnet: {
  145. provider: payerProvider(`https://rpc.ankr.com/fantom_testnet`),
  146. network_id: 0xfa2,
  147. gas: 8000000,
  148. gasPrice: 300000000000,
  149. },
  150. celo: {
  151. provider: payerProvider(`https://forno.celo.org`),
  152. network_id: 42220,
  153. },
  154. celo_alfajores_testnet: {
  155. provider: payerProvider(`https://alfajores-forno.celo-testnet.org`),
  156. network_id: 44787,
  157. },
  158. kcc: {
  159. provider: payerProvider(`https://rpc-mainnet.kcc.network`),
  160. network_id: 321,
  161. },
  162. kcc_testnet: {
  163. provider: payerProvider(`https://rpc-testnet.kcc.network`),
  164. network_id: 322,
  165. },
  166. zksync: {
  167. provider: payerProvider(`https://zksync2-mainnet.zksync.io`),
  168. network_id: 324,
  169. },
  170. zksync_goerli: {
  171. provider: payerProvider(`https://zksync2-testnet.zksync.dev`),
  172. network_id: 280,
  173. },
  174. cronos: {
  175. provider: payerProvider(`https://cronosrpc-1.xstaking.sg`),
  176. network_id: 25,
  177. },
  178. cronos_testnet: {
  179. provider: payerProvider(`https://evm-t3.cronos.org`),
  180. network_id: 338,
  181. },
  182. shimmer_testnet: {
  183. provider: payerProvider(`https://json-rpc.evm.testnet.shimmer.network`),
  184. network_id: 1070,
  185. verify: {
  186. apiUrl: "https://explorer.evm.testnet.shimmer.network/api",
  187. explorerUrl: "https://explorer.evm.testnet.shimmer.network",
  188. apiKey: "there_should_be_a_dummy_value_here_to_avoid_error",
  189. },
  190. },
  191. gnosis: {
  192. provider: payerProvider(`https://rpc.gnosischain.com`),
  193. network_id: 100,
  194. },
  195. chiado: {
  196. // gnosis testnet
  197. provider: payerProvider(`https://rpc.chiadochain.net`),
  198. network_id: 10200,
  199. },
  200. base_goerli: {
  201. provider: payerProvider(`https://goerli.base.org`),
  202. network_id: 84531,
  203. verify: {
  204. apiUrl: "https://api-goerli.basescan.org/api",
  205. explorerUrl: "https://goerli.basescan.org/",
  206. apiKey: "",
  207. },
  208. },
  209. evmos: {
  210. provider: payerProvider(`https://eth.bd.evmos.org:8545/`),
  211. network_id: 9001,
  212. },
  213. evmos_testnet: {
  214. provider: payerProvider(`https://eth.bd.evmos.dev:8545/`),
  215. network_id: 9000,
  216. },
  217. neon_devnet: {
  218. provider: payerProvider(`https://devnet.neonevm.org`),
  219. network_id: 245022926,
  220. },
  221. },
  222. compilers: {
  223. solc: {
  224. version: "0.8.4",
  225. settings: {
  226. optimizer: {
  227. enabled: true,
  228. runs: 10000,
  229. },
  230. },
  231. },
  232. },
  233. plugins: ["truffle-plugin-verify", "truffle-contract-size"],
  234. api_keys: {
  235. etherscan: process.env.ETHERSCAN_KEY,
  236. bscscan: process.env.BSCSCAN_KEY,
  237. snowtrace: process.env.SNOWTRACE_KEY,
  238. ftmscan: process.env.FTMSCAN_KEY,
  239. polygonscan: process.env.POLYGONSCAN_KEY,
  240. optimistic_etherscan: process.env.OPTIMISTIC_ETHERSCAN_KEY,
  241. aurorascan: process.env.AURORASCAN_KEY,
  242. arbiscan: process.env.ARBISCAN_KEY,
  243. },
  244. };