Skip to content
This repository has been archived by the owner on May 5, 2023. It is now read-only.

Commit

Permalink
✅ sol tests passing
Browse files Browse the repository at this point in the history
  • Loading branch information
kevin-fruitful committed Apr 19, 2022
1 parent 8dffaf2 commit 907a3df
Show file tree
Hide file tree
Showing 5 changed files with 364 additions and 132 deletions.
32 changes: 16 additions & 16 deletions src/test/Entity.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,

vm.label(address(weth), "WETH False");
vm.label(address(wethTrue), "WETH True");
vm.label(address(0xACC0), "Account 0 - Deployer");
vm.label(address(this), "Account 0 - Test Contract");
vm.label(address(0xACC1), "Account 1");
vm.label(address(0xACC2), "Account 2");
vm.label(address(0xACC3), "Account 3");
Expand Down Expand Up @@ -384,7 +384,7 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,
assertEq(weth.balanceOf(address(entityAddress)), 10);
assertEq(entity.getBalance(address(weth)), 10);

vm.expectRevert("must be entityAddress admin");
vm.expectRevert("must be entity admin");
vm.prank(address(0xBEEF));
entity.withdraw(address(weth), 10);

Expand All @@ -400,14 +400,14 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,
assertEq(weth.balanceOf(address(entityAddress)), 110);
assertEq(entity.getBalance(address(weth)), 10);

vm.expectRevert("exceeds entityAddress balance");
vm.expectRevert("exceeds entity balance");
entity.withdraw(address(weth), 11);

entity.withdraw(address(weth), 10);

assertEq(entity.getBalance(address(weth)), 0);

vm.expectRevert("exceeds entityAddress balance");
vm.expectRevert("exceeds entity balance");
entity.withdraw(address(weth), 11);
}

Expand Down Expand Up @@ -442,7 +442,7 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,
assertEq(weth.balanceOf(address(entityAddress)), 110);

vm.startPrank(address(0xD00D));
vm.expectRevert("exceeds entityAddress balance");
vm.expectRevert("exceeds entity balance");
entity.trade(address(weth), 11, address(wethTrue), 1);

entity.trade(address(weth), 10, address(wethTrue), 1);
Expand Down Expand Up @@ -495,7 +495,7 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,
vm.stopPrank();

vm.startPrank(address(0xD00D));
vm.expectRevert("exceeds entityAddress balance");
vm.expectRevert("exceeds entity balance");
entity.sellAtBestPrice(address(weth), 11, address(wethTrue));

entity.sellAtBestPrice(address(weth), 10, address(wethTrue));
Expand All @@ -519,7 +519,7 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,
vm.prank(account3);
entity.startTokenSale(500, address(weth), 1000);

// deploys an entityAddress token representing the underlying deposited token
// deploys an entity token representing the underlying deposited token
entity.startTokenSale(500, address(weth), 1000);

(tokenInfo.tokenAddress, tokenInfo.currentTokenSaleOfferId) = entity.getTokenInfo(address(weth));
Expand Down Expand Up @@ -577,7 +577,7 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,
assertEq(weth.balanceOf(entityAddress), 1000);
assertEq(entity.getBalance(address(weth)), 1000);

assertEq(IERC20(tokenInfo.tokenAddress).balanceOf(address(this)), 250);
assertEq(IERC20(tokenInfo.tokenAddress).balanceOf(address(this)), 500);
assertEq(IERC20(tokenInfo.tokenAddress).totalSupply(), 500);

(tokenInfo.tokenAddress, tokenInfo.currentTokenSaleOfferId) = entity.getTokenInfo(address(weth));
Expand All @@ -604,13 +604,13 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,
vm.prank(address(marketProxy));
IERC20(tokenInfo.tokenAddress).transfer(account1, 1);

vm.expectRevert("only nayms marketProxy is allowed to transfer");
vm.expectRevert("only nayms market is allowed to transfer");
IERC20(tokenInfo.tokenAddress).transfer(account0, 1);

// only marketProxy can be approved for transfers
// only market can be approved for transfers
IERC20(tokenInfo.tokenAddress).approve(address(marketProxy), 1);

vm.expectRevert("only nayms marketProxy is allowed to transfer");
vm.expectRevert("only nayms market is allowed to transfer");
IERC20(tokenInfo.tokenAddress).approve(account1, 1);

// transfers must be non-zero
Expand Down Expand Up @@ -642,9 +642,9 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,
assertEq(IERC20(tokenInfo.tokenAddress).totalSupply(), 500);

