Skip to content

Commit

Permalink
tests for authorize
Browse files Browse the repository at this point in the history
  • Loading branch information
thedavidmeister committed Feb 7, 2025
1 parent c833889 commit ff24317
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 9 deletions.
12 changes: 7 additions & 5 deletions .gas-snapshot
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
CertifyTest:testCertify(uint256,uint256,string,string,uint256,bytes,uint256,bool) (runs: 258, μ: 1017360, ~: 1018475)
CertifyTest:testCertifyRevertOnZeroCertifyUntil(uint256,uint256,string,string,bytes,uint256,bool) (runs: 258, μ: 984850, ~: 984153)
CertifyTest:testCertifyWithForceUntilTrue(uint256,uint256,uint256,bytes,string,string,uint256,uint256,uint256,uint256) (runs: 258, μ: 1247118, ~: 1243682)
CertifyTest:testCertifyWithForceUntilTrueRevertDeposit(uint256,uint256,string,string,uint256,uint256,bytes,uint256,uint256,uint256) (runs: 258, μ: 1203398, ~: 1203174)
CertifyTest:testVaultGetsCertified(uint256,uint256,uint256,uint256,string,string,bytes,uint256,uint256,bool) (runs: 258, μ: 1180818, ~: 1179590)
ConfiscateReceiptTest:testConfiscateReceipt(uint256,uint256,uint256,uint256,string,bytes,uint256,uint256,bool) (runs: 258, μ: 1285598, ~: 1245229)
ConfiscateReceiptTest:testConfiscateReceiptOnZeroBalance(uint256,uint256,string,string,bytes,uint256) (runs: 258, μ: 1058515, ~: 1055121)
ConfiscateSharesTest:testConfiscateShares(uint256,uint256,uint256,uint256,string,string,bytes,uint256,uint256,bool) (runs: 258, μ: 1225182, ~: 1223670)
Expand Down Expand Up @@ -79,6 +74,13 @@ OffchainAssetReceipetVaultAuthorizedReceiptTransferTest:testAuthorizeReceiptTran
OffchainAssetReceipetVaultAuthorizedReceiptTransferTest:testAuthorizeReceiptTransferForHandlerTo(uint256,uint256,string,string) (runs: 258, μ: 988396, ~: 990577)
OffchainAssetReceipetVaultAuthorizedReceiptTransferTest:testAuthorizeReceiptTransferRevert(uint256,uint256,uint256,string,string) (runs: 258, μ: 979776, ~: 975841)
OffchainAssetReceipetVaultAuthorizedReceiptTransferTest:testAuthorizeReceiptTransferRevertExpiredCertification(uint256,uint256,string,string,uint256,uint256,uint256,bytes) (runs: 258, μ: 1032229, ~: 1033936)
OffchainAssetReceiptVaultAuthorizeTest:testAuthorizeContract(uint256,uint256,string,string) (runs: 258, μ: 953227, ~: 955408)
OffchainAssetReceiptVaultAuthorizeTest:testChangeAuthorizor(uint256,uint256,string,string,address) (runs: 258, μ: 959712, ~: 960379)
OffchainAssetReceiptVaultCertifyTest:testCertify(uint256,uint256,string,string,uint256,bytes,uint256,bool) (runs: 258, μ: 1017360, ~: 1018475)
OffchainAssetReceiptVaultCertifyTest:testCertifyRevertOnZeroCertifyUntil(uint256,uint256,string,string,bytes,uint256,bool) (runs: 258, μ: 984850, ~: 984153)
OffchainAssetReceiptVaultCertifyTest:testCertifyWithForceUntilTrue(uint256,uint256,uint256,bytes,string,string,uint256,uint256,uint256,uint256) (runs: 258, μ: 1247118, ~: 1243682)
OffchainAssetReceiptVaultCertifyTest:testCertifyWithForceUntilTrueRevertDeposit(uint256,uint256,string,string,uint256,uint256,bytes,uint256,uint256,uint256) (runs: 258, μ: 1203398, ~: 1203174)
OffchainAssetReceiptVaultCertifyTest:testVaultGetsCertified(uint256,uint256,uint256,uint256,string,string,bytes,uint256,uint256,bool) (runs: 258, μ: 1180818, ~: 1179590)
OffchainAssetReceiptVaultDepositTest:testDeposit(uint256,uint256,uint256,uint256,bytes,string,string) (runs: 258, μ: 1117305, ~: 1115019)
OffchainAssetReceiptVaultDepositTest:testDepositToSomeoneElseExpiredCertification(uint256,string,string,uint256,uint256,uint256,bytes,uint256,uint256,uint256) (runs: 258, μ: 1095302, ~: 1092351)
OffchainAssetReceiptVaultDepositTest:testDepositToSomeoneElseNotCertified(uint256,string,string,uint256,uint256,uint256,bytes,uint256) (runs: 258, μ: 1038044, ~: 1033904)
Expand Down
1 change: 1 addition & 0 deletions foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ remappings = [
"rain.flare/=lib/rain.flare/src/",
"chainlink/=lib/rain.chainlink/lib/chainlink/contracts/src/",
"rain.math.fixedpoint/=lib/rain.math.fixedpoint/src/",
"rain.extrospection/=lib/rain.extrospection/src/",
]

