truffle-config.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  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. },
  183. compilers: {
  184. solc: {
  185. version: "0.8.4",
  186. settings: {
  187. optimizer: {
  188. enabled: true,
  189. runs: 10000,
  190. },
  191. },
  192. },
  193. },
  194. plugins: ["truffle-plugin-verify", "truffle-contract-size"],
  195. api_keys: {
  196. etherscan: process.env.ETHERSCAN_KEY,
  197. bscscan: process.env.BSCSCAN_KEY,
  198. snowtrace: process.env.SNOWTRACE_KEY,
  199. ftmscan: process.env.FTMSCAN_KEY,
  200. polygonscan: process.env.POLYGONSCAN_KEY,
  201. optimistic_etherscan: process.env.OPTIMISTIC_ETHERSCAN_KEY,
  202. aurorascan: process.env.AURORASCAN_KEY,
  203. arbiscan: process.env.ARBISCAN_KEY,
  204. },
  205. };