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

Commit

Permalink
chore: add testnet deployment logs, instance configuration, and updat…
Browse files Browse the repository at this point in the history
…e documentation (#483)

**Motivation:**

This PR commits the deployment logs from our testnet deploys, other
build artifacts, adds our instance's configuration, and updates
documentation such as adding deployment addresses, a bug bounty program,
and audit section. This also includes a fresh gas report.

**Modifications:**

- Removed the old logs and replaced them with our canonical factory and
instance deploys.
- Added the deployments table, audits section, bug bounty section,
documentation section to the README
- Updated script docs
- Re-ran gas report

**Result:**

We'll be able to publicly share our deployment logs and be prepared to
make the repo public.
  • Loading branch information
AustinGreen authored Aug 19, 2023
1 parent 19393a0 commit 3663b8b
Show file tree
Hide file tree
Showing 60 changed files with 818,445 additions and 1,343 deletions.
464 changes: 322 additions & 142 deletions .gas-report

Large diffs are not rendered by default.

57 changes: 55 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

# Llama

Llama is an onchain governance framework. It uses non-transferable NFTs to encode access control, features programmatic control of funds, and includes modular strategies to define action execution rules.
Llama is an onchain governance and access control framework for smart contracts. It uses non-transferable NFTs to encode access control, features programmatic control of funds, and includes modular strategies to define action execution rules.

## Prerequisites

Expand Down Expand Up @@ -51,14 +51,67 @@ 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/blob/main/justfile) for other commands such as dry runs.

## Testnet deployments