// can only be transferred by the marketProxy
vm.expectRevert("only nayms marketProxy is allowed to transfer");
vm.expectRevert("only nayms market is allowed to transfer");
IERC20(tokenInfo.tokenAddress).approve(account2, 1);
vm.expectRevert("only nayms marketProxy is allowed to transfer");
vm.expectRevert("only nayms market is allowed to transfer");
IERC20(tokenInfo.tokenAddress).transfer(account2, 1);

// can be burnt
Expand Down Expand Up @@ -767,7 +767,7 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,
assertEq(weth.balanceOf(address(entityAddress)), 500);
assertEq(entity.getBalance(address(weth)), 500);

// ensures entityAddress is not a holder after token sale is complete
// ensures entity is not a holder after token sale is complete
entity.cancelTokenSale(address(weth));
numTokenHolders = entity.getNumTokenHolders(address(weth));
assertEq(numTokenHolders, 1);
Expand Down Expand Up @@ -932,8 +932,8 @@ contract EntityTest is DSTestPlusF, MockAccounts, IACLConstants, ISettingsKeys,
assertEq(IERC20(tokenInfo.tokenAddress).totalSupply(), 250);
assertEq(entity.getNumTokenHolders(address(weth)), 2);

// must not exceed entityAddress balance
vm.expectRevert("exceeds entityAddress balance");
// must not exceed entity balance
vm.expectRevert("exceeds entity balance");
entity.payDividend(address(weth), 501);

// get allocated proportionately to holders
Expand Down
54 changes: 20 additions & 34 deletions src/test/EntityDeployer.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import "./utils/DSTestPlusF.sol";

import {IACLConstants} from "../../contracts/base/IACLConstants.sol";
import {ISettingsKeys} from "../../contracts/base/ISettingsKeys.sol";
// import {AccessControl} from "../../contracts/base/AccessControl.sol";

