truffle-config.js 6.9 KB

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