Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion storage-contracts-abis/0g-storage-contracts-rev
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2772838c13c041dcebcf586a982c4bc8a7f09359
745c176bd206a37072281ec11aaf4f8ef6d4f6d3
178 changes: 125 additions & 53 deletions storage-contracts-abis/ChunkLinearReward.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions storage-contracts-abis/DummyMarket.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5060be8061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806361ec5082146037578063da6eb36a14604b575b600080fd5b600060405190815260200160405180910390f35b605b6056366004605d565b505050565b005b600080600060608486031215607157600080fd5b50508135936020830135935060409092013591905056fea264697066735822122046b53f2984cbf5adf3e9850bdbd978b04bf2673faae23f82bb65f6ed17a8ca6164736f6c63430008100033",
"deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c806361ec5082146037578063da6eb36a14604b575b600080fd5b600060405190815260200160405180910390f35b605b6056366004605d565b505050565b005b600080600060608486031215607157600080fd5b50508135936020830135935060409092013591905056fea264697066735822122046b53f2984cbf5adf3e9850bdbd978b04bf2673faae23f82bb65f6ed17a8ca6164736f6c63430008100033",
"bytecode": "0x608060405234801561001057600080fd5b5060be8061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806361ec5082146037578063da6eb36a14604b575b600080fd5b600060405190815260200160405180910390f35b605b6056366004605d565b505050565b005b600080600060608486031215607157600080fd5b50508135936020830135935060409092013591905056fea26469706673582212202ac95e591a25d23c5e4eaeb2b9d7e886f0b3ce6c65b07415a99af5c03ffdedb864736f6c63430008140033",
"deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c806361ec5082146037578063da6eb36a14604b575b600080fd5b600060405190815260200160405180910390f35b605b6056366004605d565b505050565b005b600080600060608486031215607157600080fd5b50508135936020830135935060409092013591905056fea26469706673582212202ac95e591a25d23c5e4eaeb2b9d7e886f0b3ce6c65b07415a99af5c03ffdedb864736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}
4 changes: 2 additions & 2 deletions storage-contracts-abis/DummyReward.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5060f18061001f6000396000f3fe60806040526004361060265760003560e01c806359e9670014602b578063b7a3c04c14603c575b600080fd5b603a60363660046058565b5050565b005b348015604757600080fd5b50603a60533660046079565b505050565b60008060408385031215606a57600080fd5b50508035926020909101359150565b600080600060608486031215608d57600080fd5b8335925060208401356001600160a01b038116811460aa57600080fd5b92959294505050604091909101359056fea264697066735822122007df1d2999303b3bd440ba3a542d4ba59318a16f2d33109615522c89b0f299dc64736f6c63430008100033",
"deployedBytecode": "0x60806040526004361060265760003560e01c806359e9670014602b578063b7a3c04c14603c575b600080fd5b603a60363660046058565b5050565b005b348015604757600080fd5b50603a60533660046079565b505050565b60008060408385031215606a57600080fd5b50508035926020909101359150565b600080600060608486031215608d57600080fd5b8335925060208401356001600160a01b038116811460aa57600080fd5b92959294505050604091909101359056fea264697066735822122007df1d2999303b3bd440ba3a542d4ba59318a16f2d33109615522c89b0f299dc64736f6c63430008100033",
"bytecode": "0x608060405234801561001057600080fd5b5060f18061001f6000396000f3fe60806040526004361060265760003560e01c806359e9670014602b578063b7a3c04c14603c575b600080fd5b603a60363660046058565b5050565b005b348015604757600080fd5b50603a60533660046079565b505050565b60008060408385031215606a57600080fd5b50508035926020909101359150565b600080600060608486031215608d57600080fd5b8335925060208401356001600160a01b038116811460aa57600080fd5b92959294505050604091909101359056fea26469706673582212206317458eb811bc208147160c27d88297eccdf6e3cb32885597a7d0b6cbe341e764736f6c63430008140033",
"deployedBytecode": "0x60806040526004361060265760003560e01c806359e9670014602b578063b7a3c04c14603c575b600080fd5b603a60363660046058565b5050565b005b348015604757600080fd5b50603a60533660046079565b505050565b60008060408385031215606a57600080fd5b50508035926020909101359150565b600080600060608486031215608d57600080fd5b8335925060208401356001600160a01b038116811460aa57600080fd5b92959294505050604091909101359056fea26469706673582212206317458eb811bc208147160c27d88297eccdf6e3cb32885597a7d0b6cbe341e764736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}
63 changes: 47 additions & 16 deletions storage-contracts-abis/FixedPrice.json

Large diffs are not rendered by default.