bytecode_hash = "none"
Expand Down
40 changes: 36 additions & 4 deletions test/src/concrete/vault/OffchainAssetReceiptVault.authorize.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@ pragma solidity =0.8.25;
import {OffchainAssetReceiptVaultTest, Vm} from "test/abstract/OffchainAssetReceiptVaultTest.sol";
import {LibOffchainAssetVaultCreator} from "test/lib/LibOffchainAssetVaultCreator.sol";
import {LibUniqueAddressesGenerator} from "../../../lib/LibUniqueAddressesGenerator.sol";
import {
OffchainAssetReceiptVault
} from "src/concrete/vault/OffchainAssetReceiptVault.sol";
import {OffchainAssetReceiptVault, IAuthorizeV1} from "src/concrete/vault/OffchainAssetReceiptVault.sol";
import {LibExtrospectERC1167Proxy} from "rain.extrospection/lib/LibExtrospectERC1167Proxy.sol";

contract OffchainAssetReceiptVaultAuthorizeTest is OffchainAssetReceiptVaultTest {
/// Test that authorize contract is as initialized.
Expand All @@ -19,10 +18,43 @@ contract OffchainAssetReceiptVaultAuthorizeTest is OffchainAssetReceiptVaultTest
) external {
(address alice, address bob) =
LibUniqueAddressesGenerator.generateUniqueAddresses(vm, SECP256K1_ORDER, fuzzedKeyAlice, fuzzedKeyBob);
(bob);
(bob);

OffchainAssetReceiptVault vault = createVault(alice, assetName, assetSymbol);

address authorizor = address(vault.authorizor());
(bool isProxy, address implementation) = LibExtrospectERC1167Proxy.isERC1167Proxy(authorizor.code);
assertTrue(isProxy);
assertEq(implementation, address(iAuthorizorImplementation));
}

/// Test that the owner can change the authorizor.
function testChangeAuthorizor(
uint256 fuzzedKeyAlice,
uint256 fuzzedKeyBob,
string memory assetName,
string memory assetSymbol,
address newAuthorizor
) external {
(address alice, address bob) =
LibUniqueAddressesGenerator.generateUniqueAddresses(vm, SECP256K1_ORDER, fuzzedKeyAlice, fuzzedKeyBob);

OffchainAssetReceiptVault vault = createVault(alice, assetName, assetSymbol);

address authorizor = address(vault.authorizor());
(bool isProxy, address implementation) = LibExtrospectERC1167Proxy.isERC1167Proxy(authorizor.code);
assertTrue(isProxy);
assertEq(implementation, address(iAuthorizorImplementation));

vm.prank(alice);
vault.setAuthorizor(IAuthorizeV1(newAuthorizor));

authorizor = address(vault.authorizor());
assertEq(authorizor, newAuthorizor);

// Bob cannot set the authorizor.
vm.prank(bob);
vm.expectRevert("Ownable: caller is not the owner");
vault.setAuthorizor(IAuthorizeV1(newAuthorizor));
}
}

0 comments on commit ff24317

Please sign in to comment.