Contract Inheritance
The following diagram shows how the contracts inherit from one another. Click on a node to see the corresponding API.
Assets
graph TD
linkStyle default interpolate basis
SafeMath([SafeMath])
Outcome([Outcome])
IAssetHolder
AssetHolder
IERC20
ERC20AssetHolder
ETHAssetHolder
TESTAssetHolder
IAssetHolder--> AssetHolder
SafeMath-.-> AssetHolder
IERC20-.-> ERC20AssetHolder
Outcome-.-> AssetHolder
AssetHolder-->ETHAssetHolder
AssetHolder-->ERC20AssetHolder
AssetHolder-->TESTAssetHolder
classDef Library fill:#ffffff,stroke:#656664,stroke-dasharray: 5 5
classDef Contract fill:#ffffff,stroke:#656664;
classDef DeployedContract fill:#ffffff,stroke:#3531ff,stroke-width:3px;
classDef Abstraction fill:#ffffff,stroke:#8dc404,stroke-dasharray: 5 5;
classDef Interface fill:#ffffff,stroke:#de1065,stroke-dasharray: 5 5;
classDef TestContract fill:#fafe4f,stroke-width:0px
class SafeMath,Outcome Library;
class IAssetHolder,IERC20 Interface;
class AssetHolder,ETHAssetHolder,ERC20AssetHolder Contract;
class TESTAssetHolder TestContract;
class ETHAssetHolder,ERC20AssetHolder DeployedContract;
click SafeMath "/contract-api/natspec/SafeMath";
click Outcome "/contract-api/natspec/Outcome";
click AssetHolder "/contract-api/natspec/AssetHolder";
click ERC20AssetHolder "/contract-api/natspec/ERC20AssetHolder";
click ETHAssetHolder "/contract-api/natspec/ETHAssetHolder";
click IAssetHolder "/contract-api/natspec/IAssetHolder";
click TESTAssetHolder "/contract-api/natspec/TESTAssetHolder";
click IERC20 "/contract-api/natspec/IERC20";
Adjudication
graph TD
linkStyle default interpolate basis
Outcome([Outcome])
IAdjudicator
IForceMove
ForceMove
NitroAdjudicator
TESTForceMove
TESTNitroAdjudicator
IForceMoveApp-.-> ForceMove
IForceMove--> ForceMove
Outcome--> NitroAdjudicator
IAdjudicator--> NitroAdjudicator
ForceMove--> NitroAdjudicator
ForceMove-->TESTForceMove
NitroAdjudicator--> TESTNitroAdjudicator
classDef Contract fill:#ffffff,stroke:#656664;
classDef DeployedContract fill:#ffffff,stroke:#3531ff,stroke-width:3px;
classDef Abstraction fill:#ffffff,stroke:#8dc404,stroke-dasharray: 5 5
classDef Interface fill:#ffffff,stroke:#de1065,stroke-dasharray: 5 5
classDef TestContract fill:#fafe4f,stroke-width:0px;
classDef Library fill:#ffffff,stroke:#656664,stroke-dasharray: 5 5
class Outcome,SafeMath Library;
class IAdjudicator,IForceMoveApp,IForceMove Interface;
class ForceMove Contract;
class TESTForceMove,TESTNitroAdjudicator TestContract;
class NitroAdjudicator DeployedContract;
click IForceMoveApp "/contract-api/natspec/IForceMoveApp";
click SafeMath "/contract-api/natspec/SafeMath";
click Outcome "/contract-api/natspec/Outcome";
click IAdjudicator "/contract-api/natspec/IAdjudicator";
click ForceMove "/contract-api/natspec/ForceMove";
click IForceMove "/contract-api/natspec/IForceMove";
click NitroAdjudicator "/contract-api/natspec/NitroAdjudicator";
click Outcome "/contract-api/natspec/Outcome";
click SafeMath "/contract-api/natspec/SafeMath";
click TESTForceMove "/contract-api/natspec/TESTForceMove";
click TESTNitroAdjudicator "/contract-api/natspec/TESTNitroAdjudicator";
3rd Party
graph TD
linkStyle default interpolate basis
ERC20
IERC20
Token
CountingApp
IForceMoveApp
SingleAssetPayments
TrivialApp
IForceMoveApp-->CountingApp
IForceMoveApp-->TrivialApp
IForceMoveApp-->SingleAssetPayments
IERC20-->ERC20
ERC20-->Token
classDef Contract fill:#ffffff,stroke:#656664;
classDef DeployedContract fill:#ffffff,stroke:#3531ff,stroke-width:3px;
classDef Abstraction fill:#ffffff,stroke:#8dc404,stroke-dasharray: 5 5
classDef Interface fill:#ffffff,stroke:#de1065,stroke-dasharray: 5 5
classDef TestContract fill:#fafe4f,stroke-width:0px;
classDef fill:#ffffff,stroke:#656664,stroke-dasharray: 5 5
class Outcome,SafeMath Library;
class IForceMoveApp,IERC20 Interface;
class SingleAssetPayments,TrivialApp,CountingApp,ERC20 Contract;
class Token TestContract;
click CountingApp "/contract-api/natspec/CountingApp";
click ERC20 "/contract-api/natspec/ERC20";
click IForceMoveApp "/contract-api/natspec/IForceMoveApp";
click IERC20 "/contract-api/natspec/IERC20";
click Outcome "/contract-api/natspec/Outcome";
click SafeMath "/contract-api/natspec/SafeMath";
click SingleAssetPayments "/contract-api/natspec/SingleAssetPayments";
click Token "/contract-api/natspec/Token";
click TrivialApp "/contract-api/natspec/TrivialApp";
Key
graph TD
linkStyle default interpolate basis
Abstraction-->|Inherited by| Contract
Contract-->|Inherited by| TESTContract
Interface-->|Inherited by| Contract
Library([Library])-.->|Imported by| Contract
DeployedContract
classDef Contract fill:#ffffff,stroke:#656664;
classDef TestContract fill:#fafe4f,stroke-width:0px;
classDef Interface fill:#ffffff,stroke:#de1065,stroke-dasharray: 5 5
classDef Library fill:#ffffff,stroke:#656664,stroke-dasharray: 5 5
classDef DeployedContract fill:#ffffff,stroke:#3531ff,stroke-width:3px;
class Library Library;
class Contract Contract;
class TESTContract TestContract;
class Interface Interface;
class DeployedContract DeployedContract
TESTContracts
are only used in development.