Commit Graph

29 Commits

Author SHA1 Message Date
r4bbit fec67a0034
docs: fix readme image path 2023-09-19 16:26:16 +02:00
r4bbit 253394157c
docs: add documentation about communities contracts (#4) 2023-09-19 16:23:03 +02:00
r4bbit 103a374cac
docs: fix gha-badge (#11)
* docs: fix gha-badge

* docs: add codecov badge
2023-09-19 12:04:13 +02:00
r4bbit 4be8613d6e
feat: implement `CommunityTokenDeployer` contract (#2)
This commit introduces the `CommunityTokenDeployer` contract discussed
in https://github.com/status-im/status-desktop/issues/11954.

The idea is that, instead of having accounts deploy `OwnerToken` and
`MasterToken` directly, they'd use a deployer contract instead, which
maintains a registry of known `OwnerToken` addresses, mapped to Status
community addresses.

The following changes have been made:

It was, and still is, a requirement that both, `OwnerToken` and
`MasterToken` are deployed within a single transaction, so that when
something goes wrong, we don't end up in an inconsistent state.

That's why `OwnerToken` used to instantiated `MasterToken` and required
all of its constructor arguments as well.

Unfortunately, this resulted in compilation issues in the context of the
newly introduce deployer contract, where there are too many function
arguments.

Because we now delegate deployment to a dedicated contract, we can
instantiate both `OwnerToken` and `MasterToken` in a single transaction,
without having `OwnerToken` being responsible to instantiate
`MasterToken`.

This fixes the compilation issues and simplifies the constructor of
`OwnerToken`.

The new `CommunityTokenDeployer` contract is now responsble for
deploying the aforementioned tokens and ensures that they are deployed
within a single transaction.

To deploy an `OwnerToken` and `MasterToken` accounts can now call
`CommunityDeloyerToken.deploy(TokenConfig, TokenConfig,
DeploymentSignature)`.

The `DeploymentSignature` uses `EIP712` structured type hash data to let
the contract verify that the deployer is allowed to deploy the contracts
on behalf of a community account.
2023-09-19 11:39:55 +02:00
Andrea Franz e52eff0254
Merge pull request #6 from status-im/refactor/foundry-template
refactor: move project to foundry template and introduce tests
2023-09-19 10:12:24 +02:00
r4bbit c2f500c2e5
refactor: move project to foundry template and introduce tests
This commit does a couple of things:

- moves the project to our foundry template structure and workflows
- removes hardhat usage and dependencies
- removes unused contracts
- ports existing JS tests to foundry tests
- adds additional tests for `CommunityERC20` contract
- Introduces deploy scripts written in solidity which are also covered
  by tests

The projects can now be build and tests with:

```
$ forge build
```

```
$ forge test
```

Test deployments can be done via

```
$ forge script script/DeployOwnerToken.sol
```
2023-09-08 12:36:20 +02:00
r4bbit b112414fae
chore: trigger CI on pull request 2023-08-30 11:33:27 +02:00
r4bbit ab92006c26
Set up initial CI actions 2023-08-30 11:24:52 +02:00
0xb337r007 8d3f185bf4 update deploy script 2023-08-10 09:16:42 +02:00
0xb337r007 9c2d8527a1 mint Owner token in constructor 2023-08-10 09:10:17 +02:00
0xb337r007 dd24b30d89 add deploy script for OwnerToken 2023-07-21 10:04:02 +02:00
0xb337r007 14c9b0b627 rename setSignerPublicKey 2023-07-14 15:30:22 +02:00
0xb337r007 7a365b1be3 add signer public key to OwnerToken 2023-07-14 15:12:03 +02:00
0xb337r007 9110e8fc13 add MasterTokenCreated event 2023-07-14 15:07:04 +02:00
0xb337r007 d0fddfdd73 add Base, Owner, and Master tokens 2023-07-14 15:05:30 +02:00
0xb337r007 4eac7f1a69 add custom decimals to ERC20 2023-06-23 10:53:08 +02:00
0xb337r007 ac18c0424a add erc20 deploy script 2023-06-13 10:47:21 +02:00
0xb337r007 4ae35cba0f check addresses and amounts lengths 2023-06-12 13:27:56 +02:00
0xb337r007 00d77cda01 add CommunityERC20 2023-06-12 13:24:47 +02:00
0xb337r007 1569a17daa enable compiler optimizer to spend less gas top deploy 2023-05-29 17:00:42 +02:00
0xb337r007 3c14e5bf1c add mintedCount function 2023-05-26 12:58:18 +02:00
0xb337r007 a61981e403 fix max supply check 2023-05-26 11:27:58 +02:00
0xb337r007 631e880e44 add setMaxSupply 2023-05-25 18:09:15 +02:00
0xb337r007 ffdf5e9adc add specs 2023-05-17 23:15:45 +02:00
0xb337r007 c93335deb1 test burnable only by owner 2023-05-15 11:27:15 +02:00
0xb337r007 971aa54950 add test for remote burnable 2023-05-15 11:21:48 +02:00
0xb337r007 82d58524d1 don't transfer if it's a souldbound token 2023-05-15 11:21:08 +02:00
0xb337r007 fb0495bf5c burn multiple tokens 2023-04-28 16:39:21 +02:00
0xb337r007 a10b8ad16d import from old project 2023-01-19 12:21:41 +01:00