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
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,41 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)

### Changed

## [0.3.0] - 2025-10-08 - M3.1 Calibration Network Deployment

## Core Contracts

1. Payments Contract: [0x6dB198201F900c17e86D267d7Df82567FB03df5E](https://calibration.filfox.info/en/address/0x6dB198201F900c17e86D267d7Df82567FB03df5E)
- From [Filecoin-Pay v0.6.0](https://github.com/FilOzone/filecoin-pay/releases/tag/v0.6.0)
2. PDPVerifier Implementation: [0x4EC9a8ae6e6A419056b6C332509deEA371b182EF](https://calibration.filfox.info/en/address/0x4EC9a8ae6e6A419056b6C332509deEA371b182EF)
- From [PDP v2.2.1](https://github.com/FilOzone/pdp/releases/tag/v2.2.1)
3. PDPVerifier Proxy: [0x579dD9E561D4Cd1776CF3e52E598616E77D5FBcb](https://calibration.filfox.info/en/address/0x579dD9E561D4Cd1776CF3e52E598616E77D5FBcb)
- From [PDP v2.2.1](https://github.com/FilOzone/pdp/releases/tag/v2.2.1)
4. SessionKeyRegistry: [0x97Dd879F5a97A8c761B94746d7F5cfF50AAd4452](https://calibration.filfox.info/en/address/0x97Dd879F5a97A8c761B94746d7F5cfF50AAd4452)
5. ServiceProviderRegistry Implementation: [0x5672fE3B5366819B4Bd2F538A2CAEA11f0b2Aff5](https://calibration.filfox.info/en/address/0x5672fE3B5366819B4Bd2F538A2CAEA11f0b2Aff5)
6. ServiceProviderRegistry Proxy: [0x1096ba1e7BB912136DA8524A22bF71091dc4FDd9](https://calibration.filfox.info/en/address/0x1096ba1e7BB912136DA8524A22bF71091dc4FDd9)
7. FilecoinWarmStorageService Implementation: [0x6B78a026309bc2659c5891559D412FA1BA6529A5](https://calibration.filfox.info/en/address/0x6B78a026309bc2659c5891559D412FA1BA6529A5)
8. FilecoinWarmStorageService Proxy: [0x468342072e0dc86AFFBe15519bc5B1A1aa86e4dc](https://calibration.filfox.info/en/address/0x468342072e0dc86AFFBe15519bc5B1A1aa86e4dc)
9. FilecoinWarmStorageServiceStateView: [0xE4587AAdB97d7B8197aa08E432bAD0D9Cfe3a17F](https://calibration.filfox.info/en/address/0xE4587AAdB97d7B8197aa08E432bAD0D9Cfe3a17F)

Configuration:
- USDFC Token: [0xb3042734b608a1B16e9e86B374A3f3e389B4cDf0](https://calibration.filfox.info/en/address/0xb3042734b608a1B16e9e86B374A3f3e389B4cDf0)
- FILBEAM_BENEFICIARY_ADDRESS: [0x1D60d2F5960Af6341e842C539985FA297E10d6eA](https://calibration.filfox.info/en/address/0x1D60d2F5960Af6341e842C539985FA297E10d6eA)
- FILBEAM_CONTROLLER_ADDRESS: [0x5f7E5E2A756430EdeE781FF6e6F7954254Ef629A](https://calibration.filfox.info/en/address/0x5f7E5E2A756430EdeE781FF6e6F7954254Ef629A)
- CHALLENGE_FINALITY: 10 epochs
- MAX_PROVING_PERIOD: 240 epochs
- CHALLENGE_WINDOW_SIZE: 30 epochs
- Service Name: "Filecoin Warm Storage Service - Calibration M3.1"
- Service Description: "Calibration FWSS contracts for M3.1"

### Changed
- **ServiceProviderRegistry full redeploy** - Required due to state compatibility issues with FilecoinWarmStorageService
- Previous FWSS release (0.2.0) used an old ServiceProviderRegistry; upgrading existing ServiceProviderRegistry would cause state mismatch with FWSS
- **ServiceProviderRegistry VERSION updated to 0.3.0** to properly reflect inclusion of providerId struct fix from PR #247
- **FilecoinWarmStorageService VERSION string updated to 0.3.0**.
- **Changed PDPVerifier to v2.2.1** ([PDP v2.2.1 release notes](https://github.com/FilOzone/pdp/releases/tag/v2.2.1))
- Restored `createDataSet()` function for enhanced flexibility in dataset initialization, enabling empty "bucket" creation, smoother Curio and synapse-sdk integration ([#219](https://github.com/FilOzone/pdp/pull/219))

## [0.2.0] - 2025-10-07 - M3 Calibration Network Deployment

## Core Contracts
Expand Down
2 changes: 1 addition & 1 deletion service_contracts/src/FilecoinWarmStorageService.sol
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ contract FilecoinWarmStorageService is
EIP712Upgradeable
{
// Version tracking
string public constant VERSION = "0.1.0";
string public constant VERSION = "0.3.0";

// =========================================================================
// Events
Expand Down
2 changes: 1 addition & 1 deletion service_contracts/src/ServiceProviderRegistry.sol
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ contract ServiceProviderRegistry is
}

/// @notice Version of the contract implementation
string public constant VERSION = "0.0.1";
string public constant VERSION = "0.3.0";

/// @notice Maximum length for service URL
uint256 private constant MAX_SERVICE_URL_LENGTH = 256;
Expand Down
2 changes: 1 addition & 1 deletion service_contracts/test/FilecoinWarmStorageService.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3858,7 +3858,7 @@ contract FilecoinWarmStorageServiceUpgradeTest is Test {
if (logs[i].topics[0] == expectedTopic) {
// Decode and verify the event data
(string memory version, address implementation) = abi.decode(logs[i].data, (string, address));
assertEq(version, "0.1.0", "Version should be 0.1.0");
assertEq(version, "0.3.0", "Version should be 0.3.0");
assertTrue(implementation != address(0), "Implementation address should not be zero");
foundEvent = true;
break;
Expand Down
2 changes: 1 addition & 1 deletion service_contracts/test/ServiceProviderRegistry.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ contract ServiceProviderRegistryTest is Test {

function testInitialState() public view {
// Check version
assertEq(registry.VERSION(), "0.0.1", "Version should be 0.0.1");
assertEq(registry.VERSION(), "0.3.0", "Version should be 0.3.0");

// Check owner
assertEq(registry.owner(), owner, "Service provider should be deployer");
Expand Down
2 changes: 1 addition & 1 deletion service_contracts/test/ServiceProviderRegistryFull.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ contract ServiceProviderRegistryFullTest is Test {
// ========== Initial State Tests ==========

function testInitialState() public view {
assertEq(registry.VERSION(), "0.0.1", "Version should be 0.0.1");
assertEq(registry.VERSION(), "0.3.0", "Version should be 0.3.0");
assertEq(registry.owner(), owner, "Service provider should be deployer");
assertEq(registry.getNextProviderId(), 1, "Next provider ID should start at 1");
assertEq(registry.REGISTRATION_FEE(), 5 ether, "Registration fee should be 5 FIL");
Expand Down
27 changes: 17 additions & 10 deletions service_contracts/tools/deploy-registry-calibnet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -60,21 +60,21 @@ echo "✓ ServiceProviderRegistry proxy deployed at: $REGISTRY_PROXY_ADDRESS"
# Verify deployment by calling version() on the proxy
echo ""
echo "=== STEP 3: Verifying Deployment ==="
VERSION=$(cast call --rpc-url "$RPC_URL" $REGISTRY_PROXY_ADDRESS "version()(string)")
VERSION=$(cast call --rpc-url "$RPC_URL" $REGISTRY_PROXY_ADDRESS "VERSION()(string)")
if [ -z "$VERSION" ]; then
echo "Warning: Could not verify contract version"
else
echo "✓ Contract version: $VERSION"
fi

# Get registration fee
FEE=$(cast call --rpc-url "$RPC_URL" $REGISTRY_PROXY_ADDRESS "getRegistrationFee()(uint256)")
FEE=$(cast call --rpc-url "$RPC_URL" $REGISTRY_PROXY_ADDRESS "REGISTRATION_FEE()(uint256)")
if [ -z "$FEE" ]; then
echo "Warning: Could not retrieve registration fee"
FEE_IN_FIL="unknown"
else
# Convert from wei to FIL (assuming 1 FIL = 10^18 attoFIL)
FEE_IN_FIL=$(echo "scale=2; $FEE / 1000000000000000000" | bc 2>/dev/null || echo "1")
echo "✓ Registration fee: $FEE attoFIL ($FEE_IN_FIL FIL)"
echo "✓ Registration fee: $FEE attoFIL"
FEE_IN_FIL="$FEE attoFIL"
fi

# Get burn actor address
Expand All @@ -85,6 +85,13 @@ else
echo "✓ Burn actor address: $BURN_ACTOR"
fi

# Get contract version (this should be used instead of hardcoded version)
CONTRACT_VERSION=$(cast call --rpc-url "$RPC_URL" $REGISTRY_PROXY_ADDRESS "VERSION()(string)")
if [ -z "$CONTRACT_VERSION" ]; then
echo "Warning: Could not retrieve contract version"
CONTRACT_VERSION="Unknown"
fi

# Summary of deployed contracts
echo ""
echo "=========================================="
Expand All @@ -95,23 +102,23 @@ echo "ServiceProviderRegistry Proxy: $REGISTRY_PROXY_ADDRESS"
echo "=========================================="
echo ""
echo "Contract Details:"
echo " - Version: 1.0.0"
echo " - Registration Fee: 1 FIL (burned)"
echo " - Burn Actor: 0xff00000000000000000000000000000000000063"
echo " - Version: $CONTRACT_VERSION"
echo " - Registration Fee: $FEE_IN_FIL (burned)"
echo " - Burn Actor: $BURN_ACTOR"
echo " - Chain: Calibration testnet (314159)"
echo ""
echo "Next steps:"
echo "1. Save the proxy address: export REGISTRY_ADDRESS=$REGISTRY_PROXY_ADDRESS"
echo "2. Verify the deployment by calling getProviderCount() - should return 0"
echo "3. Test registration with: cast send --value 1ether ..."
echo "3. Test registration with: cast send --value <registration_fee>attoFIL ..."
echo "4. Transfer ownership if needed using transferOwnership()"
echo "5. The registry is ready for provider registrations"
echo ""
echo "To interact with the registry:"
echo " View functions:"
echo " cast call $REGISTRY_PROXY_ADDRESS \"getProviderCount()(uint256)\""
echo " cast call $REGISTRY_PROXY_ADDRESS \"getAllActiveProviders()(uint256[])\""
echo " State changes (requires 1 FIL fee):"
echo " State changes (requires registration fee):"
echo " Register as provider (requires proper encoding of PDPData)"
echo ""
echo "=========================================="
Loading