diff --git a/foundry.toml b/foundry.toml index 5d6dd74..ddc056f 100644 --- a/foundry.toml +++ b/foundry.toml @@ -6,9 +6,6 @@ # release — a deploy repo moves it only via a manual `sol-v*` tag, in lockstep # with the frozen `src/generated//` snapshot it names — and is read by # `rainix-static release-guard` and by `script/Build.sol`'s `cutRelease()`. -# -# Nothing is published yet, so this names the version the FIRST `sol-v*` tag -# will cut, and `src/generated/` holds no frozen tag directory until it does. [external.package] name = "rain-tofu-erc20-decimals-deploy" version = "0.1.0" diff --git a/src/generated/0_1_0/TOFUTokenDecimals.sol b/src/generated/0_1_0/TOFUTokenDecimals.sol new file mode 100644 index 0000000..d784082 --- /dev/null +++ b/src/generated/0_1_0/TOFUTokenDecimals.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: LicenseRef-DCL-1.0 +// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd +pragma solidity ^0.8.25; + +// THIS FILE IS AUTOGENERATED BY THE BUILD SCRIPT. DO NOT EDIT BY HAND. + +/// @dev Hash of the known bytecode. +bytes32 constant BYTECODE_HASH = bytes32(0x1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d41); + +/// @dev The deterministic deploy address of the contract when deployed via +/// the Zoltu factory. +address constant DEPLOYED_ADDRESS = address(0x200e12D10bb0c5E4a17e7018f0F1161919bb9389); + +/// @dev The creation bytecode of the contract. +bytes constant CREATION_CODE = + hex"6080604052348015600e575f80fd5b5061044b8061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80630782d7e11461004e57806354636d2b14610078578063b7bad1b11461009d578063f5c36eaf146100b0575b5f80fd5b61006161005c366004610363565b6100c3565b60405161006f929190610403565b60405180910390f35b61008b610086366004610363565b6100d8565b60405160ff909116815260200161006f565b6100616100ab366004610363565b6100e9565b61008b6100be366004610363565b6100f5565b5f806100cf5f84610100565b91509150915091565b5f6100e35f836101f0565b92915050565b5f806100cf5f84610281565b5f6100e35f83610356565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526020838152604080832081518083019092525460ff8082161515835261010090910416818301527f313ce56700000000000000000000000000000000000000000000000000000000808452839283908190816004818a5afa915060203d1015610182575f91505b811561019857505f5160ff811115610198575f91505b816101af57505050602001516003925090506101e9565b83516101c3575f955093506101e992505050565b836020015160ff1681146101d85760026101db565b60015b846020015195509550505050505b9250929050565b5f805f6101fd8585610281565b909250905060018260038111156102165761021661039d565b1415801561023557505f8260038111156102325761023261039d565b14155b156102795783826040517fee07877f000000000000000000000000000000000000000000000000000000008152600401610270929190610421565b60405180910390fd5b949350505050565b5f805f8061028f8686610100565b90925090505f8260038111156102a7576102a761039d565b0361034b576040805180820182526001815260ff838116602080840191825273ffffffffffffffffffffffffffffffffffffffff8a165f908152908b9052939093209151825493517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff161761010093909116929092029190911790555b909590945092505050565b5f805f6101fd8585610100565b5f60208284031215610373575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610396575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600481106103ff577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b6040810161041182856103ca565b60ff831660208301529392505050565b73ffffffffffffffffffffffffffffffffffffffff831681526040810161039660208301846103ca56"; + +/// @dev The runtime bytecode of the contract. +bytes constant RUNTIME_CODE = + hex"608060405234801561000f575f80fd5b506004361061004a575f3560e01c80630782d7e11461004e57806354636d2b14610078578063b7bad1b11461009d578063f5c36eaf146100b0575b5f80fd5b61006161005c366004610363565b6100c3565b60405161006f929190610403565b60405180910390f35b61008b610086366004610363565b6100d8565b60405160ff909116815260200161006f565b6100616100ab366004610363565b6100e9565b61008b6100be366004610363565b6100f5565b5f806100cf5f84610100565b91509150915091565b5f6100e35f836101f0565b92915050565b5f806100cf5f84610281565b5f6100e35f83610356565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526020838152604080832081518083019092525460ff8082161515835261010090910416818301527f313ce56700000000000000000000000000000000000000000000000000000000808452839283908190816004818a5afa915060203d1015610182575f91505b811561019857505f5160ff811115610198575f91505b816101af57505050602001516003925090506101e9565b83516101c3575f955093506101e992505050565b836020015160ff1681146101d85760026101db565b60015b846020015195509550505050505b9250929050565b5f805f6101fd8585610281565b909250905060018260038111156102165761021661039d565b1415801561023557505f8260038111156102325761023261039d565b14155b156102795783826040517fee07877f000000000000000000000000000000000000000000000000000000008152600401610270929190610421565b60405180910390fd5b949350505050565b5f805f8061028f8686610100565b90925090505f8260038111156102a7576102a761039d565b0361034b576040805180820182526001815260ff838116602080840191825273ffffffffffffffffffffffffffffffffffffffff8a165f908152908b9052939093209151825493517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff161761010093909116929092029190911790555b909590945092505050565b5f805f6101fd8585610100565b5f60208284031215610373575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610396575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600481106103ff577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b6040810161041182856103ca565b60ff831660208301529392505050565b73ffffffffffffffffffffffffffffffffffffffff831681526040810161039660208301846103ca56"; + +/// @dev The addresses that MUST already have code on a network before +/// this release can be broadcast there, `abi.encode`d as an `address[]` +/// because Solidity has no file-scope constant of dynamic array type. +bytes constant DEPENDENCIES = + hex"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000"; diff --git a/src/lib/LibTOFUTokenDecimalsReleased.sol b/src/lib/LibTOFUTokenDecimalsReleased.sol index 06a0d95..a284dc7 100644 --- a/src/lib/LibTOFUTokenDecimalsReleased.sol +++ b/src/lib/LibTOFUTokenDecimalsReleased.sol @@ -6,6 +6,14 @@ pragma solidity ^0.8.25; import {DeploySuite} from "../abstract/RainDeploySuitesBase.sol"; +import { + DEPLOYED_ADDRESS as TOFUTokenDecimals_0_1_0_DEPLOYED_ADDRESS, + BYTECODE_HASH as TOFUTokenDecimals_0_1_0_BYTECODE_HASH, + CREATION_CODE as TOFUTokenDecimals_0_1_0_CREATION_CODE, + RUNTIME_CODE as TOFUTokenDecimals_0_1_0_RUNTIME_CODE, + DEPENDENCIES as TOFUTokenDecimals_0_1_0_DEPENDENCIES +} from "../generated/0_1_0/TOFUTokenDecimals.sol"; + /// @title LibTOFUTokenDecimalsReleased /// @notice Every frozen release of `TOFUTokenDecimals`: one entry per file in /// the append-only `src/generated//` record, in tag order. @@ -26,7 +34,16 @@ library LibTOFUTokenDecimalsReleased { /// Every frozen release, in tag order. /// @return The released suites. function releasedSuites() internal pure returns (DeploySuite[] memory) { - DeploySuite[] memory suites = new DeploySuite[](0); + DeploySuite[] memory suites = new DeploySuite[](1); + suites[0] = DeploySuite({ + suite: "tofu-token-decimals@0_1_0", + creationCode: TOFUTokenDecimals_0_1_0_CREATION_CODE, + storedDeployedAddress: TOFUTokenDecimals_0_1_0_DEPLOYED_ADDRESS, + storedBytecodeHash: TOFUTokenDecimals_0_1_0_BYTECODE_HASH, + storedRuntimeCode: TOFUTokenDecimals_0_1_0_RUNTIME_CODE, + artifactPath: "src/concrete/TOFUTokenDecimals.sol:TOFUTokenDecimals", + dependencies: abi.decode(TOFUTokenDecimals_0_1_0_DEPENDENCIES, (address[])) + }); return suites; } }