43 lines
915 B
Nim
43 lines
915 B
Nim
|
import pkg/stint
|
||
|
import pkg/contractabi except Address
|
||
|
import pkg/nimcrypto
|
||
|
import pkg/chronos
|
||
|
|
||
|
export stint
|
||
|
|
||
|
type
|
||
|
StorageRequest* = object
|
||
|
duration*: UInt256
|
||
|
size*: UInt256
|
||
|
contentHash*: Hash
|
||
|
proofPeriod*: UInt256
|
||
|
proofTimeout*: UInt256
|
||
|
nonce*: array[32, byte]
|
||
|
StorageBid* = object
|
||
|
requestHash*: Hash
|
||
|
bidExpiry*: UInt256
|
||
|
price*: UInt256
|
||
|
Hash = array[32, byte]
|
||
|
Signature = array[65, byte]
|
||
|
|
||
|
func hashRequest*(request: StorageRequest): Hash =
|
||
|
let encoding = AbiEncoder.encode: (
|
||
|
"[dagger.request.v1]",
|
||
|
request.duration,
|
||
|
request.size,
|
||
|
request.contentHash,
|
||
|
request.proofPeriod,
|
||
|
request.proofTimeout,
|
||
|
request.nonce
|
||
|
)
|
||
|
keccak256.digest(encoding).data
|
||
|
|
||
|
func hashBid*(bid: StorageBid): Hash =
|
||
|
let encoding = AbiEncoder.encode: (
|
||
|
"[dagger.bid.v1]",
|
||
|
bid.requestHash,
|
||
|
bid.bidExpiry,
|
||
|
bid.price
|
||
|
)
|
||
|
keccak256.digest(encoding).data
|