# ExtendedAsset

An extended asset is a representation of a token's amount, symbol, precision and a contract name.

# Constructors

  • constructor(
      public quantity: Asset,
      public contract: Name
    )
    

    quantity - The Asset object.

    Example: Asset.fromString("1.0000 XPR")

    contract - The Name object with for the contract

    Example: Name.fromString('mycontract')

    Example:

      import { ExtendedAsset, Asset, Name } from 'proton-tsc'
      const asset = Asset.fromString("1.0000 XPR");
      const contract =  Name.fromString('mycontract');
      
      const extendedAsset = new ExtendedAsset(asset, contract)
    

  • static fromInteger(v: i64, s: ExtendedSymbol): ExtendedAsset
    

    Creates new symbol from i64 number and ExtendedSymbol

    Example:

      const symbol = new Symbol("XPR", 4);
      const contract = Name.fromString('mycontract');
      const extendedSymbol = new ExtendedSymbol(symbol, contract);
    
      const extendedAsset = ExtendedAsset.fromInteger(1000, extendedSymbol);
    

# Instance Methods

  • function getExtendedSymbol(): ExtendedSymbol
    

    Returns the ExtendedSymbol object based on the current asset

  • function toString(): string
    

    Returns the extended asset as a string in format quantity sign@contract. Uses toString method on Asset object for the part before @ sign.

    Example:

    const symbol = new Symbol(6, "XUSDC");
    const asset = new Asset(1000000, symbol);
    const contract = Name.fromString('mycontract');
    
    const extendedAsset = new ExtendedAsset(asset, contract)
    print(extendedAsset.toString()) // 1.000000 XUSDC@mycontract
    

# Static Methods

  • static function add(a: ExtendedAsset, b: ExtendedAsset): ExtendedAsset
    

    Adds two extended assets with the same symbol and contract and returns a new extended assets with amount a + b

    Throws if:

    • Asset contracts do not match
    • Asset symbols do not match
    • (a + b) underflows i64
    • (a + b) overflows i64
  • static function sub(a: ExtendedAsset, b: ExtendedAsset): ExtendedAsset
    

    Substracts two extended assets with the same symbol and contract and returns a new extended asset with amount a - b

    Throws if:

    • Asset contracts do not match
    • Asset symbols do not match
    • (a - b) underflows i64
    • (a - b) overflows i64
  • static function eq(a: ExtendedAsset, b: ExtendedAsset): bool
    

    Checks that the amounts of two assets are equal

    Throws if:

    • Asset symbols do not match
  • static function neq(a: ExtendedAsset, b: ExtendedAsset): bool
    

    Checks that the amounts of two assets are not equal and the contracts of two assets are not equal

    Throws if:

    • Asset symbols do not match
  • static function lt(a: ExtendedAsset, b: ExtendedAsset): bool
    

    Checks that the amounts of a is less than b

    Throws if:

    • Asset contracts do not match
    • Asset symbols do not match
  • static function gt(a: ExtendedAsset, b: ExtendedAsset): bool
    

    Checks that the amounts of a is greater than b

    Throws if:

    • Asset contracts do not match
    • Asset symbols do not match
  • static function lte(a: Asset, b: Asset): bool
    

    Checks that the amounts of a is less than or equal to b

    Throws if:

    • Asset contracts do not match
    • Asset symbols do not match
  • static function gte(a: Asset, b: Asset): bool
    

    Checks that the amounts of a is greater than or equal to b

    Throws if:

    • Asset contracts do not match
    • Asset symbols do not match