Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"print.colourScheme": "Gruvbox"
}
34 changes: 34 additions & 0 deletions election-guard/.github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: test

on: workflow_dispatch

env:
FOUNDRY_PROFILE: ci

jobs:
check:
strategy:
fail-fast: true

name: Foundry project
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: Run Forge build
run: |
forge --version
forge build --sizes
id: build

- name: Run Forge tests
run: |
forge test -vvv
id: test
14 changes: 14 additions & 0 deletions election-guard/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Compiler files
cache/
out/

# Ignores development broadcast logs
!/broadcast
/broadcast/*/31337/
/broadcast/**/dry-run/

# Docs
docs/

# Dotenv file
.env
7 changes: 7 additions & 0 deletions election-guard/.gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[submodule "lib/forge-std"]
path = lib/forge-std
url = https://github.com/foundry-rs/forge-std

[submodule "lib/forge-std"]
path = lib/safe-contracts
url = https://github.com/safe-global/safe-contracts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"transactions": [
{
"hash": "0x92925a194871da6d3ca8343543a9a7efa44fe19b592f50de44b08ca1aa590add",
"transactionType": "CREATE",
"contractName": "DebugTransactionGuard",
"contractAddress": "0xf345cf6240960A79CFb0ee1Db8A42f6A92e52ee3",
"function": null,
"arguments": null,
"transaction": {
"type": "0x02",
"from": "0x7deeb2030ce240cafd087d182443cdc53f21f2c6",
"gas": "0x9dacc",
"value": "0x0",
"data": "0x608060405234801561001057600080fd5b50610807806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461004e57806375f0bb52146100765780639327136814610089578063ddbdba631461009c575b005b61006161005c3660046103e1565b6100ca565b60405190151581526020015b60405180910390f35b61004c6100843660046104e0565b610101565b61004c6100973660046105d6565b61033c565b6100bc6100aa366004610606565b60006020819052908152604090205481565b60405190815260200161006d565b60006001600160e01b0319821663736bd41d60e11b14806100fb57506001600160e01b031982166301ffc9a760e01b145b92915050565b60008060003390506001816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016d919061061f565b6101779190610638565b9250806001600160a01b031663d8d11f788f8f8f8f8f8f8f8f8f8d6040518b63ffffffff1660e01b81526004016101b79a999897969594939291906106c1565b602060405180830381865afa1580156101d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f8919061061f565b91505080336001600160a01b03167fa65fef32cd19a6639a4bf7a6d196f132c151e4f0bbd2706f7f831b3a778e1ac08f8f8f8f8f60008f118a8d8d60405161024899989796959493929190610737565b60405180910390a360008181526020819052604080822084905551633b31d65360e11b81526004810183905273ece86f082e7f11525886d4c9b6b04b5875de381e91908290637663aca690602401602060405180830381865afa1580156102b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d791906107b4565b90508061032b5760405162461bcd60e51b815260206004820152601c60248201527f456c656374696f6e206e6f7420796574207375636365737366756c2e0000000060448201526064015b60405180910390fd5b505050505050505050505050505050565b600082815260208190526040812054908190036103915760405162461bcd60e51b8152602060048201526013602482015272436f756c64206e6f7420676574206e6f6e636560681b6044820152606401610322565b60008381526020818152604080832092909255905183151581528291859133917f0dcc0fb56a30b6fe6b188f45b47369bc7f3c928a9748e245a79fc3f54ddd0568910160405180910390a4505050565b6000602082840312156103f357600080fd5b81356001600160e01b03198116811461040b57600080fd5b9392505050565b80356001600160a01b038116811461042957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045557600080fd5b813567ffffffffffffffff808211156104705761047061042e565b604051601f8301601f19908116603f011681019082821181831017156104985761049861042e565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356002811061042957600080fd5b60008060008060008060008060008060006101608c8e03121561050257600080fd5b61050b8c610412565b9a5060208c0135995067ffffffffffffffff8060408e0135111561052e57600080fd5b61053e8e60408f01358f01610444565b995061054c60608e016104d1565b985060808d0135975060a08d0135965060c08d0135955061056f60e08e01610412565b945061057e6101008e01610412565b9350806101208e0135111561059257600080fd5b506105a48d6101208e01358e01610444565b91506105b36101408d01610412565b90509295989b509295989b9093969950565b80151581146105d357600080fd5b50565b600080604083850312156105e957600080fd5b8235915060208301356105fb816105c5565b809150509250929050565b60006020828403121561061857600080fd5b5035919050565b60006020828403121561063157600080fd5b5051919050565b818103818111156100fb57634e487b7160e01b600052601160045260246000fd5b6000815180845260005b8181101561067f57602081850181015186830182015201610663565b506000602082860101526020601f19601f83011685010191505092915050565b600281106106bd57634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b038b81168252602082018b9052610140604083018190526000916106ee8483018d610659565b92506106fd606085018c61069f565b60808401999099525060a082019690965260c081019490945291851660e08401529093166101008201526101200191909152949350505050565b6001600160a01b038a81168252602082018a9052610120604083018190526000916107648483018c610659565b9150610773606085018b61069f565b88608085015287151560a08501528660c085015283820360e08501526107998287610659565b925080851661010085015250509a9950505050505050505050565b6000602082840312156107c657600080fd5b815161040b816105c556fea2646970667358221220578847ec10bfc4f06452f3b38bd7d9b43d3713856652d2021d5a9b34ce7acf7664736f6c63430008100033",
"nonce": "0x2",
"accessList": []
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [],
"libraries": [],
"pending": [
"0x92925a194871da6d3ca8343543a9a7efa44fe19b592f50de44b08ca1aa590add"
],
"returns": {},
"timestamp": 1688860866,
"chain": 100,
"multi": false,
"commit": "44d1ac6"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"transactions": [
{
"hash": "0x92925a194871da6d3ca8343543a9a7efa44fe19b592f50de44b08ca1aa590add",
"transactionType": "CREATE",
"contractName": "DebugTransactionGuard",
"contractAddress": "0xf345cf6240960A79CFb0ee1Db8A42f6A92e52ee3",
"function": null,
"arguments": null,
"transaction": {
"type": "0x02",
"from": "0x7deeb2030ce240cafd087d182443cdc53f21f2c6",
"gas": "0x9dacc",
"value": "0x0",
"data": "0x608060405234801561001057600080fd5b50610807806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461004e57806375f0bb52146100765780639327136814610089578063ddbdba631461009c575b005b61006161005c3660046103e1565b6100ca565b60405190151581526020015b60405180910390f35b61004c6100843660046104e0565b610101565b61004c6100973660046105d6565b61033c565b6100bc6100aa366004610606565b60006020819052908152604090205481565b60405190815260200161006d565b60006001600160e01b0319821663736bd41d60e11b14806100fb57506001600160e01b031982166301ffc9a760e01b145b92915050565b60008060003390506001816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016d919061061f565b6101779190610638565b9250806001600160a01b031663d8d11f788f8f8f8f8f8f8f8f8f8d6040518b63ffffffff1660e01b81526004016101b79a999897969594939291906106c1565b602060405180830381865afa1580156101d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f8919061061f565b91505080336001600160a01b03167fa65fef32cd19a6639a4bf7a6d196f132c151e4f0bbd2706f7f831b3a778e1ac08f8f8f8f8f60008f118a8d8d60405161024899989796959493929190610737565b60405180910390a360008181526020819052604080822084905551633b31d65360e11b81526004810183905273ece86f082e7f11525886d4c9b6b04b5875de381e91908290637663aca690602401602060405180830381865afa1580156102b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d791906107b4565b90508061032b5760405162461bcd60e51b815260206004820152601c60248201527f456c656374696f6e206e6f7420796574207375636365737366756c2e0000000060448201526064015b60405180910390fd5b505050505050505050505050505050565b600082815260208190526040812054908190036103915760405162461bcd60e51b8152602060048201526013602482015272436f756c64206e6f7420676574206e6f6e636560681b6044820152606401610322565b60008381526020818152604080832092909255905183151581528291859133917f0dcc0fb56a30b6fe6b188f45b47369bc7f3c928a9748e245a79fc3f54ddd0568910160405180910390a4505050565b6000602082840312156103f357600080fd5b81356001600160e01b03198116811461040b57600080fd5b9392505050565b80356001600160a01b038116811461042957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045557600080fd5b813567ffffffffffffffff808211156104705761047061042e565b604051601f8301601f19908116603f011681019082821181831017156104985761049861042e565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356002811061042957600080fd5b60008060008060008060008060008060006101608c8e03121561050257600080fd5b61050b8c610412565b9a5060208c0135995067ffffffffffffffff8060408e0135111561052e57600080fd5b61053e8e60408f01358f01610444565b995061054c60608e016104d1565b985060808d0135975060a08d0135965060c08d0135955061056f60e08e01610412565b945061057e6101008e01610412565b9350806101208e0135111561059257600080fd5b506105a48d6101208e01358e01610444565b91506105b36101408d01610412565b90509295989b509295989b9093969950565b80151581146105d357600080fd5b50565b600080604083850312156105e957600080fd5b8235915060208301356105fb816105c5565b809150509250929050565b60006020828403121561061857600080fd5b5035919050565b60006020828403121561063157600080fd5b5051919050565b818103818111156100fb57634e487b7160e01b600052601160045260246000fd5b6000815180845260005b8181101561067f57602081850181015186830182015201610663565b506000602082860101526020601f19601f83011685010191505092915050565b600281106106bd57634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b038b81168252602082018b9052610140604083018190526000916106ee8483018d610659565b92506106fd606085018c61069f565b60808401999099525060a082019690965260c081019490945291851660e08401529093166101008201526101200191909152949350505050565b6001600160a01b038a81168252602082018a9052610120604083018190526000916107648483018c610659565b9150610773606085018b61069f565b88608085015287151560a08501528660c085015283820360e08501526107998287610659565b925080851661010085015250509a9950505050505050505050565b6000602082840312156107c657600080fd5b815161040b816105c556fea2646970667358221220578847ec10bfc4f06452f3b38bd7d9b43d3713856652d2021d5a9b34ce7acf7664736f6c63430008100033",
"nonce": "0x2",
"accessList": []
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"transactionHash": "0x92925a194871da6d3ca8343543a9a7efa44fe19b592f50de44b08ca1aa590add",
"transactionIndex": "0x0",
"blockHash": "0x98f39e10ef444583ff2fa4fed34becfab562e8c0911f372dfb08e1252028187d",
"blockNumber": "0x1b84654",
"from": "0x7DEeb2030CE240caFd087d182443Cdc53f21F2c6",
"to": null,
"cumulativeGasUsed": "0x7949d",
"gasUsed": "0x7949d",
"contractAddress": "0xf345cf6240960A79CFb0ee1Db8A42f6A92e52ee3",
"logs": [],
"status": "0x1",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
"effectiveGasPrice": "0xb2d05e07"
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1688860872,
"chain": 100,
"multi": false,
"commit": "44d1ac6"
}
48 changes: 48 additions & 0 deletions election-guard/broadcast/ElectionGuard.s.sol/100/run-latest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"transactions": [
{
"hash": "0x92925a194871da6d3ca8343543a9a7efa44fe19b592f50de44b08ca1aa590add",
"transactionType": "CREATE",
"contractName": "DebugTransactionGuard",
"contractAddress": "0xf345cf6240960A79CFb0ee1Db8A42f6A92e52ee3",
"function": null,
"arguments": null,
"transaction": {
"type": "0x02",
"from": "0x7deeb2030ce240cafd087d182443cdc53f21f2c6",
"gas": "0x9dacc",
"value": "0x0",
"data": "0x608060405234801561001057600080fd5b50610807806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461004e57806375f0bb52146100765780639327136814610089578063ddbdba631461009c575b005b61006161005c3660046103e1565b6100ca565b60405190151581526020015b60405180910390f35b61004c6100843660046104e0565b610101565b61004c6100973660046105d6565b61033c565b6100bc6100aa366004610606565b60006020819052908152604090205481565b60405190815260200161006d565b60006001600160e01b0319821663736bd41d60e11b14806100fb57506001600160e01b031982166301ffc9a760e01b145b92915050565b60008060003390506001816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016d919061061f565b6101779190610638565b9250806001600160a01b031663d8d11f788f8f8f8f8f8f8f8f8f8d6040518b63ffffffff1660e01b81526004016101b79a999897969594939291906106c1565b602060405180830381865afa1580156101d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f8919061061f565b91505080336001600160a01b03167fa65fef32cd19a6639a4bf7a6d196f132c151e4f0bbd2706f7f831b3a778e1ac08f8f8f8f8f60008f118a8d8d60405161024899989796959493929190610737565b60405180910390a360008181526020819052604080822084905551633b31d65360e11b81526004810183905273ece86f082e7f11525886d4c9b6b04b5875de381e91908290637663aca690602401602060405180830381865afa1580156102b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d791906107b4565b90508061032b5760405162461bcd60e51b815260206004820152601c60248201527f456c656374696f6e206e6f7420796574207375636365737366756c2e0000000060448201526064015b60405180910390fd5b505050505050505050505050505050565b600082815260208190526040812054908190036103915760405162461bcd60e51b8152602060048201526013602482015272436f756c64206e6f7420676574206e6f6e636560681b6044820152606401610322565b60008381526020818152604080832092909255905183151581528291859133917f0dcc0fb56a30b6fe6b188f45b47369bc7f3c928a9748e245a79fc3f54ddd0568910160405180910390a4505050565b6000602082840312156103f357600080fd5b81356001600160e01b03198116811461040b57600080fd5b9392505050565b80356001600160a01b038116811461042957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045557600080fd5b813567ffffffffffffffff808211156104705761047061042e565b604051601f8301601f19908116603f011681019082821181831017156104985761049861042e565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356002811061042957600080fd5b60008060008060008060008060008060006101608c8e03121561050257600080fd5b61050b8c610412565b9a5060208c0135995067ffffffffffffffff8060408e0135111561052e57600080fd5b61053e8e60408f01358f01610444565b995061054c60608e016104d1565b985060808d0135975060a08d0135965060c08d0135955061056f60e08e01610412565b945061057e6101008e01610412565b9350806101208e0135111561059257600080fd5b506105a48d6101208e01358e01610444565b91506105b36101408d01610412565b90509295989b509295989b9093969950565b80151581146105d357600080fd5b50565b600080604083850312156105e957600080fd5b8235915060208301356105fb816105c5565b809150509250929050565b60006020828403121561061857600080fd5b5035919050565b60006020828403121561063157600080fd5b5051919050565b818103818111156100fb57634e487b7160e01b600052601160045260246000fd5b6000815180845260005b8181101561067f57602081850181015186830182015201610663565b506000602082860101526020601f19601f83011685010191505092915050565b600281106106bd57634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b038b81168252602082018b9052610140604083018190526000916106ee8483018d610659565b92506106fd606085018c61069f565b60808401999099525060a082019690965260c081019490945291851660e08401529093166101008201526101200191909152949350505050565b6001600160a01b038a81168252602082018a9052610120604083018190526000916107648483018c610659565b9150610773606085018b61069f565b88608085015287151560a08501528660c085015283820360e08501526107998287610659565b925080851661010085015250509a9950505050505050505050565b6000602082840312156107c657600080fd5b815161040b816105c556fea2646970667358221220578847ec10bfc4f06452f3b38bd7d9b43d3713856652d2021d5a9b34ce7acf7664736f6c63430008100033",
"nonce": "0x2",
"accessList": []
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"transactionHash": "0x92925a194871da6d3ca8343543a9a7efa44fe19b592f50de44b08ca1aa590add",
"transactionIndex": "0x0",
"blockHash": "0x98f39e10ef444583ff2fa4fed34becfab562e8c0911f372dfb08e1252028187d",
"blockNumber": "0x1b84654",
"from": "0x7DEeb2030CE240caFd087d182443Cdc53f21F2c6",
"to": null,
"cumulativeGasUsed": "0x7949d",
"gasUsed": "0x7949d",
"contractAddress": "0xf345cf6240960A79CFb0ee1Db8A42f6A92e52ee3",
"logs": [],
"status": "0x1",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
"effectiveGasPrice": "0xb2d05e07"
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1688860872,
"chain": 100,
"multi": false,
"commit": "44d1ac6"
}
Loading