import {ACL} from "../../contracts/ACL.sol";
import {Settings} from "../../contracts/Settings.sol";
import {ISettings} from "../../contracts/base/ISettings.sol";
Expand All @@ -25,7 +25,6 @@ import {EntitySimplePolicyDataFacet} from "../../contracts/EntitySimplePolicyDat
contract EntityDeployerTest is DSTestPlusF, IACLConstants, ISettingsKeys {
ACL internal acl;
Settings internal settings;
// AccessControl internal accessControl;
bytes32 internal systemContext;

EntityDeployer internal entityDeployer;
Expand All @@ -45,74 +44,62 @@ contract EntityDeployerTest is DSTestPlusF, IACLConstants, ISettingsKeys {
function setUp() public {
acl = new ACL(ROLE_SYSTEM_ADMIN, ROLEGROUP_SYSTEM_ADMINS);
settings = new Settings(address(acl));
// accessControl = new AccessControl(address(settings));
systemContext = acl.systemContext();

// setup role groups
// bytes32[] memory roles = new bytes32[](1);
// roles[0] = ROLE_SYSTEM_MANAGER;
// acl.setRoleGroup(ROLEGROUP_SYSTEM_MANAGERS, roles);

bytes32[] memory rg1 = new bytes32[](1);
rg1[0] = ROLE_APPROVED_USER;
acl.setRoleGroup(ROLEGROUP_APPROVED_USERS, rg1);

bytes32[] memory rg2 = new bytes32[](2);
rg2[0] = ROLE_UNDERWRITER;
rg2[1] = ROLE_CAPITAL_PROVIDER;
acl.setRoleGroup(ROLEGROUP_CAPITAL_PROVIDERS, rg2);

bytes32[] memory rg3 = new bytes32[](1);
rg3[0] = ROLE_UNDERWRITER;
acl.setRoleGroup(ROLEGROUP_UNDERWRITERS, rg3);

bytes32[] memory rg4 = new bytes32[](1);
rg4[0] = ROLE_BROKER;
acl.setRoleGroup(ROLEGROUP_BROKERS, rg4);

bytes32[] memory rg5 = new bytes32[](1);
rg5[0] = ROLE_INSURED_PARTY;
acl.setRoleGroup(ROLEGROUP_INSURED_PARTYS, rg5);

bytes32[] memory rg6 = new bytes32[](1);
rg6[0] = ROLE_INSURED_PARTY;
acl.setRoleGroup(ROLEGROUP_INSURED_PARTYS, rg6);
rg6[0] = ROLE_CLAIMS_ADMIN;
acl.setRoleGroup(ROLEGROUP_CLAIMS_ADMINS, rg6);
bytes32[] memory rg7 = new bytes32[](1);
rg7[0] = ROLE_CLAIMS_ADMIN;
acl.setRoleGroup(ROLEGROUP_CLAIMS_ADMINS, rg7);

bytes32[] memory rg8 = new bytes32[](1);
rg7[0] = ROLE_ENTITY_ADMIN;
acl.setRoleGroup(ROLEGROUP_ENTITY_ADMINS, rg7);
bytes32[] memory rg8 = new bytes32[](2);
rg8[0] = ROLE_ENTITY_ADMIN;
acl.setRoleGroup(ROLEGROUP_ENTITY_ADMINS, rg8);
bytes32[] memory rg9 = new bytes32[](2);
rg8[1] = ROLE_ENTITY_MANAGER;
acl.setRoleGroup(ROLEGROUP_ENTITY_MANAGERS, rg8);
bytes32[] memory rg9 = new bytes32[](3);
rg9[0] = ROLE_ENTITY_ADMIN;
rg9[1] = ROLE_ENTITY_MANAGER;
acl.setRoleGroup(ROLEGROUP_ENTITY_MANAGERS, rg9);

bytes32[] memory rg10 = new bytes32[](3);
rg10[0] = ROLE_ENTITY_ADMIN;
rg10[1] = ROLE_ENTITY_MANAGER;
rg10[2] = ROLE_ENTITY_REP;
acl.setRoleGroup(ROLEGROUP_ENTITY_REPS, rg10);

rg9[2] = ROLE_ENTITY_REP;
acl.setRoleGroup(ROLEGROUP_ENTITY_REPS, rg9);
bytes32[] memory rg10 = new bytes32[](1);
rg10[0] = ROLE_POLICY_OWNER;
acl.setRoleGroup(ROLEGROUP_POLICY_OWNERS, rg10);
bytes32[] memory rg11 = new bytes32[](1);
rg11[0] = ROLE_POLICY_OWNER;
acl.setRoleGroup(ROLEGROUP_POLICY_OWNERS, rg11);
rg11[0] = ROLE_SYSTEM_ADMIN;
acl.setRoleGroup(ROLEGROUP_SYSTEM_ADMINS, rg11);
bytes32[] memory rg12 = new bytes32[](1);
rg12[0] = ROLE_SYSTEM_MANAGER;
acl.setRoleGroup(ROLEGROUP_SYSTEM_MANAGERS, rg12);
bytes32[] memory rg13 = new bytes32[](1);
rg13[0] = ROLE_ENTITY_REP;
acl.setRoleGroup(ROLEGROUP_TRADERS, rg13);

// setup assigners
acl.addAssigner(ROLE_APPROVED_USER, ROLEGROUP_SYSTEM_MANAGERS);
acl.addAssigner(ROLE_UNDERWRITER, ROLEGROUP_POLICY_OWNERS);
acl.addAssigner(ROLE_CAPITAL_PROVIDER, ROLEGROUP_POLICY_OWNERS);
acl.addAssigner(ROLE_BROKER, ROLEGROUP_POLICY_OWNERS);
acl.addAssigner(ROLE_INSURED_PARTY, ROLEGROUP_POLICY_OWNERS);
acl.addAssigner(ROLE_ENTITY_ADMIN, ROLEGROUP_SYSTEM_ADMINS);
acl.addAssigner(ROLE_ENTITY_MANAGER, ROLEGROUP_ENTITY_ADMINS);
acl.addAssigner(ROLE_ENTITY_REP, ROLEGROUP_ENTITY_ADMINS);
acl.addAssigner(ROLE_ENTITY_REP, ROLEGROUP_ENTITY_MANAGERS);
acl.addAssigner(ROLE_ENTITY_REP, ROLEGROUP_SYSTEM_MANAGERS);
acl.addAssigner(ROLE_SYSTEM_MANAGER, ROLEGROUP_SYSTEM_ADMINS);

Expand Down Expand Up @@ -199,10 +186,10 @@ contract EntityDeployerTest is DSTestPlusF, IACLConstants, ISettingsKeys {
bytes32 aclContext = entityDeployer.aclContext();
console.logBytes32(aclContext);

acl.assignRole(acl.systemContext(), address(0xBEEF), ROLE_SYSTEM_MANAGER);
acl.assignRole(systemContext, address(0xBEEF), ROLE_SYSTEM_MANAGER);

vm.prank(address(0xBEEF));
entityDeployer.deploy(address(0xBEEF), "");
entityDeployer.deploy(address(0xBEEF), systemContext);

assertEq(entityDeployer.getNumChildren(), 1);

Expand All @@ -219,7 +206,6 @@ contract EntityDeployerTest is DSTestPlusF, IACLConstants, ISettingsKeys {
assertTrue(entityDeployer.hasChild(newEntity2));
assertEq(IEntity(newEntity2).getParent(), address(entityDeployer));

// vm.prank(address(newEntity));
assertEq(IEntity(newEntity).aclContext(), systemContext);
}
}
Expand Down

0 comments on commit 907a3df

Please sign in to comment.