Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Makefile.windows #21

Open
wants to merge 48 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
056d34d
modules
PP-AR-T Nov 24, 2023
a2682c9
forge install: chainlink-brownie-contracts
PP-AR-T Nov 24, 2023
bd484b6
forge install: solmate
PP-AR-T Nov 24, 2023
91c7380
forge install: forge-std
PP-AR-T Nov 24, 2023
d89a66b
Create Makefile.windows
PP-AR-T Nov 24, 2023
64527a5
modules
PP-AR-T Nov 24, 2023
0455cb3
forge install: chainlink-brownie-contracts
PP-AR-T Nov 24, 2023
6a9cd83
forge install: solmate
PP-AR-T Nov 24, 2023
3f70a0b
forge install: forge-std
PP-AR-T Nov 24, 2023
6a78e4d
modules
PP-AR-T Nov 24, 2023
6f6a4e6
forge install: chainlink-brownie-contracts
PP-AR-T Nov 24, 2023
e7dbcbe
forge install: solmate
PP-AR-T Nov 24, 2023
fba868e
forge install: forge-std
PP-AR-T Nov 24, 2023
210f663
forge install: onchain-issuer-integration-demo
PP-AR-T Nov 24, 2023
f7ab49e
modules
PP-AR-T Nov 24, 2023
fdf3bcc
forge install: chainlink-brownie-contracts
PP-AR-T Nov 24, 2023
dade38e
forge install: solmate
PP-AR-T Nov 24, 2023
862be37
forge install: forge-std
PP-AR-T Nov 24, 2023
1c6d9dc
modules
PP-AR-T Nov 24, 2023
0852adc
forge install: chainlink-brownie-contracts
PP-AR-T Nov 24, 2023
45a8a34
forge install: solmate
PP-AR-T Nov 24, 2023
4bb6e43
forge install: forge-std
PP-AR-T Nov 24, 2023
3750eab
forge install: contracts
PP-AR-T Nov 24, 2023
a0d1bb1
modules
PP-AR-T Nov 24, 2023
b81183e
forge install: chainlink-brownie-contracts
PP-AR-T Nov 24, 2023
6ae5edd
forge install: solmate
PP-AR-T Nov 24, 2023
a9a44bd
forge install: forge-std
PP-AR-T Nov 24, 2023
acec3e8
forge install: contracts
PP-AR-T Nov 24, 2023
8e059ee
forge install: openzeppelin-contracts
PP-AR-T Nov 24, 2023
a53183c
modules
PP-AR-T Nov 24, 2023
38e2e82
forge install: chainlink-brownie-contracts
PP-AR-T Nov 24, 2023
2346f68
forge install: solmate
PP-AR-T Nov 24, 2023
b9e10e8
forge install: forge-std
PP-AR-T Nov 24, 2023
67f86b0
forge install: contracts
PP-AR-T Nov 24, 2023
153c5a1
forge install: openzeppelin-contracts
PP-AR-T Nov 24, 2023
20f4221
forge install: openzeppelin-contracts-upgradeable
PP-AR-T Nov 24, 2023
062e912
modules
PP-AR-T Nov 24, 2023
5ca28b7
forge install: chainlink-brownie-contracts
PP-AR-T Nov 24, 2023
b2b64ff
forge install: solmate
PP-AR-T Nov 24, 2023
798473c
forge install: forge-std
PP-AR-T Nov 24, 2023
3400ded
forge install: contracts
PP-AR-T Nov 24, 2023
c7aded2
forge install: openzeppelin-contracts
PP-AR-T Nov 24, 2023
2532c0a
forge install: openzeppelin-contracts-upgradeable
PP-AR-T Nov 24, 2023
abbe786
Ignore
PP-AR-T Nov 24, 2023
5396150
Merge branch 'main' of https://github.com/Margaret-Hamilton-AR/foundr…
PP-AR-T Nov 24, 2023
9e23787
Update
PP-AR-T Nov 24, 2023
f0b5d38
forge install: solidity-bytes-utils
PP-AR-T Nov 24, 2023
ebc9e46
Update Dependencies
PP-AR-T Nov 24, 2023
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
25 changes: 0 additions & 25 deletions .env.example

