mirror of
https://github.com/status-im/nim-codex.git
synced 2025-01-10 19:06:28 +00:00
2b5a40559e
* chore: bump dependencies, including nim-ethers with chronos v4 support Bumps the following dependencies: - nim-ethers to commit 507ac6a4cc71cec9be7693fa393db4a49b52baf9 which contains a pinned nim-eth version. This is to be replaced by a versioned library, so it will be pinned to a particular version. There is a crucial fix in this version of ethers that fixes nonce management which is causing issues in the Codex testnet. - nim-json-rpc to v0.4.4 - nim-json-serialization to v0.2.8 - nim-serde to v1.2.2 - nim-serialization to v0.2.4 Currently, one of the integration tests is failing. * fix integration test - When a state's run was cancelled, it was being caught as an error due to catching all CatchableErrors. This caused a state transition to SaleErrored, however cancellation of run was not actually an error. Handling this correctly fixed the issue. - Stopping of the clock was moved to after `HostInteractions` (sales) which avoided an assertion around getting time when the clock was not started. * bump ethers to include nonce fix and filter not found fix * bump ethers: fixes missing symbol not exported in ethers * Fix cirdl test imports/exports * Debugging in ci * Handle CancelledErrors for state.run in one place only * Rename `config` to `configuration` There was a symbol clash preventing compilation and it was easiest to rename `config` to `configuration` in the contracts. Not even remotely ideal, but it was the only way. * bump ethers to latest Prevents an issue were `JsonNode.items` symbol could not be found * More changes to support `config` > `configuration` * cleanup * testing to see if this fixes failure in ci * bumps contracts - ensures slot is free before allowing reservation - renames config to configuration to avoid symbol clash
56 lines
1.7 KiB
Nim
56 lines
1.7 KiB
Nim
import pkg/ethers
|
|
import codex/contracts/deployment
|
|
import codex/conf
|
|
import codex/contracts
|
|
|
|
import ../asynctest
|
|
import ../checktest
|
|
|
|
type MockProvider = ref object of Provider
|
|
chainId*: UInt256
|
|
|
|
method getChainId*(provider: MockProvider): Future[UInt256] {.async: (raises:[ProviderError]).} =
|
|
return provider.chainId
|
|
|
|
proc configFactory(): CodexConf =
|
|
CodexConf(
|
|
cmd: StartUpCmd.persistence,
|
|
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: StartUpCmd.persistence,
|
|
nat: ValidIpAddress.init("127.0.0.1"),
|
|
discoveryIp: ValidIpAddress.init(IPv4_any()),
|
|
metricsAddress: ValidIpAddress.init("127.0.0.1"),
|
|
marketplaceAddress: marketplace)
|
|
|
|
asyncchecksuite "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 = 167005.u256
|
|
|
|
let address = await deployment.address(Marketplace)
|
|
check address.isSome
|
|
check $(!address) == "0x948cf9291b77bd7ad84781b9047129addf1b894f"
|
|
|
|
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
|
|
|