Skip to content

Basic Contract Functions

Hart Lambur edited this page Jul 24, 2018 · 5 revisions

Abstract


The following standard specification outlines the core functions required for the bilateral derivative smart contract as originally specified in the TRS whitepaper.

Motivation


Specification


  • Core Contract Functions:
    • function remargin() external returns (bool success) Does the following:

      1. Call calcNPV() to determine the current contract value;
      2. Move funds between the margin and escrow accounts such that the escrow balance equals the current NPV;
      3. Call terminate() to determine if the contract should be terminated.
    • function calcNPV() internal returns (bool success) Recalculates the economic terms of the function.

    • function withdraw(address _destination, uint _amount) external returns (bool success) Allows either the maker or taker to withdraw funds from their respective margin accounts into their public wallet addresses.

    • function deposit(address _destination) external returns (bool success); Transfers incoming funds into the margin account of either the maker or taker.

    • function terminate() external returns (bool success) Does the following:

      1. Call calcNPV() to determine the current contract value;
      2. Move funds between the margin and escrow accounts such that the escrow balance equals the current NPV;
      3. Call terminate() to determine if the contract should be terminated.