oceanprotocol/market

View on GitHub
scripts/load-development-addresses.js

Summary

Maintainability
A
0 mins
Test Coverage
const fs = require('fs')
const os = require('os')

function getLocalAddresses() {
  const data = JSON.parse(
    // eslint-disable-next-line security/detect-non-literal-fs-filename
    fs.readFileSync(
      `${os.homedir}/.ocean/ocean-contracts/artifacts/address.json`,
      'utf8'
    )
  )
  return data.development
}

function updateEnvVariable(key, value) {
  fs.readFile('.env', 'utf8', (err, data) => {
    if (err) {
      console.error(err)
      return
    }

    const lines = data.split('\n')

    let keyExists = false
    for (let i = 0; i < lines.length; i++) {
      const line = lines[i]
      if (line.startsWith(key + '=')) {
        lines[i] = `${key}=${value}`
        keyExists = true
        break
      }
    }

    if (!keyExists) {
      lines.push(`${key}=${value}`)
    }

    const updatedContent = lines.join('\n')
    fs.writeFile('.env', updatedContent, 'utf8', (err) => {
      if (err) {
        console.error(err)
        return
      }
      console.log(
        `Successfully ${
          keyExists ? 'updated' : 'added'
        } the ${key} environment variable.`
      )
    })
  })
}

const addresses = getLocalAddresses()
updateEnvVariable('NEXT_PUBLIC_NFT_FACTORY_ADDRESS', addresses.ERC721Factory)
updateEnvVariable(
  'NEXT_PUBLIC_OPF_COMMUNITY_FEE_COLECTOR',
  addresses.OPFCommunityFeeCollector
)
updateEnvVariable(
  'NEXT_PUBLIC_FIXED_RATE_EXCHANGE_ADDRESS',
  addresses.FixedPrice
)
updateEnvVariable('NEXT_PUBLIC_DISPENSER_ADDRESS', addresses.Dispenser)
updateEnvVariable('NEXT_PUBLIC_OCEAN_TOKEN_ADDRESS', addresses.Ocean)
updateEnvVariable('NEXT_PUBLIC_MARKET_DEVELOPMENT', true)
updateEnvVariable(
  '#NEXT_PUBLIC_PROVIDER_URL',
  '"http://127.0.0.1:8030" # only for mac'
)
updateEnvVariable(
  `#NEXT_PUBLIC_SUBGRAPH_URI',"http://127.0.0.1:9000" # only for mac`
)
updateEnvVariable(
  '#NEXT_PUBLIC_METADATACACHE_URI',
  '"http://127.0.0.1:5000" # only for mac'
)