219 changes: 160 additions & 59 deletions storage-contracts-abis/FixedPriceFlow.json

Large diffs are not rendered by default.

219 changes: 160 additions & 59 deletions storage-contracts-abis/Flow.json

Large diffs are not rendered by default.

173 changes: 153 additions & 20 deletions storage-contracts-abis/PoraMine.json

Large diffs are not rendered by default.

173 changes: 153 additions & 20 deletions storage-contracts-abis/PoraMineTest.json

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions tests/cache_test.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3

from config.node_config import TX_PARAMS
from test_framework.test_framework import TestFramework
from utility.submission import create_submission, data_to_segments
from utility.utils import wait_until
Expand All @@ -10,7 +11,7 @@ def run_test(self):
client = self.nodes[0]

chunk_data = b"\x01" * 256 * 1025
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])

segments = data_to_segments(chunk_data)
client.zgs_upload_segment(segments[0])
Expand All @@ -22,7 +23,10 @@ def run_test(self):
and client.zgs_get_file_info(data_root)["uploadedSegNum"] == 1
)
client.zgs_upload_segment(segments[1])
wait_until(lambda: client.zgs_get_file_info(data_root)["finalized"])
wait_until(
lambda: client.zgs_get_file_info(data_root)["finalized"],
timeout=180
)


if __name__ == "__main__":
Expand Down
1 change: 0 additions & 1 deletion tests/cli_submission_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ def __test_upload_file_with_cli(self, size, submission_index, rand_data=True):

root = self._upload_file_use_cli(
self.blockchain_nodes[0].rpc_url,
self.contract.address(),
GENESIS_ACCOUNT.key,
self.nodes[node_idx].rpc_url,
file_to_upload,
Expand Down
2 changes: 1 addition & 1 deletion tests/config/cosmos-genesis.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"app_name": "0gchaind",
"app_version": "v0.2.0-alpha.4-892-g6b920eb40",
"genesis_time": "2026-01-20T14:50:46.697383Z",
"genesis_time": "2026-01-22T08:49:21.946878Z",
"chain_id": "0gchaind-local",
"initial_height": 1,
"app_hash": null,
Expand Down
2 changes: 1 addition & 1 deletion tests/config/spec.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ deposit-contract-address = "0x4242424242424242424242424242424242424242"
max-deposits-per-block = 16
deposit-eth1-chain-id = 16601
eth1-follow-distance = 1
target-seconds-per-eth1-block = 2
target-seconds-per-eth1-block = 1

# Fork-related values
genesis-time = 0
Expand Down
2 changes: 1 addition & 1 deletion tests/config/zgs/network/enr.dat
Original file line number Diff line number Diff line change
@@ -1 +1 @@
enr:-Ly4QM3rmg1s_cxxIWF6nuB1YrxFfUTmsCU4TsAK6-NXdnR9X9QuKHQLdY3qM3b9XrHG5JdjNCrolTGHItrDf4HDgswDgmlkgnY0gmlwhH8AAAGQbmV0d29ya19pZGVudGl0eZ_ZQAAAAAAAADPyz8cpvYcPpUtQMmYOBrTPKn-UAAQAiXNlY3AyNTZrMaEDeDdgnDgLPkxNxB39jKb9f1Na30t6R9vVolpTk5zu-hODdGNwgml4g3VkcIJpeA
enr:-Ly4QC6XTSmoSGQn9CIK6MV1LdzrAc6KUdOedPD62nIIFncUMDQaJoTLEk9H4l_6lVTPnRwwoY8ykNtdKFgkI1RFdvgGgmlkgnY0gmlwhH8AAAGQbmV0d29ya19pZGVudGl0eZ_ZQAAAAAAAADPyz8cpvYcPpUtQMmYOBrTPKn-UAAQAiXNlY3AyNTZrMaEDeDdgnDgLPkxNxB39jKb9f1Na30t6R9vVolpTk5zu-hODdGNwgml4g3VkcIJpeA
11 changes: 6 additions & 5 deletions tests/crash_test.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3

from config.node_config import TX_PARAMS
from test_framework.test_framework import TestFramework
from utility.submission import create_submission, submit_data
from utility.utils import wait_until
Expand All @@ -13,7 +14,7 @@ def setup_params(self):
def run_test(self):
# 1. all nodes are running
chunk_data = b"\x01" * 256
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == 1)
wait_until(lambda: self.nodes[0].zgs_get_file_info(data_root) is not None)
Expand All @@ -37,7 +38,7 @@ def run_test(self):
self.nodes[i].stop(kill=True)

