Skip to content
This repository has been archived by the owner on Nov 27, 2024. It is now read-only.

Commit

Permalink
docs: add token governor audit for v1.0.0 release (#92)
Browse files Browse the repository at this point in the history
**Motivation:**

This PR will allow us to make the repo public and mark the `v1.0.0`
release of `llama-periphery`.

**Modifications:**

- Add Spearbit's audit of the token governor module to the audits
directory
- Added a link to the audit in the `README`
- Added deployments section to README with token voting module and
factory contract addresses.
- Hardcode `evm_version = 'paris'` in `foundry.toml`
- Add build artifacts from token voting module and factory deploy

**Result:**

Users will be able to easily find our audits and verified contract
addresses. This commit marks `v1.0.0` of the `llama-periphery` repo.
  • Loading branch information
AustinGreen authored Jan 11, 2024
1 parent ff44c97 commit eccfec9
Show file tree
Hide file tree
Showing 41 changed files with 4,623 additions and 11 deletions.
42 changes: 31 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,27 @@ The comments in that file explain what each variable is for and when they're nee
- `just deploy` - deploy and verify payload on mainnet
- Run `just -l` or see the [`justfile`](https://github.com/llamaxyz/llama-periphery/blob/main/justfile) for other commands such as dry runs.

## Testnet deployment

| Name | Sepolia |
| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
|_Factory_|
| LlamaTokenVotingFactory | [0x6A97643633eafEEC00b7Ec4CE84269203645aaBC](https://sepolia.etherscan.io/address/0x6A97643633eafEEC00b7Ec4CE84269203645aaBC) |
|_Governor_|
| LlamaTokenGovernor (logic contract) | [0x0A01C701013E6d6F1c1759457324303Bf25CC7E3](https://sepolia.etherscan.io/address/0x0A01C701013E6d6F1c1759457324303Bf25CC7E3) |
|_Token Adapters_|
| LlamaTokenAdapterVotesTimestamp (logic contract) | [0x8CCe1b824EfF3A7966348528B6951A84eC0541A5](https://sepolia.etherscan.io/address/0x8CCe1b824EfF3A7966348528B6951A84eC0541A5) |
## Deployments

| Name | Ethereum | Optimism | Arbitrum | Base | Polygon |
| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| _Factory_|
| LlamaTokenVotingFactory | [0xFBE17545dffD75A92A5A72926AE581478973FE65](https://etherscan.io/address/0xFBE17545dffD75A92A5A72926AE581478973FE65) | [0xFBE17545dffD75A92A5A72926AE581478973FE65](https://optimistic.etherscan.io/address/0xFBE17545dffD75A92A5A72926AE581478973FE65) | [0xFBE17545dffD75A92A5A72926AE581478973FE65](https://arbiscan.io/address/0xFBE17545dffD75A92A5A72926AE581478973FE65) | [0xFBE17545dffD75A92A5A72926AE581478973FE65](https://basescan.org/address/0xFBE17545dffD75A92A5A72926AE581478973FE65) | [0xFBE17545dffD75A92A5A72926AE581478973FE65](https://polygonscan.com/address/0xFBE17545dffD75A92A5A72926AE581478973FE65) |
| _Governor_|
| LlamaTokenGovernor (logic contract) | [0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A](https://etherscan.io/address/0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A) | [0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A](https://optimistic.etherscan.io/address/0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A) | [0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A](https://arbiscan.io/address/0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A) | [0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A](https://basescan.org/address/0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A) | [0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A](https://polygonscan.com/address/0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A) |
| _Token Adapters_|
| LlamaTokenAdapterVotesTimestamp (logic contract) | [0x088C268cb00226D6A9b29e5488905Aa94D2f0239](https://etherscan.io/address/0x088C268cb00226D6A9b29e5488905Aa94D2f0239) | [0x088C268cb00226D6A9b29e5488905Aa94D2f0239](https://optimistic.etherscan.io/address/0x088C268cb00226D6A9b29e5488905Aa94D2f0239) | [0x088C268cb00226D6A9b29e5488905Aa94D2f0239](https://arbiscan.io/address/0x088C268cb00226D6A9b29e5488905Aa94D2f0239) | [0x088C268cb00226D6A9b29e5488905Aa94D2f0239](https://basescan.org/address/0x088C268cb00226D6A9b29e5488905Aa94D2f0239) | [0x088C268cb00226D6A9b29e5488905Aa94D2f0239](https://polygonscan.com/address/0x088C268cb00226D6A9b29e5488905Aa94D2f0239) |

## Testnet deployments

| Name | Sepolia | Goerli | Optimism Goerli | Base Goerli |
| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| _Factory_|
| LlamaTokenVotingFactory | [0xFBE17545dffD75A92A5A72926AE581478973FE65](https://sepolia.etherscan.io/address/0xFBE17545dffD75A92A5A72926AE581478973FE65) | [0xFBE17545dffD75A92A5A72926AE581478973FE65](https://goerli.etherscan.io/address/0xFBE17545dffD75A92A5A72926AE581478973FE65) | [0xFBE17545dffD75A92A5A72926AE581478973FE65](https://goerli-optimism.etherscan.io/address/0xFBE17545dffD75A92A5A72926AE581478973FE65) | [0xFBE17545dffD75A92A5A72926AE581478973FE65](https://goerli.basescan.org/address/0xFBE17545dffD75A92A5A72926AE581478973FE65) |
| _Governor_|
| LlamaTokenGovernor (logic contract) | [0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A](https://sepolia.etherscan.io/address/0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A) | [0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A](https://goerli.etherscan.io/address/0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A) | [0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A](https://goerli-optimism.etherscan.io/address/0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A) | [0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A](https://goerli.basescan.org/address/0x3f3DAB3ab8cEc2FBd06767c2A5F66Cb6BFF21A4A) |
| _Token Adapters_|
| LlamaTokenAdapterVotesTimestamp (logic contract) | [0x088C268cb00226D6A9b29e5488905Aa94D2f0239](https://sepolia.etherscan.io/address/0x088C268cb00226D6A9b29e5488905Aa94D2f0239) | [0x088C268cb00226D6A9b29e5488905Aa94D2f0239](https://goerli.etherscan.io/address/0x088C268cb00226D6A9b29e5488905Aa94D2f0239) | [0x088C268cb00226D6A9b29e5488905Aa94D2f0239](https://goerli-optimism.etherscan.io/address/0x088C268cb00226D6A9b29e5488905Aa94D2f0239) | [0x088C268cb00226D6A9b29e5488905Aa94D2f0239](https://goerli.basescan.org/address/0x088C268cb00226D6A9b29e5488905Aa94D2f0239) |

## Smart contract reference

Expand All @@ -74,7 +85,16 @@ Run the following command to generate smart contract reference documentation fro
```sh
$ forge doc -o reference/ -b -s
```
## Bug bounty program

## Security

### Audit

We received an audit from Spearbit. You can find the link to the report below:

- [Llama Token Governor Spearbit Audit](https://github.com/llamaxyz/llama/blob/main/audits/Llama-Token-Governor-Spearbit-Audit.pdf)

### Bug bounty program

This repository is subject to the [Llama bug bounty program](https://github.com/llamaxyz/llama/blob/main/README.md#bug-bounty-program).

Expand Down
Binary file added audits/Llama-Token-Governor-Spearbit-Audit.pdf
Binary file not shown.

Large diffs are not rendered by default.

148 changes: 148 additions & 0 deletions broadcast/DeployLlamaTokenVotingFactory.s.sol/1/run-1704995739.json

Large diffs are not rendered by default.

148 changes: 148 additions & 0 deletions broadcast/DeployLlamaTokenVotingFactory.s.sol/1/run-1704995794.json

Large diffs are not rendered by default.

148 changes: 148 additions & 0 deletions broadcast/DeployLlamaTokenVotingFactory.s.sol/1/run-latest.json

Large diffs are not rendered by default.

Large diffs are not rendered by default.

148 changes: 148 additions & 0 deletions broadcast/DeployLlamaTokenVotingFactory.s.sol/10/run-1704995579.json

Large diffs are not rendered by default.

148 changes: 148 additions & 0 deletions broadcast/DeployLlamaTokenVotingFactory.s.sol/10/run-1704995629.json

Large diffs are not rendered by default.

148 changes: 148 additions & 0 deletions broadcast/DeployLlamaTokenVotingFactory.s.sol/10/run-latest.json

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"transactions": [
{
"hash": "0xa2c340020ddc04f78300ebf8df186548b6059de0b391b00eef586c2cf62c5599",
"transactionType": "CREATE",
"contractName": "LlamaTokenAdapterVotesTimestamp",
"contractAddress": "0x088C268cb00226D6A9b29e5488905Aa94D2f0239",
"function": null,
"arguments": null,
"transaction": {
"type": "0x02",
"from": "0xb72276d9ff15c7998b9962ffcfb21a6c7249441b",
"gas": "0x10d28c",
"value": "0x0",
"data": "0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610df5806100df6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063ae2a6df21161005b578063ae2a6df21461010a578063cdfda4dd14610114578063edb8ee5a14610127578063fc0c546a1461013a57600080fd5b8063439fab911461008d5780634bf5d7e9146100b557806391ddadf4146100ca5780639556de73146100e9575b600080fd5b6100a061009b3660046108e4565b61017f565b60405190151581526020015b60405180910390f35b6100bd6103a1565b6040516100ac9190610988565b6100d261042f565b60405165ffffffffffff90911681526020016100ac565b6100fc6100f7366004610a12565b6104e9565b6040519081526020016100ac565b610112610593565b005b6100d2610122366004610a4b565b6105ef565b6100fc610135366004610a64565b610600565b60005461015a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546000919068010000000000000000810460ff16159067ffffffffffffffff1683811580156101cd5750825b905060008267ffffffffffffffff1660011480156101ea5750303b155b9050811580156101f8575080155b1561022f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156102905784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6000878060200190518101906102a69190610a81565b8051600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90921691909117905560408051808201909152600e81527f6d6f64653d74696d657374616d7000000000000000000000000000000000000060208201529091506001906103309082610b71565b50600196505083156103975784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b600180546103ae90610acd565b80601f01602080910402602001604051908101604052809291908181526020018280546103da90610acd565b80156104275780601f106103fc57610100808354040283529160200191610427565b820191906000526020600020905b81548152906001019060200180831161040a57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156104d7575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526104d491810190610c8b565b60015b6104e4576104e44261069b565b905090565b600080546040517f3a46b1a800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015265ffffffffffff8516602483015290911690633a46b1a890604401602060405180830381865afa158015610568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058c9190610ca8565b9392505050565b600061059d6106e8565b905060006105a9610712565b905081806105b45750805b156105eb576040517f6ff0714000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60006105fa8261069b565b92915050565b600080546040517f8e539e8c00000000000000000000000000000000000000000000000000000000815265ffffffffffff8416600482015273ffffffffffffffffffffffffffffffffffffffff90911690638e539e8c90602401602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fa9190610ca8565b600065ffffffffffff8211156106e4576040517fc0188c4f0000000000000000000000000000000000000000000000000000000081526004810183905260240160405180910390fd5b5090565b60006106f34261069b565b65ffffffffffff1661070361042f565b65ffffffffffff161415905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634bf5d7e96040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156107bf57506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526107bc9190810190610cc1565b60015b6107c95750600090565b60016040516020016107db9190610d38565b60405160208183030381529060405280519060200120816040516020016108029190610dcc565b60405160208183030381529060405280519060200120141591505090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561089657610896610820565b604052919050565b600067ffffffffffffffff8211156108b8576108b8610820565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6000602082840312156108f657600080fd5b813567ffffffffffffffff81111561090d57600080fd5b8201601f8101841361091e57600080fd5b803561093161092c8261089e565b61084f565b81815285602083850101111561094657600080fd5b81602084016020830137600091810160200191909152949350505050565b60005b8381101561097f578181015183820152602001610967565b50506000910152565b60208152600082518060208401526109a7816040850160208701610964565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff811681146109fb57600080fd5b50565b65ffffffffffff811681146109fb57600080fd5b60008060408385031215610a2557600080fd5b8235610a30816109d9565b91506020830135610a40816109fe565b809150509250929050565b600060208284031215610a5d57600080fd5b5035919050565b600060208284031215610a7657600080fd5b813561058c816109fe565b600060208284031215610a9357600080fd5b6040516020810181811067ffffffffffffffff82111715610ab657610ab6610820565b6040528251610ac4816109d9565b81529392505050565b600181811c90821680610ae157607f821691505b602082108103610b1a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610b6c576000816000526020600020601f850160051c81016020861015610b495750805b601f850160051c820191505b81811015610b6857828155600101610b55565b5050505b505050565b815167ffffffffffffffff811115610b8b57610b8b610820565b610b9f81610b998454610acd565b84610b20565b602080601f831160018114610bf25760008415610bbc5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610b68565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610c3f57888601518255948401946001909101908401610c20565b5085821015610c7b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215610c9d57600080fd5b815161058c816109fe565b600060208284031215610cba57600080fd5b5051919050565b600060208284031215610cd357600080fd5b815167ffffffffffffffff811115610cea57600080fd5b8201601f81018413610cfb57600080fd5b8051610d0961092c8261089e565b818152856020838501011115610d1e57600080fd5b610d2f826020830160208601610964565b95945050505050565b6000808354610d4681610acd565b60018281168015610d5e5760018114610d9157610dc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450610dc0565b8760005260208060002060005b85811015610db75781548a820152908401908201610d9e565b50505082870194505b50929695505050505050565b60008251610dde818460208701610964565b919091019291505056fea164736f6c6343000817000a",
"nonce": "0x2",
"accessList": []
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [],
"libraries": [],
"pending": [
"0xa2c340020ddc04f78300ebf8df186548b6059de0b391b00eef586c2cf62c5599"
],
"returns": {},
"timestamp": 1704991771,
"chain": 11155111,
"multi": false,
"commit": "688208a"
}
Loading

0 comments on commit eccfec9

Please sign in to comment.