RigoBlock allows the creation of decentralized token pools. Designed with applications in mind, the protocol allows for multiple applications for asset management to leverage on the same incentive mechanism.
It allows the on-chain organization of digital tokens, while at the same time allowing to leverage on (almost) any kind of external decentralized token swap mechanism.
The protocol is designed in a modular way and its core consists of the factories, which automatize the process of creating a token pools, keeping track of all token pools created in a global registry.
Drago.sol allows for the pooled organization of multiple tokens for multiple parties by leveraging external decentralized exchanges. When a user creates a Drago he becomes the "wizard" of the drago, which is a smart contract encoded to operate according to a predetermined set of rules.
DragoEventful.sol collects all logs on all dragos created. If you want to find all the events related to a specific drago or a set of dragos or all dragos, you can query the data from just 1 smart contract.
DragoRegistry.sol is a registry of all token pools created with the RigoBlock protocol. A user can query the registry to obtain the data of a specific token pool or a set of token pools.
Kyc.sol is an interface which can be implemented by any developer in their desired way. If enforced, a token pool operator is able to prevent non-whitelisted wallets to use the token pool he operates.
Vault.sol allows for the pooled organization of multiple tokens for multiple parties. Vaults act as costodial services for ETH and ERC20 tokens. Vaults operate as containers of tokens and have limited functionalities respect to Dragos.
VaultEventful.sol collects all logs on all vaults created. If you want to find all the events related to a specific vault or a set of vaults or all vaults, you can query the data from just 1 smart contract.
Authority.sol allows operating and setting some of the core functionalities of the RigoBlock protocol by a set of pre-approved authorities. In its own design, the protocol already embeds a governance system.
ExchangesAuthority.sol allows controlling the functionalities of the RigoBlock protocol related to the external decentralized exchanges by a set of pre-approved authorities. This part of the governance has been written in a separate contract to allow for more easy segregation of functions relevant to external dependencies.
DragoFactory.sol is a smart contract which is used to create Dragos and automatically register them in Registry.sol.
DragoFactoryLibrary.sol is a helper library which is used by the DragoFactory.sol contract. It is included in the DragoFactory.sol bytecode, hence direct interaction is neither needed nor possible.
VaultFactory.sol is a smart contract which is used to create Vaults and automatically register them in Registry.sol.
VaultFactoryLibrary.sol is a helper library which is used by the VaultFactory.sol contract. It is included in the VaultFactory.sol bytecode, hence direct interaction is neither needed nor possible.
NavVerifier.sol is a contract which checks whether the unitary value of a Drago is in line with the estimate of the protocol's authorities'.
SigVerifier.sol is a contract which checks whether a message has been signed by its expected signer. It is a requirement of one of the methods of the 0x V2 protocol, where a Wizard can trade on a 0x-based relayer on behalf of a smart contract based on the condition the specific smart contract confirms the offchain token swap is signed by the intended user, in the case of a Drago, its Wizard.
AERCdex.sol is an adapter contract which allows interaction with ERCDex
AEthfinex.sol is an adapter contract which allows interaction with Ethfinex Trustless
AWeth.sol is an adapter contract which allows interaction with Wrapped Ether
AZeroExV1Fork.sol is an adapter contract which allows interaction with a fork of 0x V1 which allows Wizards to swap tokens for the Dragos
AZeroExV2.sol is an adapter contract which allows interaction with 0x V2
Distribution is a PoC contract which can be used by external platforms to charge distribution fees
Faucet is a faucet contract to distribute a token when requested
Network is a helper contract which returns the aggregate value of the token pools created with the RigoBlock protocol
HGetDragoData is a helper contract which returns aggregate data of single of multiple token pools at once.
HGetMultipleBalances is a helper contracts which queries and returns balances of multiple tokens at once
HGetPools is a helper contract which returns arrays of data of the RigoBlock protocol token pools.
Inflation.sol determines at what conditions new Rigo tokens can be minted
RigoToken.sol is an ERC20 mintable token
ProofOfPerformance.sol is accountable for keeping track of collect calculations of the Proof of Performance rewards
ERC20.sol is an ERC20 token token smart contract
ERC20Old.sol is a previous ERC20 standard token which does not return a boolean on transfers
UnlimitedAllowanceToken.sol executes a transfer only if the allowance is lower than the biggest number accepted by solidity
WETH9.sol is the Ether wrapper contract
WrapperLock.sol is the Ethfinex Trustless wrapper for ERC20 tokens token with lockup
WrapperLockEth.sol is the Ethfinex Trustless wrapper Ether token with lockup
LibFindMethod.sol returns a method of an ABI-encoded transaction
LibSanitize.sol is a library which can be used to sanitize a string. It prevents injecting non-intended characters as a name or symbol in the DragoRegistry.sol. It can be used to check if a character is uppercase or lowercase.
Owned.sol allows a contract to be controlled by a specific address
OwnedUninitialized.sol allows a contract to be controlled by a specific address without initializing the owner at deployment
PoolFace.sol is the generic interface common to all token pools of the RigoBlock protocol
ReentrancyGuard.sol is a contract which prevent reentrancy attacks
SafeMath.sol is a contract for performing mathematical calculations
SafeMathLight.sol is a simplified and shorter version of SafeMath.sol
TokenTransferProxy.sol is the 0x token transfer proxy contract
ExchangeEfx.sol is the Ethfinex Trustless settlement contract
ExchangeV1Fork.sol is the 0x V1 fork which allows operating from smart contracts owners.