chunk_data = b"\x02" * 256 * 1024
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == 2)
wait_until(lambda: self.nodes[0].zgs_get_file_info(data_root) is not None)
Expand Down Expand Up @@ -72,7 +73,7 @@ def run_test(self):
self.nodes[0].wait_for_rpc_connection()

chunk_data = b"\x03" * 256
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == 3)
wait_until(lambda: self.nodes[0].zgs_get_file_info(data_root) is not None)
Expand All @@ -98,7 +99,7 @@ def run_test(self):
self.nodes[0].wait_for_rpc_connection()

chunk_data = b"\x04" * 256 * 1561
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == 4)
wait_until(lambda: self.nodes[0].zgs_get_file_info(data_root) is not None)
Expand All @@ -107,7 +108,7 @@ def run_test(self):
self.nodes[i].stop(kill=True)

chunk_data1 = b"\x05" * 256
submissions1, data_root1 = create_submission(chunk_data1)
submissions1, data_root1 = create_submission(chunk_data1, TX_PARAMS['from'])
self.contract.submit(submissions1)
wait_until(lambda: self.contract.num_submissions() == 5)
wait_until(lambda: self.nodes[0].zgs_get_file_info(data_root1) is not None)
Expand Down
3 changes: 2 additions & 1 deletion tests/example_test.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3

from config.node_config import TX_PARAMS
from test_framework.test_framework import TestFramework
from utility.submission import create_submission, submit_data
from utility.utils import wait_until
Expand All @@ -10,7 +11,7 @@ def run_test(self):
client = self.nodes[0]

chunk_data = b"\x02" * 5253123
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == 1)
wait_until(lambda: client.zgs_get_file_info(data_root) is not None)
Expand Down
7 changes: 4 additions & 3 deletions tests/fuzz_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,14 @@ def run_chunk_size(sizes, nodes, contract, log):
log.info("submission %s, data size: %s", i, v)

chunk_data = random.randbytes(v)
submissions, data_root = create_submission(chunk_data)

account_lock.acquire()
account_idx = random.randint(0, len(accounts) - 1)
contract.submit(submissions, tx_prarams=accounts[account_idx])
account = random.choice(accounts)
account_lock.release()

submissions, data_root = create_submission(chunk_data, account['from'])
contract.submit(submissions, tx_prarams=account)

lock.acquire()
client_idx = random.randint(0, len(nodes_index) - 1)
idx = nodes_index[client_idx]
Expand Down
4 changes: 2 additions & 2 deletions tests/long_time_mine_test_local.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
from test_framework.test_framework import TestFramework
from config.node_config import MINER_ID, GENESIS_PRIV_KEY
from config.node_config import MINER_ID, GENESIS_PRIV_KEY, TX_PARAMS
from utility.submission import create_submission, submit_data
from utility.utils import wait_until

Expand All @@ -22,7 +22,7 @@ def submit_data(self, item, size):
submissions_before = self.contract.num_submissions()
client = self.nodes[0]
chunk_data = item * 256 * size
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == submissions_before + 1)
wait_until(lambda: client.zgs_get_file_info(data_root) is not None)
Expand Down
11 changes: 4 additions & 7 deletions tests/mine_test.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
from test_framework.test_framework import TestFramework
from config.node_config import GENESIS_PRIV_KEY
from config.node_config import GENESIS_PRIV_KEY, TX_PARAMS
from utility.submission import create_submission, submit_data
from utility.utils import wait_until, estimate_st_performance
from test_framework.blockchain_node import BlockChainNodeType
Expand All @@ -13,7 +13,7 @@ def setup_params(self):
self.zgs_node_configs[0] = {
"miner_key": GENESIS_PRIV_KEY,
}
self.mine_period = int(45 / self.block_time)
self.mine_period = 60
self.launch_wait_seconds = 15
self.log.info(
"Contract Info: Est. block time %.2f, Mine period %d",
Expand All @@ -25,7 +25,7 @@ def submit_data(self, item, size):
submissions_before = self.contract.num_submissions()
client = self.nodes[0]
chunk_data = item * 256 * size
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == submissions_before + 1)
wait_until(lambda: client.zgs_get_file_info(data_root) is not None)
Expand All @@ -47,10 +47,7 @@ def run_test(self):
first_block + self.mine_period,
)
wait_until(lambda: self.contract.epoch() >= 1, timeout=180)

quality = int(2**256 / 100 / estimate_st_performance())
self.mine_contract.set_quality(quality)


self.log.info("Submit the first data chunk")
self.submit_data(b"\x11", 2000)

