diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 835bf133..5a7b85eb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,7 @@ jobs: - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 with: - version: nightly + version: stable - name: Update package with soldeer run: forge soldeer update diff --git a/foundry.toml b/foundry.toml index 0f04dc3d..22a65b01 100644 --- a/foundry.toml +++ b/foundry.toml @@ -1,15 +1,18 @@ [profile.default] src = "src" out = "out" -libs = ["lib"] +libs = ["lib", "dependencies"] ffi = true -# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options +script_execution_protection = false -solc = '0.8.21' +solc = '0.8.29' extra_output = ["devdoc", "userdoc", "storagelayout"] -evm_version = 'london' +evm_version = 'cancun' use_literal_content = true fs_permissions = [{ access = "read-write", path = "./" }] +optimizer = true +optimizer_runs = 200 +gas_limit = "18446744073709551615" [fmt] line_length = 120 @@ -30,7 +33,7 @@ runs = 256 runs = 256 [dependencies] -"@fdk" = { version = "0.3.4-beta", url = "https://github.com/axieinfinity/foundry-deployment-kit/archive/refs/tags/v0.3.4-beta.zip" } +"@fdk" = { version = "0.3.6", url = "https://github.com/axieinfinity/foundry-deployment-kit/archive/refs/tags/v0.3.6-gamma.1.zip" } "@pythnetwork-pyth-sdk-solidity" = { version = "2.2.0", url = "https://github.com/pyth-network/pyth-sdk-solidity/archive/refs/tags/v2.2.0.zip" } "@openzeppelin-contracts" = { version = "4.9.3", url = "https://github.com/OpenZeppelin/openzeppelin-contracts/archive/refs/tags/v4.9.3.zip" } diff --git a/remappings.txt b/remappings.txt index bc94e528..03bf46f9 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,10 +1,10 @@ @rns-contracts/=src/ ds-test/=lib/forge-std/lib/ds-test/src/ -forge-std/=dependencies/@fdk-0.3.4-beta/dependencies/forge-std-1.9.3/src/ +forge-std/=dependencies/@fdk-0.3.6/dependencies/forge-std-1.9.5/src/ @openzeppelin/contracts/=dependencies/@openzeppelin-contracts-4.9.3/contracts/ contract-template/=lib/contract-template/src/ -@solady/=dependencies/@fdk-0.3.4-beta/dependencies/solady-0.0.228/src/ +@solady/=dependencies/@fdk-0.3.6/dependencies/solady-0.0.228/src/ @ensdomains/ens-contracts/=lib/ens-contracts/contracts/ @ensdomains/buffer/=lib/buffer/ @pythnetwork/=dependencies/@pythnetwork-pyth-sdk-solidity-2.2.0/ -@fdk/=dependencies/@fdk-0.3.4-beta/script \ No newline at end of file +@fdk/=dependencies/@fdk-0.3.6/script \ No newline at end of file diff --git a/soldeer.lock b/soldeer.lock index cb5bdd76..b0f9b575 100644 --- a/soldeer.lock +++ b/soldeer.lock @@ -1,16 +1,16 @@ [[dependencies]] name = "@fdk" -version = "0.3.4-beta" -url = "https://github.com/axieinfinity/foundry-deployment-kit/archive/refs/tags/v0.3.4-beta.zip" -checksum = "d93cfa76dee3a227b2ee24d41c4afe2141fb25498eed9352d036ab13bbc16c13" -integrity = "4f0417853a563024747cba0dd88d501717c13d4387132e5b1b854da69b7486b2" +version = "0.3.6" +url = "https://github.com/axieinfinity/foundry-deployment-kit/archive/refs/tags/v0.3.6-gamma.1.zip" +checksum = "c03a263dcc04dfc02f9de685a21c31e8d63c2a57e3c068fa70d3325031b68263" +integrity = "8dc148795fbbe00966ab633f20f8a0b66df51844afda2017e029ac990f015c48" [[dependencies]] name = "@openzeppelin-contracts" version = "4.9.3" url = "https://github.com/OpenZeppelin/openzeppelin-contracts/archive/refs/tags/v4.9.3.zip" checksum = "94270990c32ff2d00c06a9dabaf5b7a8e36773e017254acbb39d13733eb82960" -integrity = "5038b50ec02f34fe736aa65e36259a19e7cdb3e36c8fad0e06b23da3f0b19797" +integrity = "be2160bbca74b40c3ce2000d2d979f009e1d0566dce785656a8b1ebae9831d55" [[dependencies]] name = "@pythnetwork-pyth-sdk-solidity" diff --git a/src/RNSAuction.sol b/src/RNSAuction.sol index 2a5d41a2..11a078c8 100644 --- a/src/RNSAuction.sol +++ b/src/RNSAuction.sol @@ -23,8 +23,6 @@ contract RNSAuction is Initializable, AccessControlEnumerable, INSAuction { /// @inheritdoc INSAuction uint64 public constant DOMAIN_EXPIRY_DURATION = 365 days; /// @inheritdoc INSAuction - uint64 public constant MAX_AUCTION_DOMAIN_EXPIRY = 365 days * 3; - /// @inheritdoc INSAuction bytes32 public constant OPERATOR_ROLE = keccak256("OPERATOR_ROLE"); /// @dev Gap for upgradeability. diff --git a/src/RNSDomainPrice.sol b/src/RNSDomainPrice.sol index 92f21057..cec0ef58 100644 --- a/src/RNSDomainPrice.sol +++ b/src/RNSDomainPrice.sol @@ -5,7 +5,6 @@ import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable import { AccessControlEnumerable } from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; import { Math } from "@openzeppelin/contracts/utils/math/Math.sol"; import { IPyth, PythStructs } from "@pythnetwork/IPyth.sol"; -import { INSUnified } from "./interfaces/INSUnified.sol"; import { INSAuction } from "./interfaces/INSAuction.sol"; import { INSDomainPrice } from "./interfaces/INSDomainPrice.sol"; import { PeriodScaler, LibPeriodScaler, Math } from "./libraries/math/PeriodScalingUtils.sol"; @@ -318,22 +317,16 @@ contract RNSDomainPrice is Initializable, AccessControlEnumerable, INSDomainPric * @inheritdoc INSDomainPrice */ function convertUSDToRON(uint256 usdWei) public view returns (uint256 ronWei) { - return _pyth.getPriceNoOlderThan(_pythIdForRONUSD, _maxAcceptableAge).inverse({ expo: -18 }).mul({ - inpWei: usdWei, - inpDecimals: int32(uint32(USD_DECIMALS)), - outDecimals: 18 - }); + return _pyth.getPriceNoOlderThan(_pythIdForRONUSD, _maxAcceptableAge).inverse({ expo: -18 }) + .mul({ inpWei: usdWei, inpDecimals: int32(uint32(USD_DECIMALS)), outDecimals: 18 }); } /** * @inheritdoc INSDomainPrice */ function convertRONToUSD(uint256 ronWei) public view returns (uint256 usdWei) { - return _pyth.getPriceNoOlderThan(_pythIdForRONUSD, _maxAcceptableAge).mul({ - inpWei: ronWei, - inpDecimals: 18, - outDecimals: int32(uint32(USD_DECIMALS)) - }); + return _pyth.getPriceNoOlderThan(_pythIdForRONUSD, _maxAcceptableAge) + .mul({ inpWei: ronWei, inpDecimals: 18, outDecimals: int32(uint32(USD_DECIMALS)) }); } /** @@ -462,13 +455,6 @@ contract RNSDomainPrice is Initializable, AccessControlEnumerable, INSDomainPric uint256 id = LibRNSDomain.toId(LibRNSDomain.RON_ID, label); INSAuction auction = _auction; if (auction.reserved(id)) { - INSUnified rns = auction.getRNSUnified(); - uint256 expiry = LibSafeRange.addWithUpperbound(rns.getRecord(id).mut.expiry, duration, type(uint64).max); - (INSAuction.DomainAuction memory domainAuction,) = auction.getAuction(id); - uint256 claimedAt = domainAuction.bid.claimedAt; - if (claimedAt != 0 && expiry - claimedAt > auction.MAX_AUCTION_DOMAIN_EXPIRY()) { - return (basePrice, tax, ExceedAuctionDomainExpiry.selector); - } // Tax is added to the name reserved for the auction tax.usd = Math.mulDiv(_taxRatio, _getDomainPrice(lbHash), MAX_PERCENTAGE); } diff --git a/src/interfaces/INSAuction.sol b/src/interfaces/INSAuction.sol index 8f254cdf..cb60b9b3 100644 --- a/src/interfaces/INSAuction.sol +++ b/src/interfaces/INSAuction.sol @@ -54,11 +54,6 @@ interface INSAuction { */ function MAX_EXPIRY() external pure returns (uint64); - /** - * @dev The maximum expiry duration of a domain after transferring to bidder. - */ - function MAX_AUCTION_DOMAIN_EXPIRY() external pure returns (uint64); - /** * @dev Returns the operator role. */