[market] Add market.getSigner()
This commit is contained in:
parent
03b92a2067
commit
0636c94b74
|
@ -23,6 +23,9 @@ func new*(_: type OnChainMarket, contract: Storage): OnChainMarket =
|
|||
signer: signer,
|
||||
)
|
||||
|
||||
method getSigner*(market: OnChainMarket): Future[Address] {.async.} =
|
||||
return await market.signer.getAddress()
|
||||
|
||||
method requestStorage(market: OnChainMarket,
|
||||
request: StorageRequest):
|
||||
Future[StorageRequest] {.async.} =
|
||||
|
|
|
@ -15,6 +15,9 @@ type
|
|||
OnRequest* = proc(id: array[32, byte], ask: StorageAsk) {.gcsafe, upraises:[].}
|
||||
OnFulfillment* = proc(requestId: array[32, byte]) {.gcsafe, upraises: [].}
|
||||
|
||||
method getSigner*(market: Market): Future[Address] {.base, async.} =
|
||||
raiseAssert("not implemented")
|
||||
|
||||
method requestStorage*(market: Market,
|
||||
request: StorageRequest):
|
||||
Future[StorageRequest] {.base, async.} =
|
||||
|
|
|
@ -7,6 +7,7 @@ type
|
|||
MockMarket* = ref object of Market
|
||||
requested*: seq[StorageRequest]
|
||||
fulfilled*: seq[Fulfillment]
|
||||
signer: Address
|
||||
subscriptions: Subscriptions
|
||||
Fulfillment* = object
|
||||
requestId: array[32, byte]
|
||||
|
@ -23,6 +24,12 @@ type
|
|||
requestId: array[32, byte]
|
||||
callback: OnFulfillment
|
||||
|
||||
proc new*(_: type MockMarket): MockMarket =
|
||||
MockMarket(signer: Address.example)
|
||||
|
||||
method getSigner*(market: MockMarket): Future[Address] {.async.} =
|
||||
return market.signer
|
||||
|
||||
method requestStorage*(market: MockMarket,
|
||||
request: StorageRequest):
|
||||
Future[StorageRequest] {.async.} =
|
||||
|
@ -58,7 +65,7 @@ proc fulfillRequest*(market: MockMarket,
|
|||
method fulfillRequest*(market: MockMarket,
|
||||
requestId: array[32, byte],
|
||||
proof: seq[byte]) {.async.} =
|
||||
market.fulfillRequest(requestid, proof, Address.default)
|
||||
market.fulfillRequest(requestid, proof, market.signer)
|
||||
|
||||
method subscribeRequests*(market: MockMarket,
|
||||
callback: OnRequest):
|
||||
|
|
|
@ -38,6 +38,9 @@ ethersuite "On-Chain Market":
|
|||
expect AssertionError:
|
||||
discard OnChainMarket.new(storageWithoutSigner)
|
||||
|
||||
test "knows signer address":
|
||||
check (await market.getSigner()) == (await provider.getSigner().getAddress())
|
||||
|
||||
test "supports storage requests":
|
||||
await token.approve(storage.address, request.ask.maxPrice)
|
||||
check (await market.requestStorage(request)) == request
|
||||
|
|
Loading…
Reference in New Issue