Expand Down
11 changes: 4 additions & 7 deletions tests/mine_with_market_test.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
from test_framework.test_framework import TestFramework
from config.node_config import MINER_ID, GENESIS_PRIV_KEY
from config.node_config import MINER_ID, GENESIS_PRIV_KEY, TX_PARAMS
from utility.submission import create_submission, submit_data
from utility.utils import (
wait_until,
Expand All @@ -23,10 +23,10 @@ def setup_params(self):
self.zgs_node_configs[0] = {
"db_max_num_sectors": 2**30,
"miner_key": GENESIS_PRIV_KEY,
"shard_position": "3 / 32",
"shard_position": "3 / 256",
}
self.enable_market = True
self.mine_period = int(45 / self.block_time)
self.mine_period = 60
self.launch_wait_seconds = 15
self.log.info(
"Contract Info: Est. block time %.2f, Mine period %d",
Expand All @@ -38,7 +38,7 @@ def submit_data(self, item, size, no_submit=False):
submissions_before = self.contract.num_submissions()
client = self.nodes[0]
chunk_data = item * 256 * size
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
value = int(size * PRICE_PER_SECTOR * 1.1)
self.contract.submit(submissions, tx_prarams={"value": value})
wait_until(lambda: self.contract.num_submissions() == submissions_before + 1)
Expand All @@ -54,9 +54,6 @@ def run_test(self):
self.log.info("flow address: %s", self.contract.address())
self.log.info("mine address: %s", self.mine_contract.address())

difficulty = int(2**256 / 5)
self.mine_contract.set_quality(difficulty)

SECTORS_PER_PRICING = int(8 * (2**30) / 256)

first_block = self.contract.first_block()
Expand Down
5 changes: 3 additions & 2 deletions tests/node_cache_test.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3

from config.node_config import TX_PARAMS
from test_framework.test_framework import TestFramework
from utility.submission import create_submission, submit_data
from utility.utils import wait_until
Expand All @@ -15,7 +16,7 @@ def run_test(self):
client = self.nodes[0]

chunk_data = b"\x02" * 256 * 1024 * 1024 * 3
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == 1)
wait_until(lambda: client.zgs_get_file_info(data_root) is not None)
Expand All @@ -29,7 +30,7 @@ def run_test(self):
self.nodes[0].wait_for_rpc_connection()

chunk_data = b"\x03" * 256 * (1024 * 765 + 5)
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == 2)
wait_until(lambda: client.zgs_get_file_info(data_root) is not None)
Expand Down
5 changes: 3 additions & 2 deletions tests/parallel_submission_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import random
import threading

from config.node_config import TX_PARAMS
from utility.submission import create_submission, submit_data
from utility.utils import (
wait_until,
Expand Down Expand Up @@ -51,8 +52,8 @@ def generate_data(self, size, num):
res = []
for _ in range(num):
chunk_data = random.randbytes(size)
submission = create_submission(chunk_data)
res.append((submission[0], submission[1], chunk_data))
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
res.append((submissions, data_root, chunk_data))

return res

Expand Down
3 changes: 2 additions & 1 deletion tests/partial_submission_test.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3

from config.node_config import TX_PARAMS
from test_framework.test_framework import TestFramework
from utility.submission import create_submission, data_to_segments
from utility.utils import wait_until
Expand All @@ -10,7 +11,7 @@ def run_test(self):
client = self.nodes[0]

chunk_data = b"\x01" * 256 * 1025
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == 1)
wait_until(lambda: client.zgs_get_file_info(data_root) is not None)
Expand Down
3 changes: 2 additions & 1 deletion tests/pruner_test.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env python3
import time

from config.node_config import TX_PARAMS
from test_framework.test_framework import TestFramework
from mine_with_market_test import PRICE_PER_SECTOR
from utility.submission import create_submission, submit_data
Expand Down Expand Up @@ -33,7 +34,7 @@ def run_test(self):

chunk_data = b"\x02" * 16 * 256 * 1024
# chunk_data = b"\x02" * 5 * 1024 * 1024 * 1024
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(
submissions,
tx_prarams={"value": int(len(chunk_data) / 256 * PRICE_PER_SECTOR * 1.1)},
Expand Down
3 changes: 2 additions & 1 deletion tests/random_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import random

from config.node_config import TX_PARAMS
from test_framework.test_framework import TestFramework
from utility.submission import create_submission
from utility.submission import submit_data
Expand Down Expand Up @@ -39,7 +40,7 @@ def run_test(self):

client = self.nodes[chosen_node]
chunk_data = random.randbytes(size)
submissions, data_root = create_submission(chunk_data)
submissions, data_root = create_submission(chunk_data, TX_PARAMS['from'])
self.contract.submit(submissions)
wait_until(lambda: self.contract.num_submissions() == i + 1)
wait_until(
Expand Down
Loading
Loading