Skip to content
Open
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
15 changes: 15 additions & 0 deletions .github/workflows/git-clean.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,21 @@ jobs:
nix_conf: |
keep-env-derivations = true
keep-outputs = true
# Substitute the rainix shells from Cachix instead of building them. Every
# rainix shell carries `rainix-static`, a rust build, and crates.io is
# answering 403 to the runners, so without this the shell cannot be built
# at all and every step here dies before it runs. The rainix reusable
# workflows get this from their own shared preamble; this lane is
# hand-rolled and has to be told. `continue-on-error` so a Cachix outage
# degrades to a normal build rather than failing the job.
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
continue-on-error: true
with:
name: rainlanguage
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
# No store-watching daemon: it checkpoints the nix DB concurrently
# with cache-nix-action and corrupts it.
useDaemon: false
- name: Restore and save Nix store
uses: nix-community/cache-nix-action@135667ec418502fa5a3598af6fb9eb733888ce6a # v6
with:
Expand Down
6 changes: 3 additions & 3 deletions foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -57,15 +57,15 @@ remappings = [
]

[dependencies]
forge-std = "1.16.1"
forge-std = "1.16.2"
"@openzeppelin-contracts" = "5.6.1"
"@openzeppelin-contracts-upgradeable" = "5.6.1"
"rain-deploy" = "0.1.4"
"rain-deploy" = "0.1.7"
"rain-extrospection" = "0.1.1"
"rain-factory" = "0.1.1"
"rain-math-fixedpoint" = "0.2.0"
"rain-math-float" = "0.1.1"
"rain-sol-codegen" = "0.1.3"
"rain-sol-codegen" = "0.1.36"
"rain-solmem" = "0.1.3"
"rain-tofu-erc20-decimals" = "0.1.1"
"rain-vats" = "0.1.6"
Expand Down
6 changes: 3 additions & 3 deletions remappings.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/
@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/
forge-std-1.16.1/=dependencies/forge-std-1.16.1/
rain-deploy-0.1.4/=dependencies/rain-deploy-0.1.4/
forge-std-1.16.2/=dependencies/forge-std-1.16.2/
rain-deploy-0.1.7/=dependencies/rain-deploy-0.1.7/
rain-extrospection-0.1.1/=dependencies/rain-extrospection-0.1.1/
rain-factory-0.1.1/=dependencies/rain-factory-0.1.1/
rain-math-fixedpoint-0.2.0/=dependencies/rain-math-fixedpoint-0.2.0/
rain-math-float-0.1.1/=dependencies/rain-math-float-0.1.1/
rain-sol-codegen-0.1.3/=dependencies/rain-sol-codegen-0.1.3/
rain-sol-codegen-0.1.36/=dependencies/rain-sol-codegen-0.1.36/
rain-solmem-0.1.3/=dependencies/rain-solmem-0.1.3/
rain-tofu-erc20-decimals-0.1.1/=dependencies/rain-tofu-erc20-decimals-0.1.1/
rain-vats-0.1.6/=dependencies/rain-vats-0.1.6/
Expand Down
4 changes: 2 additions & 2 deletions script/20260619-deploy-v4-authoriser-clone.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";
import {IAccessControl} from "@openzeppelin-contracts-5.6.1/access/IAccessControl.sol";
import {ERC1167_PREFIX, ERC1167_SUFFIX} from "rain-extrospection-0.1.1/src/lib/LibExtrospectERC1167Proxy.sol";
import {ICloneableFactoryV2} from "rain-factory-0.1.1/src/interface/ICloneableFactoryV2.sol";
Expand Down
4 changes: 2 additions & 2 deletions script/20260623-upgrade-receipt-vaults-to-v4.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";

