Skip to content

Commit

Permalink
Merge branch 'dev' into ab96-auctions
Browse files Browse the repository at this point in the history
  • Loading branch information
0xPilou committed Oct 2, 2023
2 parents 1afbea1 + fe91fa8 commit 5200eb0
Show file tree
Hide file tree
Showing 20 changed files with 1,379 additions and 967 deletions.
52 changes: 51 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,36 @@
# <img src="ab-logo.png" alt="anotherblock" height="40px" align="left"> anotherblock platform contracts

## contribution workflow

### branches

this git repository is composed of two main branches and feature branches :

#### latest

`latest` branch is synchronized with the latest contracts deployed on _mainnet_.
_after every mainnet deployment and/or upgrade_, a pull request from `dev` to `latest` must be initiated and merged.
this branch is the reference for any integration with other sub-systems, i.e. frontend, subgraphs, and so on.

#### dev

`dev` branch is accumulating and consolidating all the new features, bug fixes and upgrades that are _not yet deployed on mainnet_.
_mainnet deployment must be initiated_ from `dev` branch only after the end-to-end tests have been successfully conducted on testnet.
_testnet deployment must be initiated_ from `dev` branch.

#### feature branches

feature branches are created every time a new feature, bug fix or upgrade must be developped.
feature branches are created from `dev` branch.
feature branches naming convention is `abXXX-featName` where XXX is the Linear Ticket ID and featName is a brief feature description.
a feature branch can be merge to `dev` _only if all required units tests have been conducted and passed_ and after approval from relevant stakeholders that the feature, bug fix or upgrade will be fit for deployement on mainnet.

### tags

_after every mainnet deployment and/or upgrade_, a tag must be created
tag naming convention is `vX.Y` where X & Y are digits.
we increment `X` for major update while we increment `Y` for small update or patches.

## install foundry

[foundry installation procedure](https://book.getfoundry.sh/getting-started/installation)
Expand Down Expand Up @@ -106,7 +137,6 @@ deploy standalone royalty contract for specific publisher

### base mainnet :


simulate platform deployment :

```sh
Expand All @@ -130,3 +160,23 @@ deploy standalone royalty contract for specific publisher
```sh
forge script script/base/deploy-royalty.s.sol:DeployRoyalty --rpc-url base --sig "run(address)" <publisherAddress> --broadcast --verify
```

## contribute

### creating new NFT minting mechanism

in order for anyone to create new minting mechanism NFT contract compatible with anotherblock self-service platform, the contract must comply with below requirements :

1. the new contract shall inherit the abstract contract [ERC721AB](src/token/ERC721/ERC721AB.sol)

2. the new contract state shall include two constants, `IMPLEMENTATION_VERSION` & `IMPLEMENTATION_TYPE`

3. the new contract shall include a function `initDrop` calling the internal function `_initDrop` and contain a minimum set of parameters :

- amount of share per token
- amount of genesis token to be minted
- recipient address of the genesis token(s)
- currency used to pay-out royalties
- base URI

4. the new contract shall include a custom mint function (see [ERC721ABLE](src/token//ERC721/ERC721ABLE.sol) for reference)
Loading

0 comments on commit 5200eb0

Please sign in to comment.