Amount<K, M>: K extends "nat"
    ? NatAmount
    : K extends "set"
        ? SetAmount<M>
        : K extends "copySet"
            ? CopySetAmount<M>
            : K extends "copyBag"
                ? CopyBagAmount<M>
                : AnyAmount

Amounts are descriptions of digital assets, answering the questions "how much" and "of what kind". Amounts are values labeled with a brand. AmountMath executes the logic of how amounts are changed when digital assets are merged, separated, or otherwise manipulated. For example, a deposit of 2 bucks into a purse that already has 3 bucks gives a new purse balance of 5 bucks. An empty purse has 0 bucks. AmountMath relies heavily on polymorphic MathHelpers, which manipulate the unbranded portion.

Type Parameters