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
|