This file was deleted.

12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,15 @@ package-lock.json

.DS_Store
src/.DS_Store
lib/chainlink-brownie-contracts
lib/contracts
lib/openzeppelin-contracts
lib/openzeppelin-contracts-upgradeable
lib/openzeppelin-contracts-upgradeable
lib/openzeppelin-contracts
lib/contracts
lib/chainlink-brownie-contracts
lib/openzeppelin-contracts-upgradeable
lib/openzeppelin-contracts
lib/contracts
lib/chainlink-brownie-contracts
16 changes: 12 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,15 @@
[submodule "lib/forge-std"]
path = lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "lib/foundry-chainlink-toolkit"]
path = lib/foundry-chainlink-toolkit
url = https://github.com/smartcontractkit/foundry-chainlink-toolkit
branch = feature/integration-automation
[submodule "lib/contracts"]
path = lib/contracts
url = https://github.com/iden3/contracts
[submodule "lib/openzeppelin-contracts"]
path = lib/openzeppelin-contracts
url = https://github.com/OpenZeppelin/openzeppelin-contracts
[submodule "lib/openzeppelin-contracts-upgradeable"]
path = lib/openzeppelin-contracts-upgradeable
url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable
[submodule "lib/solidity-bytes-utils"]
path = lib/solidity-bytes-utils
url = https://github.com/GNSPS/solidity-bytes-utils
11 changes: 8 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,14 @@ all: clean remove install update build
clean :; forge clean

