mirror of
https://github.com/logos-storage/logos-storage-contracts-eth.git
synced 2026-01-02 13:23:10 +00:00
* Move to ethers 6 and use hardhat ignition for deployments * Update prettier to the last version * Remove comment * Remove npx call in package.json * Remove useless comment * Add localhost configuration for hardhat ignition * Use contract initial balance instead of const value * Update dependencies and use extract mining to a script in order to use hardhat ignition deploy command * Fix deployment modules for local env * Remove unused function * Export contract deployment custom error assert into a function * Refactoring * Remove old deployments folder * Add process names when running concurrently * Remove conditional allowBlocksWithSameTimestamp, set true everytime * Update dependencies * Update Vault tests for ignition * Update token description * Add vault ignition module * Remove old .tool-versions * Fix formatting * Remove deployments folder and add README for previous files references * Put back the comment related to hardhat automine * Set hardhat gas limit to auto and restore manual mining for Vault tests * Apply prettier formatting and bug test with ignition syntax * Add deployments artifacts * Fix build-info ignore * Use HARDHAT_NETWORK env variable to deploy marketplace contract * Add guard to check that configs has tags * Add testnet deployment addresses * Add TOKEN_ADDRESS to reuse the token contract deployed * Fix token deployment with contractAt * Remove localhost deployment artifacts * Add section in README for deployments * Ignore localhost deployments in git * Set mine script for localhost deployment only and add deploy reset command * Remove previous deployment scripts * Fix typo in documentation * Add log when reusing token address * Update testnet artifact reference * Remove HARDHAT_NETWORK and update documentation * fix md format * Npm audit fix * Update dependencies * Remove default deployer * Update commit for last testnet artifacts * Remove deployments files from linea and testnet and update the last commit hashes to those artifacts
52 lines
1.1 KiB
JavaScript
52 lines
1.1 KiB
JavaScript
const { keccak256, AbiCoder } = require("hardhat").ethers
|
|
|
|
function requestId(request) {
|
|
const Ask = "tuple(uint256, uint256, uint256, uint64, uint64, uint64, int64)"
|
|
const Content = "tuple(bytes, bytes32)"
|
|
const Request =
|
|
"tuple(address, " + Ask + ", " + Content + ", uint64, bytes32)"
|
|
return keccak256(new AbiCoder().encode([Request], requestToArray(request)))
|
|
}
|
|
|
|
function askToArray(ask) {
|
|
return [
|
|
ask.proofProbability,
|
|
ask.pricePerBytePerSecond,
|
|
ask.collateralPerByte,
|
|
ask.slots,
|
|
ask.slotSize,
|
|
ask.duration,
|
|
ask.maxSlotLoss,
|
|
]
|
|
}
|
|
|
|
function contentToArray(content) {
|
|
return [content.cid, content.merkleRoot]
|
|
}
|
|
|
|
function requestToArray(request) {
|
|
return [
|
|
[
|
|
request.client,
|
|
askToArray(request.ask),
|
|
contentToArray(request.content),
|
|
request.expiry,
|
|
request.nonce,
|
|
],
|
|
]
|
|
}
|
|
|
|
function slotId(slot) {
|
|
const types = "tuple(bytes32, uint256)"
|
|
const values = [slot.request, slot.index]
|
|
const encoding = new AbiCoder().encode([types], [values])
|
|
return keccak256(encoding)
|
|
}
|
|
|
|
module.exports = {
|
|
requestId,
|
|
slotId,
|
|
requestToArray,
|
|
askToArray,
|
|
}
|