import {IAccessControl} from "@openzeppelin-contracts-5.6.1/access/IAccessControl.sol";
import {IBeacon} from "@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol";
Expand Down
6 changes: 3 additions & 3 deletions script/20260706-deploy-tokens-ethereum.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Vm} from "forge-std-1.16.1/src/Vm.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";
import {Vm} from "forge-std-1.16.2/src/Vm.sol";
import {
OffchainAssetReceiptVaultConfigV2
} from "rain-vats-0.1.6/src/concrete/deploy/OffchainAssetReceiptVaultBeaconSetDeployer.sol";
Expand Down
4 changes: 2 additions & 2 deletions script/20260716-migrate-beacon-owners-ethereum.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";
import {Ownable} from "@openzeppelin-contracts-5.6.1/access/Ownable.sol";
import {LibProdBeacons0_1_1} from "../src/lib/LibProdBeacons0_1_1.sol";
import {LibProdDeployV1} from "../src/lib/LibProdDeployV1.sol";
Expand Down
4 changes: 2 additions & 2 deletions script/20260722-migrate-beacon-owners-hyperevm.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";
import {Ownable} from "@openzeppelin-contracts-5.6.1/access/Ownable.sol";
import {LibProdBeacons0_1_1} from "../src/lib/LibProdBeacons0_1_1.sol";
import {LibProdDeployV1} from "../src/lib/LibProdDeployV1.sol";
Expand Down
4 changes: 2 additions & 2 deletions script/20260722-swap-remaining-vault-authorisers.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";

import {IAccessControl} from "@openzeppelin-contracts-5.6.1/access/IAccessControl.sol";
import {IAuthorizableV1} from "rain-vats-0.1.6/src/interface/IAuthorizableV1.sol";
Expand Down
4 changes: 2 additions & 2 deletions script/20260722-swap-rklb-authoriser.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";

import {IAccessControl} from "@openzeppelin-contracts-5.6.1/access/IAccessControl.sol";
import {IAuthorizableV1} from "rain-vats-0.1.6/src/interface/IAuthorizableV1.sol";
Expand Down
4 changes: 2 additions & 2 deletions script/20260723-provision-additional-service-signer.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";

import {IAccessControl} from "@openzeppelin-contracts-5.6.1/access/IAccessControl.sol";
import {IGnosisSafe} from "../src/interface/IGnosisSafe.sol";
Expand Down
6 changes: 3 additions & 3 deletions script/20260729-deploy-governance-timelock.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";
import {IAccessControl} from "@openzeppelin-contracts-5.6.1/access/IAccessControl.sol";
import {LibRainDeploy} from "rain-deploy-0.1.4/src/lib/LibRainDeploy.sol";
import {LibRainDeploy} from "rain-deploy-0.1.7/src/lib/LibRainDeploy.sol";

import {LibSafeInvariants} from "../src/lib/LibSafeInvariants.sol";
import {LibStoxDeployNetworks} from "../src/lib/LibStoxDeployNetworks.sol";
Expand Down
4 changes: 2 additions & 2 deletions script/20260729-migrate-governance-to-timelock.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";
import {IAccessControl} from "@openzeppelin-contracts-5.6.1/access/IAccessControl.sol";
import {Ownable} from "@openzeppelin-contracts-5.6.1/access/Ownable.sol";
import {TimelockController} from "@openzeppelin-contracts-5.6.1/governance/TimelockController.sol";
Expand Down
6 changes: 3 additions & 3 deletions script/20260807-deploy-missing-tokens.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Vm} from "forge-std-1.16.1/src/Vm.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";
import {Vm} from "forge-std-1.16.2/src/Vm.sol";
import {
OffchainAssetReceiptVaultConfigV2
} from "rain-vats-0.1.6/src/concrete/deploy/OffchainAssetReceiptVaultBeaconSetDeployer.sol";
Expand Down
4 changes: 2 additions & 2 deletions script/20260813-execute-timelock-operations.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";
import {IAccessControl} from "@openzeppelin-contracts-5.6.1/access/IAccessControl.sol";
import {TimelockController} from "@openzeppelin-contracts-5.6.1/governance/TimelockController.sol";