# Remove modules
remove :; rm -rf .gitmodules && rm -rf .git/modules/* && rm -rf lib && touch .gitmodules && git add . && git commit -m "modules"

install :; forge install smartcontractkit/chainlink-brownie-contracts && forge install rari-capital/solmate && forge install foundry-rs/forge-std
remove :; if exist .gitmodules (del /F /Q .gitmodules)
if exist .git\modules\ (for /D %%i in (.git\modules\*) do rmdir /S /Q "%%i")
if exist lib (rmdir /S /Q lib)
type nul > .gitmodules
git add .
git commit -m "modules"

install :; forge install smartcontractkit/chainlink-brownie-contracts && forge install rari-capital/solmate && forge install foundry-rs/forge-std && forge install iden3/contracts && forge install OpenZeppelin/openzeppelin-contracts && forge install OpenZeppelin/openzeppelin-contracts-upgradeable && forge install GNSPS/solidity-bytes-utils

# Update Dependencies
update:; forge update
Expand Down
46 changes: 46 additions & 0 deletions Makefile.windows
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
-include .env

.PHONY: all test clean deploy-anvil

all: clean remove install update build

# Clean the repo
clean :; forge clean

# Remove modules
remove :; if exist .gitmodules (del /F /Q .gitmodules)
if exist .git\modules\ (for /D %%i in (.git\modules\*) do rmdir /S /Q "%%i")
if exist lib (rmdir /S /Q lib)
type nul > .gitmodules
git add .
git commit -m "modules"

install :; forge install smartcontractkit/chainlink-brownie-contracts && forge install rari-capital/solmate && forge install foundry-rs/forge-std

# Update Dependencies
update:; forge update

build:; forge build

test :; forge test

snapshot :; forge snapshot

slither :; slither ./src

format :; prettier --write src/**/*.sol && prettier --write src/*.sol

# solhint should be installed globally
lint :; solhint src/**/*.sol && solhint src/*.sol

anvil :; anvil -m 'test test test test test test test test test test test junk'

# use the "@" to hide the command from your shell
deploy-sepolia :; @forge script script/${contract}.s.sol:Deploy${contract} --rpc-url ${SEPOLIA_RPC_URL} --private-key ${PRIVATE_KEY} --broadcast --verify --etherscan-api-key ${ETHERSCAN_API_KEY} -vvvv

# This is the private key of account from the mnemonic from the "make anvil" command
deploy-anvil :; @forge script script/${contract}.s.sol:Deploy${contract} --rpc-url http://localhost:8545 --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 --broadcast

deploy-all :; make deploy-${network} contract=APIConsumer && make deploy-${network} contract=KeepersCounter && make deploy-${network} contract=PriceFeedConsumer && make deploy-${network} contract=VRFConsumerV2

-include ${FCT_PLUGIN_PATH}/makefile-external
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion lib/chainlink-brownie-contracts
1 change: 1 addition & 0 deletions lib/contracts
Submodule contracts added at 0fd999
2 changes: 1 addition & 1 deletion lib/forge-std
Submodule forge-std updated 54 files
+134 −0 .github/workflows/ci.yml
+29 −0 .github/workflows/sync.yml
+0 −26 .github/workflows/tests.yml
+1 −1 .gitignore
+1 −1 LICENSE-APACHE
+1 −1 LICENSE-MIT
+8 −4 README.md
+21 −0 foundry.toml
+1 −1 lib/ds-test
+16 −0 package.json
+35 −0 src/Base.sol
+21 −33 src/Script.sol
+376 −0 src/StdAssertions.sol
+244 −0 src/StdChains.sol
+817 −0 src/StdCheats.sol
+15 −0 src/StdError.sol
+107 −0 src/StdInvariant.sol
+183 −0 src/StdJson.sol
+43 −0 src/StdMath.sol
+378 −0 src/StdStorage.sol
+333 −0 src/StdStyle.sol
+226 −0 src/StdUtils.sol
+31 −777 src/Test.sol
+791 −152 src/Vm.sol
+406 −386 src/console2.sol
+105 −0 src/interfaces/IERC1155.sol
+12 −0 src/interfaces/IERC165.sol
+43 −0 src/interfaces/IERC20.sol
+190 −0 src/interfaces/IERC4626.sol
+164 −0 src/interfaces/IERC721.sol
+73 −0 src/interfaces/IMulticall3.sol
+216 −0 src/mocks/MockERC20.sol
+221 −0 src/mocks/MockERC721.sol
+13,248 −0 src/safeconsole.sol
+0 −12 src/test/Script.t.sol
+0 −599 src/test/StdAssertions.t.sol
+0 −226 src/test/StdCheats.t.sol
+0 −200 src/test/StdMath.t.sol
+1,015 −0 test/StdAssertions.t.sol
+216 −0 test/StdChains.t.sol
+610 −0 test/StdCheats.t.sol
+15 −21 test/StdError.t.sol
+212 −0 test/StdMath.t.sol
+120 −126 test/StdStorage.t.sol
+110 −0 test/StdStyle.t.sol
+342 −0 test/StdUtils.t.sol
+15 −0 test/Vm.t.sol
+10 −0 test/compilation/CompilationScript.sol
+10 −0 test/compilation/CompilationScriptBase.sol
+10 −0 test/compilation/CompilationTest.sol
+10 −0 test/compilation/CompilationTestBase.sol
+187 −0 test/fixtures/broadcast.log.json
+441 −0 test/mocks/MockERC20.t.sol
+721 −0 test/mocks/MockERC721.t.sol
1 change: 0 additions & 1 deletion lib/foundry-chainlink-toolkit
Submodule foundry-chainlink-toolkit deleted from caa68b
1 change: 1 addition & 0 deletions lib/openzeppelin-contracts
Submodule openzeppelin-contracts added at 78d570
1 change: 1 addition & 0 deletions lib/openzeppelin-contracts-upgradeable
1 change: 1 addition & 0 deletions lib/solidity-bytes-utils
Submodule solidity-bytes-utils added at 6458fb
2 changes: 1 addition & 1 deletion lib/solmate
22 changes: 18 additions & 4 deletions remappings.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
@solmate=lib/solmate/src/
@std=lib/forge-std/src/
@clones=lib/clones-with-immutable-args/src/
@solmate/=lib/solmate/src/
@std/=lib/forge-std/src/
@clones/=lib/clones-with-immutable-args/src/
@chainlink/=lib/chainlink-brownie-contracts/
forge-std/=lib/forge-std/src/
@contracts/=lib/contracts/contracts/
@openzeppelin/=lib/openzeppelin-contracts/
@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
@solidity-bytes-utils/=lib/solidity-bytes-utils/contracts/
forge-std/=lib/forge-std/src/contracts/
@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
chainlink-brownie-contracts/=lib/chainlink-brownie-contracts/contracts/src/v0.6/vendor/@arbitrum/nitro-contracts/src/
ds-test/=lib/forge-std/lib/ds-test/src/
erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/
openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/
openzeppelin-contracts/=lib/openzeppelin-contracts/
solmate/=lib/solmate/src/


100 changes: 100 additions & 0 deletions src/test/Identity.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0 <0.9.0;
import {OwnableUpgradeable} from "@openzeppelin-upgradeable/access/OwnableUpgradeable.sol";
import {IState} from "@contracts/interfaces/IState.sol";
import {ClaimBuilder} from "@contracts/lib/ClaimBuilder.sol";
import {IdentityLib} from "@contracts/lib/IdentityLib.sol";
import {IdentityBase} from "@contracts/lib/IdentityBase.sol";

// /**
// * @dev Contract managing onchain identity
// */
contract IdentityExample is IdentityBase, OwnableUpgradeable {
using IdentityLib for IdentityLib.Data;

// This empty reserved space is put in place to allow future versions
// of the State contract to inherit from other contracts without a risk of
// breaking the storage layout. This is necessary because the parent contracts in the
// future may introduce some storage variables, which are placed before the State
// contract's storage variables.
// (see https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#storage-gaps)
// slither-disable-next-line shadowing-state
// slither-disable-next-line unused-state
uint256[500] private __gap;

function initialize(address _stateContractAddr) public override initializer {
super.initialize(_stateContractAddr);
__Ownable_init(_stateContractAddr);
}

function addClaimAndTransit(uint256[8] calldata claim) public onlyOwner {
addClaim(claim);
transitState();
}

function addClaimHashAndTransit(uint256 hashIndex, uint256 hashValue) public onlyOwner {
addClaimHash(hashIndex, hashValue);
transitState();
}

function revokeClaimAndTransit(uint64 revocationNonce) public onlyOwner {
revokeClaim(revocationNonce);
transitState();
}

/**
* @dev Add claim
* @param claim - claim data
*/
function addClaim(uint256[8] calldata claim) public virtual onlyOwner {
identity.addClaim(claim);
}

/**
* @dev Add claim hash
* @param hashIndex - hash of claim index part
* @param hashValue - hash of claim value part
*/
function addClaimHash(uint256 hashIndex, uint256 hashValue) public virtual onlyOwner {
identity.addClaimHash(hashIndex, hashValue);
}

/**
* @dev Revoke claim using it's revocationNonce
* @param revocationNonce - revocation nonce
*/
function revokeClaim(uint64 revocationNonce) public virtual onlyOwner {
identity.revokeClaim(revocationNonce);
}

/**
* @dev Make state transition
*/
function transitState() public virtual onlyOwner {
identity.transitState();
}

/**
* @dev Calculate IdentityState
* @return IdentityState
*/
function calcIdentityState() public view virtual returns (uint256) {
return identity.calcIdentityState();
}

function newClaimData() public pure virtual returns (ClaimBuilder.ClaimData memory) {
ClaimBuilder.ClaimData memory claimData;
return claimData;
}

/**
* @dev Builds claim
* @param claimData - claim data
* @return binary claim
*/
function buildClaim(
ClaimBuilder.ClaimData calldata claimData
) public pure virtual returns (uint256[8] memory) {
return ClaimBuilder.build(claimData);
}
}