| Name | Sepolia | Goerli | Optimism Goerli | Base Goerli | Arbitrum Goerli |
| ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|_Factory_|
| LlamaFactory | [0x1711567DC0dd5667fb0AA1Cc8A400E5D724fe6c6](https://sepolia.etherscan.io/address/0x1711567DC0dd5667fb0AA1Cc8A400E5D724fe6c6) | [0x1711567DC0dd5667fb0AA1Cc8A400E5D724fe6c6](https://goerli.etherscan.io/address/0x1711567DC0dd5667fb0AA1Cc8A400E5D724fe6c6) | [0x1711567DC0dd5667fb0AA1Cc8A400E5D724fe6c6](https://goerli-optimism.etherscan.io/address/0x1711567DC0dd5667fb0AA1Cc8A400E5D724fe6c6) | [0x1711567DC0dd5667fb0AA1Cc8A400E5D724fe6c6](https://goerli.basescan.org/address/0x1711567DC0dd5667fb0AA1Cc8A400E5D724fe6c6) | [0x1711567DC0dd5667fb0AA1Cc8A400E5D724fe6c6](https://goerli.arbiscan.io/address/0x1711567DC0dd5667fb0AA1Cc8A400E5D724fe6c6) |
|_Main instance contracts_|
| LlamaCore (logic contract) | [0x5387Ba4E0DEeA1EBb85315eAc24EF5974BC54601](https://sepolia.etherscan.io/address/0x5387Ba4E0DEeA1EBb85315eAc24EF5974BC54601) | [0x5387Ba4E0DEeA1EBb85315eAc24EF5974BC54601](https://goerli.etherscan.io/address/0x5387Ba4E0DEeA1EBb85315eAc24EF5974BC54601) | [0x5387Ba4E0DEeA1EBb85315eAc24EF5974BC54601](https://goerli-optimism.etherscan.io/address/0x5387Ba4E0DEeA1EBb85315eAc24EF5974BC54601) | [0x5387Ba4E0DEeA1EBb85315eAc24EF5974BC54601](https://goerli.basescan.org/address/0x5387Ba4E0DEeA1EBb85315eAc24EF5974BC54601) | [0x5387Ba4E0DEeA1EBb85315eAc24EF5974BC54601](https://goerli.arbiscan.io/address/0x5387Ba4E0DEeA1EBb85315eAc24EF5974BC54601) |
| LlamaPolicy (logic contract) | [0xfF21Eeb8766E99de2ebDd2F171004e10020A6C9F](https://sepolia.etherscan.io/address/0xfF21Eeb8766E99de2ebDd2F171004e10020A6C9F) | [0xfF21Eeb8766E99de2ebDd2F171004e10020A6C9F](https://goerli.etherscan.io/address/0xfF21Eeb8766E99de2ebDd2F171004e10020A6C9F) | [0xfF21Eeb8766E99de2ebDd2F171004e10020A6C9F](https://goerli-optimism.etherscan.io/address/0xfF21Eeb8766E99de2ebDd2F171004e10020A6C9F) | [0xfF21Eeb8766E99de2ebDd2F171004e10020A6C9F](https://goerli.basescan.org/address/0xfF21Eeb8766E99de2ebDd2F171004e10020A6C9F) | [0xfF21Eeb8766E99de2ebDd2F171004e10020A6C9F](https://goerli.arbiscan.io/address/0xfF21Eeb8766E99de2ebDd2F171004e10020A6C9F) |
| LlamaPolicyMetadata (logic contract) | [0x3c2Ab7959b49e83FDF55C1E8A44c0D9Ba77b4F25](https://sepolia.etherscan.io/address/0x3c2Ab7959b49e83FDF55C1E8A44c0D9Ba77b4F25) | [0x3c2Ab7959b49e83FDF55C1E8A44c0D9Ba77b4F25](https://goerli.etherscan.io/address/0x3c2Ab7959b49e83FDF55C1E8A44c0D9Ba77b4F25) | [0x3c2Ab7959b49e83FDF55C1E8A44c0D9Ba77b4F25](https://goerli-optimism.etherscan.io/address/0x3c2Ab7959b49e83FDF55C1E8A44c0D9Ba77b4F25) | [0x3c2Ab7959b49e83FDF55C1E8A44c0D9Ba77b4F25](https://goerli.basescan.org/address/0x3c2Ab7959b49e83FDF55C1E8A44c0D9Ba77b4F25) | [0x3c2Ab7959b49e83FDF55C1E8A44c0D9Ba77b4F25](https://goerli.arbiscan.io/address/0x3c2Ab7959b49e83FDF55C1E8A44c0D9Ba77b4F25) |
|_Strategy logic contracts_|
| LlamaRelativeQuantityQuorum | [0x6ed0741e8BCE77455aa956F91823D70EC10c4838](https://sepolia.etherscan.io/address/0x6ed0741e8BCE77455aa956F91823D70EC10c4838) | [0x6ed0741e8BCE77455aa956F91823D70EC10c4838](https://goerli.etherscan.io/address/0x6ed0741e8BCE77455aa956F91823D70EC10c4838) | [0x6ed0741e8BCE77455aa956F91823D70EC10c4838](https://goerli-optimism.etherscan.io/address/0x6ed0741e8BCE77455aa956F91823D70EC10c4838) | [0x6ed0741e8BCE77455aa956F91823D70EC10c4838](https://goerli.basescan.org/address/0x6ed0741e8BCE77455aa956F91823D70EC10c4838) | [0x6ed0741e8BCE77455aa956F91823D70EC10c4838](https://goerli.arbiscan.io/address/0x6ed0741e8BCE77455aa956F91823D70EC10c4838) |
| LlamaRelativeHolderQuorum | [0x2d117f60a15bB816E0868B1DF323D13e46D74fdB](https://sepolia.etherscan.io/address/0x2d117f60a15bB816E0868B1DF323D13e46D74fdB) | [0x2d117f60a15bB816E0868B1DF323D13e46D74fdB](https://goerli.etherscan.io/address/0x2d117f60a15bB816E0868B1DF323D13e46D74fdB) | [0x2d117f60a15bB816E0868B1DF323D13e46D74fdB](https://goerli-optimism.etherscan.io/address/0x2d117f60a15bB816E0868B1DF323D13e46D74fdB) | [0x2d117f60a15bB816E0868B1DF323D13e46D74fdB](https://goerli.basescan.org/address/0x2d117f60a15bB816E0868B1DF323D13e46D74fdB) | [0x2d117f60a15bB816E0868B1DF323D13e46D74fdB](https://goerli.arbiscan.io/address/0x2d117f60a15bB816E0868B1DF323D13e46D74fdB) |
| LlamaRelativeUniqueHolderQuorum | [0x0479A850a6Ce2eF13F623e0F5637487B7F81E947](https://sepolia.etherscan.io/address/0x0479A850a6Ce2eF13F623e0F5637487B7F81E947) | [0x0479A850a6Ce2eF13F623e0F5637487B7F81E947](https://goerli.etherscan.io/address/0x0479A850a6Ce2eF13F623e0F5637487B7F81E947) | [0x0479A850a6Ce2eF13F623e0F5637487B7F81E947](https://goerli-optimism.etherscan.io/address/0x0479A850a6Ce2eF13F623e0F5637487B7F81E947) | [0x0479A850a6Ce2eF13F623e0F5637487B7F81E947](https://goerli.basescan.org/address/0x0479A850a6Ce2eF13F623e0F5637487B7F81E947) | [0x0479A850a6Ce2eF13F623e0F5637487B7F81E947](https://goerli.arbiscan.io/address/0x0479A850a6Ce2eF13F623e0F5637487B7F81E947) |
| LlamaAbsoluteQuorum | [0x9aD3D59516123E584084363592D49a045c717665](https://sepolia.etherscan.io/address/0x9aD3D59516123E584084363592D49a045c717665) | [0x9aD3D59516123E584084363592D49a045c717665](https://goerli.etherscan.io/address/0x9aD3D59516123E584084363592D49a045c717665) | [0x9aD3D59516123E584084363592D49a045c717665](https://goerli-optimism.etherscan.io/address/0x9aD3D59516123E584084363592D49a045c717665) | [0x9aD3D59516123E584084363592D49a045c717665](https://goerli.basescan.org/address/0x9aD3D59516123E584084363592D49a045c717665) | [0x9aD3D59516123E584084363592D49a045c717665](https://goerli.arbiscan.io/address/0x9aD3D59516123E584084363592D49a045c717665) |
| LlamaAbsolutePeerReview | [0x334D3C1479011b874DCC235EdE8b39064212D8cb](https://sepolia.etherscan.io/address/0x334D3C1479011b874DCC235EdE8b39064212D8cb) | [0x334D3C1479011b874DCC235EdE8b39064212D8cb](https://goerli.etherscan.io/address/0x334D3C1479011b874DCC235EdE8b39064212D8cb) | [0x334D3C1479011b874DCC235EdE8b39064212D8cb](https://goerli-optimism.etherscan.io/address/0x334D3C1479011b874DCC235EdE8b39064212D8cb) | [0x334D3C1479011b874DCC235EdE8b39064212D8cb](https://goerli.basescan.org/address/0x334D3C1479011b874DCC235EdE8b39064212D8cb) | [0x334D3C1479011b874DCC235EdE8b39064212D8cb](https://goerli.arbiscan.io/address/0x334D3C1479011b874DCC235EdE8b39064212D8cb) |
|_Account logic contract_|
| LlamaAccount (logic contract) | [0xf9CdC99a3BaA178BD499653B01D0db794738fb8F](https://sepolia.etherscan.io/address/0xf9CdC99a3BaA178BD499653B01D0db794738fb8F) | [0xf9CdC99a3BaA178BD499653B01D0db794738fb8F](https://goerli.etherscan.io/address/0xf9CdC99a3BaA178BD499653B01D0db794738fb8F) | [0xf9CdC99a3BaA178BD499653B01D0db794738fb8F](https://goerli-optimism.etherscan.io/address/0xf9CdC99a3BaA178BD499653B01D0db794738fb8F) | [0xf9CdC99a3BaA178BD499653B01D0db794738fb8F](https://goerli.basescan.org/address/0xf9CdC99a3BaA178BD499653B01D0db794738fb8F) | [0xf9CdC99a3BaA178BD499653B01D0db794738fb8F](https://goerli.arbiscan.io/address/0xf9CdC99a3BaA178BD499653B01D0db794738fb8F) |
|_Helper contract_|
| LlamaLens | [0x09641350941CbAE35981A65C5ff2CE7F481184CF](https://sepolia.etherscan.io/address/0x09641350941CbAE35981A65C5ff2CE7F481184CF) | [0x09641350941CbAE35981A65C5ff2CE7F481184CF](https://goerli.etherscan.io/address/0x09641350941CbAE35981A65C5ff2CE7F481184CF) | [0x09641350941CbAE35981A65C5ff2CE7F481184CF](https://goerli-optimism.etherscan.io/address/0x09641350941CbAE35981A65C5ff2CE7F481184CF) | [0x09641350941CbAE35981A65C5ff2CE7F481184CF](https://goerli.basescan.org/address/0x09641350941CbAE35981A65C5ff2CE7F481184CF) | [0x09641350941CbAE35981A65C5ff2CE7F481184CF](https://goerli.arbiscan.io/address/0x09641350941CbAE35981A65C5ff2CE7F481184CF) |

## Documentation

Run the following command to generate smart contract reference documentation from this project's NatSpec comments and serve those static files locally:
To read all of our documentation, visit [https://docs.llama.xyz](https://docs.llama.xyz). To view Llama framework documentation only, visit the [docs directory](https://github.com/llamaxyz/llama/tree/main/docs).

### Smart contract reference

Run the following command to generate smart contract reference documentation from our NatSpec comments and serve those static files locally:

```sh
$ forge doc -o reference/ -b -s
```

## Security

### Audits

We received audits from Spearbit and Code4rena. You can find links to the reports below:

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

### Bug bounty program

All contracts in the `src/` directory except `src/LlamaLens.sol` are in scope for the bug bounty program. The root `lib/` directory (not the `src/lib/` directory) and acknowledged findings from our Spearbit and Code4rena audits are out of scope.

Llama policyholders are trusted participants of a Llama instance based on what their roles and permissions allow them to do. Any findings that require policyholders to take malicious action are out of scope for this program.

We adapted the [Immunefi Vulnerability Severity Classification System](https://immunefi.com/immunefi-vulnerability-severity-classification-system-v2-3/) to determine classification.

| **Level** | **Example** | **Maximum Bug Bounty** |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
| 5. Critical | - Unauthorized action state transitions<br>- Major manipulation of approval or disapproval results<br>- Vulnerabilities in the roles and permissions system that result in unauthorized ability to create, approve, or disapprove actions<br>- Permanent freezing of funds in accounts | Up to 100,000 USDC |
| 4. High | - Minor manipulation of approval or disapproval results that are unlikely to affect outcomes<br>- Minor vulnerabilities in the roles and permissions system that are unlikely to affect outcomes<br>- Temporary freezing of funds in accounts | Up to 20,000 USDC |
| 3. Medium | - Griefing that disrupts an instance's action flow | Up to 5,000 USDC |
| 2. Low | - Contract fails to deliver promised returns, but doesn't lose value | Up to 1,000 USDC |
| 1. None | - Best practices | |
| Not sure? | | Email us |

Email us at [security@llama.xyz](mailto:security@llama.xyz) to get in contact.

## Slither

Use our bash script to prevent slither from analyzing the test and script directories. Running `slither .` directly will result in an `AssertionError`.
Expand Down
800 changes: 0 additions & 800 deletions broadcast/DeployLlama.s.sol/5/run-latest.json

This file was deleted.

239 changes: 239 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/11155111/run-1692401623.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/11155111/run-1692401629.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/11155111/run-1692401691.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/11155111/run-latest.json

Large diffs are not rendered by default.

239 changes: 239 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/420/run-1692402574.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/420/run-1692402580.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/420/run-1692414728.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/420/run-latest.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/421613/run-1692417560.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/421613/run-1692417738.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/421613/run-latest.json

Large diffs are not rendered by default.

239 changes: 239 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/5/run-1692402020.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/5/run-1692402026.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/5/run-1692402062.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/5/run-latest.json

Large diffs are not rendered by default.

239 changes: 239 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/84531/run-1692416594.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/84531/run-1692416600.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/84531/run-1692416778.json

Large diffs are not rendered by default.

530 changes: 530 additions & 0 deletions broadcast/DeployLlamaFactory.s.sol/84531/run-latest.json

Large diffs are not rendered by default.

Loading

0 comments on commit 3663b8b

Please sign in to comment.