Options
All
  • Public
  • Public/Protected
  • All
Menu
description

This class contains the implementation of the referral contract which is used to discover new users invitations in the dApp.

Use this class whenever you are interpreting an operation of referral for your dApp. Also, an instance of this class is created using Factory.createFromJSON given a contract signature that matches: /:referral$/ (ends with).

Parameters

Following inputs apply to the Referral contract class:

Input Type Required? Description
dappIdentifier string Required The dApp identifier, e.g. "elevate".
refCode string Required The referral code for this operation, e.g. "ELEVATE2022".



example

Using the Referral contract class

// creating a referral contract
const contract: Referral = new Referral({
dappIdentifier: "elevate",
refCode: "ELEVATE2022",
});



Other links

ReferralParameters | Contract | Factory

since

v0.3.0

Hierarchy

Index

Constructors

  • Construct a referral contract. Note that some of the inputs are required.

    The referral contract requires inputs including the dappIdentifier and refCode for the operation, refer to the above parameters description for more details.

    access

    public

    Parameters

    • inputs: ReferralParameters

      The inputs that are used during execution ("arguments").

    • version: number = 1

      (Optional) The contract version number (defaults to 1).

    • parameters: NetworkParameters = ...

      (Optional) The network parameters ("connection").

    Returns Referral

Properties

parameters: NetworkParameters = ...
version: number = 1

Accessors

  • This method should return an ObjectLiteral that consists of the body of the contract, e.g. in the Referral contract the body contains a refCode (referral code).

    In the referral contract, we always include the refCode field.

    Note that by modifying the required fields of a contract's body, you must also update the version of the contract to prevent inconsistencies in operations.

    access

    public

    abstract

    Returns ObjectLiteral

    An object that consists of custom fields related to the scope of the contract.

  • get dApp(): string
  • This getter method transforms the provided dappIdentifier input into a slug. The characters set for valid slugs includes: lowercase alpha-numerical characters, underscores and hyphens. Additionally, multiple hyphens in a series are replaced for single hyphens.

    This method is used internally to determine a dapp identifier that is compliant to a strict characters set.

    access

    private

    Returns string

    A slugified dApp identifier as present on-chain.

  • This getter method prepares the contract header. The header consists of the contract signature and version of the contract.

    The contract header is always attached to contracts using the toJSON method.

    access

    public

    Returns ObjectLiteral

    An object that consists of the contract signature and version.

  • get identifier(): string
  • This method should return a string that is used as the identifier of the contract being executed.

    This identifier will be concatenated with the dApp identifier to form the contract signature.

    This method should return an identifier that is unique across one dApp, i.e. it is OK to re-define an earn contract in a different dApp than elevate.

    access

    public

    abstract

    Returns string

    A contract identifier as present on-chain in the contract signature.

  • This getter method returns the contract payload as it is attached inside transfer transaction messages.

    This method is used internally to determine a contract payload that is used to produce JSON in toJSON.

    access

    public

    Returns ObjectLiteral

    A full contract payload (with "contract" and "version").

  • get signature(): string
  • This getter method returns the contract signature as it is attached inside contracts' JSON payloads.

    This method is used internally to determine a contract signature that is included in the contract header.

    access

    public

    Returns string

    A contract signature, e.g. "elevate:auth".

Methods

  • Helper method that creates an Address instance out of transaction parameters. Parameters may include a recipientPublicKey or a recipientAddress. If both are provided, the recipientAddress takes precedence.

    Note that in the case of providing a `recipientPublicKey, this method uses the internal Contract.parameters to determine the network identifier.

    Parameters

    • parameters: TransactionParameters

      A configuration object that is passed to the creation process of the dHealth Network Transaction.

    Returns Address

    A dHealth Network Account Address from @dhealth/sdk.

  • toJSON(): string
  • This method creates a JSON payload using the contract header and the custom body fields, as defined in child classes.

    Note that the resulting string is attached as is to the transfer transaction on dHealth Network.

    access

    public

    Returns string

    A JSON payload that can be attached to transfer transactions.

  • This method should return a prepared Transaction object from @dhealth/sdk. This transaction will not be broadcast or signed yet and this method can be called without requiring an internet connection ("off-line").

    Note that by modifying the transaction that is created when executing a contract, you must also update the version of the contract to prevent inconsistencies in operations.

    access

    public

    abstract

    Parameters

    • parameters: TransactionParameters

      A configuration object that is passed to the creation process of the dHealth Network Transaction.

    Returns TransferTransaction

    A prepared (but unsigned) dHealth Network Transaction.

  • This method uses a Transaction child class from which it reads the contract JSON payload.

    Invalid JSON errors will trigger the InvalidContractError exception to be thrown.

    This method is used internally to transform a Transaction object into an ObjectLiteral by making sure that the JSON payload uses valid JSON formatting rules and lives inside either of: the transfer transaction message or the aggregate bundle's first transfer transaction's message.

    access

    protected

    throws

    {InvalidContractError} Given no contract JSON payload is found or given a contract JSON payload that contains invalid JSON and could not get parsed into a contract.

    Parameters

    • transaction: Transaction

      A transaction object that contains the full definition of the executed contract.

    Returns ObjectLiteral

    A parsed contract consists of an object of type ObjectLiteral.

Generated using TypeDoc