Skip to content

Commit

Permalink
Merge pull request #33 from valory-xyz/contribute
Browse files Browse the repository at this point in the history
feat: contribute contracts stack
  • Loading branch information
kupermind authored Oct 24, 2024
2 parents 1281c6f + 33044d6 commit e752848
Show file tree
Hide file tree
Showing 73 changed files with 7,171 additions and 122 deletions.
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,37 @@ The audit is provided as development matures. The latest audit report can be fou
- Create staking proxy instance on [Launch](https://launch.olas.network/);
- Vote for staking contracts on [Govern](https://govern.olas.network/).

## Contribute Architecture
```mermaid
---
title: Contribute Architecture
---
flowchart LR
DAO -- changeManager --> ContributorsProxy
DAO -- setContributeServiceStatuses --> ContributorsProxy
DAO -- changeOwner --> ContributorsProxy
User -- createAndStake --> ContributeManager
User -- stake --> ContributeManager
User -- unstake --> ContributeManager
User -- claim --> ContributeManager
ContributeService -- checkpoint --> StakingInstance -- getNonces --> ContributeActivityChecker
User -- approve --> OLAS
ContributeManager -- create --> StakingRegistryL2
StakingRegistryL2 -- mint --> ERC721
ContributeManager -- stake --> StakingInstance
ContributeManager -- unstake --> StakingInstance
ContributeManager -- claim --> StakingInstance
subgraph Service registry contracts
StakingInstance
StakingRegistryL2
end
subgraph Contribute contracts
ContributeService -- increaseActivity --> ContributorsProxy
ContributorsProxy -- delegatecall --> Contributors
ContributeManager -- setServiceInfoForId --> ContributorsProxy
ContributeActivityChecker -- mapMutisigActivities --> ContributorsProxy
end
```

## Acknowledgements
The staking programmes contracts were inspired and based on the following sources:
Expand Down
111 changes: 111 additions & 0 deletions abis/0.8.28/ContributeActivityChecker.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
{
"_format": "hh-sol-artifact-1",
"contractName": "ContributeActivityChecker",
"sourceName": "contracts/contribute/ContributeActivityChecker.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_contributorsProxy",
"type": "address"
},
{
"internalType": "uint256",
"name": "_livenessRatio",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "ZeroAddress",
"type": "error"
},
{
"inputs": [],
"name": "ZeroValue",
"type": "error"
},
{
"inputs": [],
"name": "contributorsProxy",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "multisig",
"type": "address"
}
],
"name": "getMultisigNonces",
"outputs": [
{
"internalType": "uint256[]",
"name": "nonces",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "curNonces",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "lastNonces",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "ts",
"type": "uint256"
}
],
"name": "isRatioPass",
"outputs": [
{
"internalType": "bool",
"name": "ratioPass",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "livenessRatio",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60c060405234801561000f575f5ffd5b506040516106a53803806106a583398101604081905261002e9161008b565b6001600160a01b0382166100555760405163d92e233d60e01b815260040160405180910390fd5b805f0361007557604051637c946ed760e01b815260040160405180910390fd5b6001600160a01b0390911660a0526080526100c2565b5f5f6040838503121561009c575f5ffd5b82516001600160a01b03811681146100b2575f5ffd5b6020939093015192949293505050565b60805160a0516105b66100ef5f395f818160b0015261024f01525f8181607b01526101bb01526105b65ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063184023a51461004e578063592cf3fb14610076578063cf449c8c146100ab578063d564c4bf146100f7575b5f5ffd5b61006161005c3660046103c4565b610117565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161006d565b6100d27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61010a610105366004610432565b6101e7565b60405161006d9190610465565b5f5f821180156101585750825f81518110610134576101346104a7565b6020026020010151845f8151811061014e5761014e6104a7565b6020026020010151115b156101e0575f82845f81518110610171576101716104a7565b6020026020010151865f8151811061018b5761018b6104a7565b602002602001015161019d9190610501565b6101af90670de0b6b3a764000061051a565b6101b99190610531565b7f000000000000000000000000000000000000000000000000000000000000000011159150505b9392505050565b60408051600180825281830190925260609160208083019080368337019050506040517f4990408f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529192507f000000000000000000000000000000000000000000000000000000000000000090911690634990408f90602401602060405180830381865afa158015610296573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ba9190610569565b815f815181106102cc576102cc6104a7565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610319575f5ffd5b813567ffffffffffffffff811115610333576103336102dd565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff8211171561037e5761037e6102dd565b60405291825260208185018101929081018684111561039b575f5ffd5b6020860192505b838310156103ba5782358152602092830192016103a2565b5095945050505050565b5f5f5f606084860312156103d6575f5ffd5b833567ffffffffffffffff8111156103ec575f5ffd5b6103f88682870161030a565b935050602084013567ffffffffffffffff811115610414575f5ffd5b6104208682870161030a565b93969395505050506040919091013590565b5f60208284031215610442575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff811681146101e0575f5ffd5b602080825282518282018190525f918401906040840190835b8181101561049c57835183526020938401939092019160010161047e565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610514576105146104d4565b92915050565b8082028115828204841417610514576105146104d4565b5f82610564577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f60208284031215610579575f5ffd5b505191905056fea2646970667358221220c7556e84f3cf30fb114d0400ba7bbbdec815e69ed36086ee40e0e334d4a7720064736f6c634300081c0033",
"deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063184023a51461004e578063592cf3fb14610076578063cf449c8c146100ab578063d564c4bf146100f7575b5f5ffd5b61006161005c3660046103c4565b610117565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161006d565b6100d27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61010a610105366004610432565b6101e7565b60405161006d9190610465565b5f5f821180156101585750825f81518110610134576101346104a7565b6020026020010151845f8151811061014e5761014e6104a7565b6020026020010151115b156101e0575f82845f81518110610171576101716104a7565b6020026020010151865f8151811061018b5761018b6104a7565b602002602001015161019d9190610501565b6101af90670de0b6b3a764000061051a565b6101b99190610531565b7f000000000000000000000000000000000000000000000000000000000000000011159150505b9392505050565b60408051600180825281830190925260609160208083019080368337019050506040517f4990408f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529192507f000000000000000000000000000000000000000000000000000000000000000090911690634990408f90602401602060405180830381865afa158015610296573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ba9190610569565b815f815181106102cc576102cc6104a7565b602002602001018181525050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610319575f5ffd5b813567ffffffffffffffff811115610333576103336102dd565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff8211171561037e5761037e6102dd565b60405291825260208185018101929081018684111561039b575f5ffd5b6020860192505b838310156103ba5782358152602092830192016103a2565b5095945050505050565b5f5f5f606084860312156103d6575f5ffd5b833567ffffffffffffffff8111156103ec575f5ffd5b6103f88682870161030a565b935050602084013567ffffffffffffffff811115610414575f5ffd5b6104208682870161030a565b93969395505050506040919091013590565b5f60208284031215610442575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff811681146101e0575f5ffd5b602080825282518282018190525f918401906040840190835b8181101561049c57835183526020938401939092019160010161047e565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610514576105146104d4565b92915050565b8082028115828204841417610514576105146104d4565b5f82610564577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f60208284031215610579575f5ffd5b505191905056fea2646970667358221220c7556e84f3cf30fb114d0400ba7bbbdec815e69ed36086ee40e0e334d4a7720064736f6c634300081c0033",
"linkReferences": {},
"deployedLinkReferences": {}
}
Loading

0 comments on commit e752848

Please sign in to comment.