Expand Down
4 changes: 2 additions & 2 deletions script/20260813-timelock-rehearsal-cancel.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";
import {TimelockController} from "@openzeppelin-contracts-5.6.1/governance/TimelockController.sol";

import {IGnosisSafe} from "../src/interface/IGnosisSafe.sol";
Expand Down
4 changes: 2 additions & 2 deletions script/20260813-timelock-rehearsal-schedule.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";
import {TimelockController} from "@openzeppelin-contracts-5.6.1/governance/TimelockController.sol";

import {IGnosisSafe} from "../src/interface/IGnosisSafe.sol";
Expand Down
43 changes: 27 additions & 16 deletions script/BuildPointers.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {VmSafe} from "forge-std-1.16.1/src/Vm.sol";
import {LibCodeGen} from "rain-sol-codegen-0.1.3/src/lib/LibCodeGen.sol";
import {LibFs} from "rain-sol-codegen-0.1.3/src/lib/LibFs.sol";
import {LibRainDeploy} from "rain-deploy-0.1.4/src/lib/LibRainDeploy.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {VmSafe} from "forge-std-1.16.2/src/Vm.sol";
import {LibCodeGen} from "rain-sol-codegen-0.1.36/src/lib/LibCodeGen.sol";
import {LibFs} from "rain-sol-codegen-0.1.36/src/lib/LibFs.sol";
import {LibRainDeploy} from "rain-deploy-0.1.7/src/lib/LibRainDeploy.sol";
import {StoxReceipt} from "../src/concrete/StoxReceipt.sol";
import {StoxReceiptVault} from "../src/concrete/StoxReceiptVault.sol";
import {StoxCorporateActionsFacet} from "../src/concrete/StoxCorporateActionsFacet.sol";
Expand Down Expand Up @@ -65,10 +65,11 @@ contract BuildPointers is Script {
function buildContractPointers(string memory name, bytes memory creationCode) internal {
address deployed = LibRainDeploy.deployZoltu(creationCode);

LibFs.buildFileForContract(
LibFs.buildFileForTaggedContract(
vm,
deployed,
string.concat(deployTag(), "/", name),
deployTag(),
name,
string.concat(
LibCodeGen.addressConstantString(
vm,
Expand All @@ -90,9 +91,7 @@ contract BuildPointers is Script {
LibRainDeploy.etchZoltuFactory(vm);

// Regenerate the rolling `candidate/` snapshot from current source.
// `vm.writeFile` won't create the dir, so ensure it exists first.
vm.createDir(string.concat("src/generated/", deployTag()), true);

// `LibFs.buildFileForTaggedContract` creates the tag dir as needed.
buildContractPointers("StoxCorporateActionsFacet", type(StoxCorporateActionsFacet).creationCode);
buildContractPointers("StoxReceipt", type(StoxReceipt).creationCode);
buildContractPointers("StoxReceiptVault", type(StoxReceiptVault).creationCode);
Expand Down Expand Up @@ -131,7 +130,7 @@ contract BuildPointers is Script {
// Deploy-lib generation.
//
// Regenerates `src/generated/LibProdDeployV4.sol` (one versioned constant
// set per release tag, each aliasing that tag's frozen `*.pointers.sol`
// set per release tag, each aliasing that tag's frozen pointer-file
// exports) and `src/generated/LibProdDeployCurrent.sol` (unversioned
// aliases of the current `deployTag()`), from the per-tag snapshots on
// disk. Emitted line-by-line via `vm.writeLine` so no single string grows
Expand All @@ -149,7 +148,7 @@ contract BuildPointers is Script {

// REUSE-IgnoreEnd

/// @notice Pointer filenames (without `.pointers.sol`) in a fixed order.
/// @notice Pointer contract names in a fixed order.
function contractNames() internal pure returns (string[12] memory names) {
names[0] = "StoxReceipt";
names[1] = "StoxReceiptVault";
Expand Down Expand Up @@ -264,8 +263,20 @@ contract BuildPointers is Script {
}
}

/// @notice The pointer file name for `(tag, name)`. rain-sol-codegen
/// 0.1.36's `LibFs` writes `<name>.sol`, so that is the name wherever it
/// exists on disk; snapshots frozen before this repo adopted that scheme
/// keep the `<name>.pointers.sol` name they were cut with, forever.
function pointerFile(string memory tag, string memory name) internal returns (string memory) {
string memory plain = string.concat(name, ".sol");
if (vm.exists(string.concat("src/generated/", tag, "/", plain))) {
return plain;
}
return string.concat(name, ".pointers.sol");
}

function pointerExists(string memory tag, string memory name) internal returns (bool) {
return vm.exists(string.concat("src/generated/", tag, "/", name, ".pointers.sol"));
return vm.exists(string.concat("src/generated/", tag, "/", pointerFile(tag, name)));
}

function writeGeneratedHeader(string memory path) internal {
Expand All @@ -277,7 +288,7 @@ contract BuildPointers is Script {
vm.writeLine(path, "// GENERATED by script/BuildPointers.sol. Do not edit.");
}

function v4ImportLine(string memory name, string memory base, string memory tag)
function v4ImportLine(string memory fileName, string memory base, string memory tag)
internal
pure
returns (string memory)
Expand All @@ -288,7 +299,7 @@ contract BuildPointers is Script {
string memory mid = string.concat(
"_CODEHASH_", suffix, "_GEN, CREATION_CODE as ", base, "_CREATION_", suffix, "_GEN, RUNTIME_CODE as ", base
);
string memory tail = string.concat("_RUNTIME_", suffix, '_GEN} from "./', tag, "/", name, '.pointers.sol";');
string memory tail = string.concat("_RUNTIME_", suffix, '_GEN} from "./', tag, "/", fileName, '";');
return string.concat(head, mid, tail);
}

Expand Down Expand Up @@ -324,7 +335,7 @@ contract BuildPointers is Script {
for (uint256 t = 0; t < tags.length; t++) {
for (uint256 c = 0; c < 12; c++) {
if (pointerExists(tags[t], names[c])) {
vm.writeLine(GEN_V4_PATH, v4ImportLine(names[c], bases[c], tags[t]));
vm.writeLine(GEN_V4_PATH, v4ImportLine(pointerFile(tags[t], names[c]), bases[c], tags[t]));
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions script/DeployProdV4_0_1_1.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script, console2} from "forge-std-1.16.1/src/Script.sol";
import {Script, console2} from "forge-std-1.16.2/src/Script.sol";

import {LibRainDeploy} from "rain-deploy-0.1.4/src/lib/LibRainDeploy.sol";
import {LibRainDeploy} from "rain-deploy-0.1.7/src/lib/LibRainDeploy.sol";
import {LibProdDeployV4} from "../src/generated/LibProdDeployV4.sol";
import {LibStoxDeployNetworks} from "../src/lib/LibStoxDeployNetworks.sol";

Expand Down
4 changes: 2 additions & 2 deletions script/MigrateBeaconOwners.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";

import {Ownable} from "@openzeppelin-contracts-5.6.1/access/Ownable.sol";
import {IGnosisSafe} from "../src/interface/IGnosisSafe.sol";
Expand Down
4 changes: 2 additions & 2 deletions script/MigrateMultisigThreshold.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
pragma solidity =0.8.25;

import {Script} from "forge-std-1.16.1/src/Script.sol";
import {console2} from "forge-std-1.16.1/src/console2.sol";
import {Script} from "forge-std-1.16.2/src/Script.sol";
import {console2} from "forge-std-1.16.2/src/console2.sol";

import {IGnosisSafe} from "../src/interface/IGnosisSafe.sol";
import {LibSafeInvariants} from "../src/lib/LibSafeInvariants.sol";
Expand Down
Loading
Loading