48 lines
1.6 KiB
Nim
48 lines
1.6 KiB
Nim
import std/os
|
|
import pkg/asynctest
|
|
import pkg/ethers
|
|
import codex/contracts/deployment
|
|
import codex/conf
|
|
import codex/contracts
|
|
|
|
|
|
type MockProvider = ref object of Provider
|
|
chainId*: UInt256
|
|
|
|
method getChainId*(provider: MockProvider): Future[UInt256] {.async.} =
|
|
return provider.chainId
|
|
|
|
proc configFactory(): CodexConf =
|
|
CodexConf(cmd: noCommand, nat: ValidIpAddress.init("127.0.0.1"), discoveryIp: ValidIpAddress.init(IPv4_any()), metricsAddress: ValidIpAddress.init("127.0.0.1"))
|
|
|
|
proc configFactory(marketplace: Option[EthAddress]): CodexConf =
|
|
CodexConf(cmd: noCommand, nat: ValidIpAddress.init("127.0.0.1"), discoveryIp: ValidIpAddress.init(IPv4_any()), metricsAddress: ValidIpAddress.init("127.0.0.1"), marketplaceAddress: marketplace)
|
|
|
|
suite "Deployment":
|
|
|
|
let provider = MockProvider()
|
|
|
|
test "uses conf value as priority":
|
|
let deployment = Deployment.new(provider, configFactory(EthAddress.init("0x59b670e9fA9D0A427751Af201D676719a970aaaa")))
|
|
provider.chainId = 1.u256
|
|
|
|
let address = await deployment.address(Marketplace)
|
|
check address.isSome
|
|
check $(!address) == "0x59b670e9fa9d0a427751af201d676719a970aaaa"
|
|
|
|
test "uses chainId hardcoded values as fallback":
|
|
let deployment = Deployment.new(provider, configFactory())
|
|
provider.chainId = 31337.u256
|
|
|
|
let address = await deployment.address(Marketplace)
|
|
check address.isSome
|
|
check $(!address) == "0x59b670e9fa9d0a427751af201d676719a970857b"
|
|
|
|
test "return none for unknown networks":
|
|
let deployment = Deployment.new(provider, configFactory())
|
|
provider.chainId = 1.u256
|
|
|
|
let address = await deployment.address(Marketplace)
|
|
check address.isNone
|
|
|