Skip to content

XFT's algorithmic post-trade process against SDC state machine

Notifications You must be signed in to change notification settings

amr080/Smart-Derivatives

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

X Financial Technologies

ERC-6123, Smart Derivative Contract

XFT Smart Derivatives

Description

The reference SDC implementation can be unit tested with Hardhat to understand the trade process logic.

Compile and run tests with Hardhat

We provide the essential steps to compile the contracts and run the provided unit tests.

Provided Contracts and Tests

  • contracts/ISDC.sol - Interface contract
  • contracts/SDC.sol - SDC abstract contract for an OTC Derivative
  • contracts/SDCPledgedBalance.sol - SDC full implementation for an OTC Derivative
  • contracts/IERC20Settlement.sol - Interface (extending the ERC-20) for settlement tokens used in SDCPledgedBalance.
  • contracts/ERC20Settlement.sol - Mintable settlement token contract implementing IERC20Settlement for unit tests
  • test/SDCTests.js - Unit tests for the life-cycle of the sdc implementation

Compile and run tests with Hardhat

Install dependencies:

npm i

Compile:

npx hardhat compile

Run all tests:

npx hardhat test

Configuration files

  • package.js - Javascript package definition.
  • hardhat.config.js - Hardhat config.

Used javascript-based testing libraries for solidity

  • ethereum-waffle: Waffle is a Solidity testing library. It allows you to write tests for your contracts with JavaScript.
  • chai: Chai is an assertion library and provides functions like expect.
  • ethers: This is a popular Ethereum client library. It allows you to interface with blockchains that implement the Ethereum API.
  • solidity-coverage: This library gives you coverage reports on unit tests with the help of Istanbul.