code.vegaprotocol.io/vega@v0.79.0/protos/sources/vega/assets.proto (about)

     1  syntax = "proto3";
     2  
     3  package vega;
     4  
     5  option go_package = "code.vegaprotocol.io/vega/protos/vega";
     6  
     7  // Vega representation of an external asset
     8  message Asset {
     9    enum Status {
    10      // Default value, always invalid
    11      STATUS_UNSPECIFIED = 0;
    12      // Asset is proposed and under vote
    13      STATUS_PROPOSED = 1;
    14      // Asset has been rejected from governance
    15      STATUS_REJECTED = 2;
    16      // Asset is pending listing from the bridge
    17      STATUS_PENDING_LISTING = 3;
    18      // Asset is fully usable in the network
    19      STATUS_ENABLED = 4;
    20    }
    21  
    22    // Internal identifier of the asset.
    23    string id = 1;
    24    // Definition of the external source for this asset.
    25    AssetDetails details = 2;
    26    // Status of the asset.
    27    Status status = 3;
    28  }
    29  
    30  // Vega representation of an external asset
    31  message AssetDetails {
    32    reserved 3;
    33  
    34    // Name of the asset (e.g: Great British Pound).
    35    string name = 1;
    36    // Symbol of the asset (e.g: GBP).
    37    string symbol = 2;
    38    // Number of decimal / precision handled by this asset.
    39    uint64 decimals = 4;
    40    // Minimum economically meaningful amount in the asset.
    41    string quantum = 5;
    42  
    43    // Source of the asset
    44    oneof source {
    45      // Vega built-in asset.
    46      BuiltinAsset builtin_asset = 101;
    47      // Ethereum ERC20 asset.
    48      ERC20 erc20 = 102;
    49    }
    50  }
    51  
    52  // Vega internal asset
    53  message BuiltinAsset {
    54    // Maximum amount that can be requested by a party through the built-in asset faucet at a time.
    55    string max_faucet_amount_mint = 1;
    56  }
    57  
    58  // ERC20 token based asset, living on the ethereum network
    59  message ERC20 {
    60    // Address of the contract for the token, on the ethereum network.
    61    string contract_address = 1;
    62    // Lifetime limits deposit per address
    63    // note: this is a temporary measure that can be changed by governance.
    64    string lifetime_limit = 2;
    65    // Maximum you can withdraw instantly. All withdrawals over the threshold will be delayed by the withdrawal delay.
    66    // There’s no limit on the size of a withdrawal
    67    // note: this is a temporary measure that can be changed by governance.
    68    string withdraw_threshold = 3;
    69    // Chain ID the asset originated from.
    70    string chain_id = 4;
    71  }
    72  
    73  // Changes to apply on an existing asset.
    74  message AssetDetailsUpdate {
    75    reserved 1, 2, 3, 4;
    76    // Minimum economically meaningful amount in the asset.
    77    string quantum = 5;
    78  
    79    // Source of the asset update
    80    oneof source {
    81      // Ethereum ERC20 asset update.
    82      ERC20Update erc20 = 101;
    83    }
    84  }
    85  
    86  message ERC20Update {
    87    // Lifetime limits deposit per address.
    88    // This will be interpreted against the asset decimals.
    89    // note: this is a temporary measure that can be changed by governance.
    90    string lifetime_limit = 1;
    91    // Maximum you can withdraw instantly. All withdrawals over the threshold will be delayed by the withdrawal delay.
    92    // There’s no limit on the size of a withdrawal
    93    // note: this is a temporary measure that can be changed by governance.
    94    string withdraw_threshold = 2;
    95  }