Class TradingAccount

Implements

Constructors

  • Parameters

    • publicKey: PublicKey
    • parseData: DecodeStruct<{
          fields: [{
              name: "nftMint";
              type: "publicKey";
          }, {
              name: "owner";
              type: "publicKey";
          }, {
              name: "delegate";
              type: "publicKey";
          }, {
              name: "isInitialized";
              type: "bool";
          }, {
              name: "level";
              type: "u8";
          }, {
              name: "bump";
              type: "u8";
          }, {
              name: "voltagePoints";
              type: "u64";
          }];
          kind: "struct";
      }, RecursiveDepth4<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: "OracleParams";
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: "PricingParams";
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: "Permissions";
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: "Fees";
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: "BorrowRateParams";
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: {
                          defined: "TokenRatios";
                      };
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], DecodedHelper<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: "OracleParams";
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: "PricingParams";
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: "Permissions";
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: "Fees";
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: "BorrowRateParams";
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: {
                          defined: "TokenRatios";
                      };
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], DecodedHelper<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: "OracleParams";
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: "PricingParams";
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: "Permissions";
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: "Fees";
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: "BorrowRateParams";
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: {
                          defined: ...;
                      };
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], DecodedHelper<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: ...;
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], EmptyDefined>>>>>

    Returns TradingAccount

Properties

bump: number
counter: BN
delegate: PublicKey
isInitialized: boolean
level: number
nftMint: PublicKey
owner: PublicKey
padding: BN[]
publicKey: PublicKey
snapshot: DecodeStruct<{
    fields: [{
        name: "volumeUsd";
        type: "u128";
    }, {
        name: "lpRewardsUsd";
        type: "u128";
    }, {
        name: "referralRebateUsd";
        type: "u128";
    }];
    kind: "struct";
}, DecodedHelper<[{
    name: "AddCollateralParams";
    type: {
        fields: [{
            name: "collateralDelta";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCollectionParams";
    type: {
        fields: [];
        kind: "struct";
    };
}, {
    name: "AddCompoundingLiquidityParams";
    type: {
        fields: [{
            name: "amountIn";
            type: "u64";
        }, {
            name: "minCompoundingAmountOut";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCustodyParams";
    type: {
        fields: [{
            name: "isStable";
            type: "bool";
        }, {
            name: "depegAdjustment";
            type: "bool";
        }, {
            name: "isVirtual";
            type: "bool";
        }, {
            name: "oracle";
            type: {
                defined: "OracleParams";
            };
        }, {
            name: "pricing";
            type: {
                defined: "PricingParams";
            };
        }, {
            name: "permissions";
            type: {
                defined: "Permissions";
            };
        }, {
            name: "fees";
            type: {
                defined: "Fees";
            };
        }, {
            name: "borrowRate";
            type: {
                defined: "BorrowRateParams";
            };
        }, {
            name: "ratios";
            type: {
                vec: {
                    defined: "TokenRatios";
                };
            };
        }];
        kind: "struct";
    };
}, {
    name: "AddInternalOracleParams";
    type: {
        fields: [];
        kind: "struct";
    };
}], DecodedHelper<[{
    name: "AddCollateralParams";
    type: {
        fields: [{
            name: "collateralDelta";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCollectionParams";
    type: {
        fields: [];
        kind: "struct";
    };
}, {
    name: "AddCompoundingLiquidityParams";
    type: {
        fields: [{
            name: "amountIn";
            type: "u64";
        }, {
            name: "minCompoundingAmountOut";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCustodyParams";
    type: {
        fields: [{
            name: "isStable";
            type: "bool";
        }, {
            name: "depegAdjustment";
            type: "bool";
        }, {
            name: "isVirtual";
            type: "bool";
        }, {
            name: "oracle";
            type: {
                defined: "OracleParams";
            };
        }, {
            name: "pricing";
            type: {
                defined: "PricingParams";
            };
        }, {
            name: "permissions";
            type: {
                defined: "Permissions";
            };
        }, {
            name: "fees";
            type: {
                defined: "Fees";
            };
        }, {
            name: "borrowRate";
            type: {
                defined: "BorrowRateParams";
            };
        }, {
            name: "ratios";
            type: {
                vec: {
                    defined: "TokenRatios";
                };
            };
        }];
        kind: "struct";
    };
}, {
    name: "AddInternalOracleParams";
    type: {
        fields: [];
        kind: "struct";
    };
}], DecodedHelper<[{
    name: "AddCollateralParams";
    type: {
        fields: [{
            name: "collateralDelta";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCollectionParams";
    type: {
        fields: [];
        kind: "struct";
    };
}, {
    name: "AddCompoundingLiquidityParams";
    type: {
        fields: [{
            name: "amountIn";
            type: "u64";
        }, {
            name: "minCompoundingAmountOut";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCustodyParams";
    type: {
        fields: [{
            name: "isStable";
            type: "bool";
        }, {
            name: "depegAdjustment";
            type: "bool";
        }, {
            name: "isVirtual";
            type: "bool";
        }, {
            name: "oracle";
            type: {
                defined: "OracleParams";
            };
        }, {
            name: "pricing";
            type: {
                defined: "PricingParams";
            };
        }, {
            name: "permissions";
            type: {
                defined: "Permissions";
            };
        }, {
            name: "fees";
            type: {
                defined: "Fees";
            };
        }, {
            name: "borrowRate";
            type: {
                defined: "BorrowRateParams";
            };
        }, {
            name: "ratios";
            type: {
                vec: {
                    defined: ...;
                };
            };
        }];
        kind: "struct";
    };
}, {
    name: "AddInternalOracleParams";
    type: {
        fields: [];
        kind: "struct";
    };
}], EmptyDefined>>>>

Type declaration

  • fields: [{
        name: "volumeUsd";
        type: "u128";
    }, {
        name: "lpRewardsUsd";
        type: "u128";
    }, {
        name: "referralRebateUsd";
        type: "u128";
    }]
  • kind: "struct"
stats: DecodeStruct<{
    fields: [{
        name: "volumeUsd";
        type: "u128";
    }, {
        name: "lpRewardsUsd";
        type: "u128";
    }, {
        name: "referralRebateUsd";
        type: "u128";
    }];
    kind: "struct";
}, DecodedHelper<[{
    name: "AddCollateralParams";
    type: {
        fields: [{
            name: "collateralDelta";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCollectionParams";
    type: {
        fields: [];
        kind: "struct";
    };
}, {
    name: "AddCompoundingLiquidityParams";
    type: {
        fields: [{
            name: "amountIn";
            type: "u64";
        }, {
            name: "minCompoundingAmountOut";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCustodyParams";
    type: {
        fields: [{
            name: "isStable";
            type: "bool";
        }, {
            name: "depegAdjustment";
            type: "bool";
        }, {
            name: "isVirtual";
            type: "bool";
        }, {
            name: "oracle";
            type: {
                defined: "OracleParams";
            };
        }, {
            name: "pricing";
            type: {
                defined: "PricingParams";
            };
        }, {
            name: "permissions";
            type: {
                defined: "Permissions";
            };
        }, {
            name: "fees";
            type: {
                defined: "Fees";
            };
        }, {
            name: "borrowRate";
            type: {
                defined: "BorrowRateParams";
            };
        }, {
            name: "ratios";
            type: {
                vec: {
                    defined: "TokenRatios";
                };
            };
        }];
        kind: "struct";
    };
}, {
    name: "AddInternalOracleParams";
    type: {
        fields: [];
        kind: "struct";
    };
}], DecodedHelper<[{
    name: "AddCollateralParams";
    type: {
        fields: [{
            name: "collateralDelta";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCollectionParams";
    type: {
        fields: [];
        kind: "struct";
    };
}, {
    name: "AddCompoundingLiquidityParams";
    type: {
        fields: [{
            name: "amountIn";
            type: "u64";
        }, {
            name: "minCompoundingAmountOut";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCustodyParams";
    type: {
        fields: [{
            name: "isStable";
            type: "bool";
        }, {
            name: "depegAdjustment";
            type: "bool";
        }, {
            name: "isVirtual";
            type: "bool";
        }, {
            name: "oracle";
            type: {
                defined: "OracleParams";
            };
        }, {
            name: "pricing";
            type: {
                defined: "PricingParams";
            };
        }, {
            name: "permissions";
            type: {
                defined: "Permissions";
            };
        }, {
            name: "fees";
            type: {
                defined: "Fees";
            };
        }, {
            name: "borrowRate";
            type: {
                defined: "BorrowRateParams";
            };
        }, {
            name: "ratios";
            type: {
                vec: {
                    defined: "TokenRatios";
                };
            };
        }];
        kind: "struct";
    };
}, {
    name: "AddInternalOracleParams";
    type: {
        fields: [];
        kind: "struct";
    };
}], DecodedHelper<[{
    name: "AddCollateralParams";
    type: {
        fields: [{
            name: "collateralDelta";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCollectionParams";
    type: {
        fields: [];
        kind: "struct";
    };
}, {
    name: "AddCompoundingLiquidityParams";
    type: {
        fields: [{
            name: "amountIn";
            type: "u64";
        }, {
            name: "minCompoundingAmountOut";
            type: "u64";
        }];
        kind: "struct";
    };
}, {
    name: "AddCustodyParams";
    type: {
        fields: [{
            name: "isStable";
            type: "bool";
        }, {
            name: "depegAdjustment";
            type: "bool";
        }, {
            name: "isVirtual";
            type: "bool";
        }, {
            name: "oracle";
            type: {
                defined: "OracleParams";
            };
        }, {
            name: "pricing";
            type: {
                defined: "PricingParams";
            };
        }, {
            name: "permissions";
            type: {
                defined: "Permissions";
            };
        }, {
            name: "fees";
            type: {
                defined: "Fees";
            };
        }, {
            name: "borrowRate";
            type: {
                defined: "BorrowRateParams";
            };
        }, {
            name: "ratios";
            type: {
                vec: {
                    defined: ...;
                };
            };
        }];
        kind: "struct";
    };
}, {
    name: "AddInternalOracleParams";
    type: {
        fields: [];
        kind: "struct";
    };
}], EmptyDefined>>>>

Type declaration

  • fields: [{
        name: "volumeUsd";
        type: "u128";
    }, {
        name: "lpRewardsUsd";
        type: "u128";
    }, {
        name: "referralRebateUsd";
        type: "u128";
    }]
  • kind: "struct"
timestamp: BN
voltagePoints: BN

Methods

  • Parameters

    • parseData: DecodeStruct<{
          fields: [{
              name: "nftMint";
              type: "publicKey";
          }, {
              name: "owner";
              type: "publicKey";
          }, {
              name: "delegate";
              type: "publicKey";
          }, {
              name: "isInitialized";
              type: "bool";
          }, {
              name: "level";
              type: "u8";
          }, {
              name: "bump";
              type: "u8";
          }, {
              name: "voltagePoints";
              type: "u64";
          }];
          kind: "struct";
      }, RecursiveDepth4<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: "OracleParams";
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: "PricingParams";
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: "Permissions";
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: "Fees";
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: "BorrowRateParams";
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: {
                          defined: "TokenRatios";
                      };
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], DecodedHelper<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: "OracleParams";
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: "PricingParams";
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: "Permissions";
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: "Fees";
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: "BorrowRateParams";
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: {
                          defined: "TokenRatios";
                      };
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], DecodedHelper<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: "OracleParams";
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: "PricingParams";
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: "Permissions";
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: "Fees";
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: "BorrowRateParams";
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: {
                          defined: ...;
                      };
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], DecodedHelper<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: ...;
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], EmptyDefined>>>>>

    Returns void

  • Parameters

    • publicKey: PublicKey
    • parseData: DecodeStruct<{
          fields: [{
              name: "nftMint";
              type: "publicKey";
          }, {
              name: "owner";
              type: "publicKey";
          }, {
              name: "delegate";
              type: "publicKey";
          }, {
              name: "isInitialized";
              type: "bool";
          }, {
              name: "level";
              type: "u8";
          }, {
              name: "bump";
              type: "u8";
          }, {
              name: "voltagePoints";
              type: "u64";
          }];
          kind: "struct";
      }, RecursiveDepth4<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: "OracleParams";
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: "PricingParams";
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: "Permissions";
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: "Fees";
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: "BorrowRateParams";
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: {
                          defined: "TokenRatios";
                      };
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], DecodedHelper<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: "OracleParams";
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: "PricingParams";
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: "Permissions";
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: "Fees";
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: "BorrowRateParams";
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: {
                          defined: "TokenRatios";
                      };
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], DecodedHelper<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: "OracleParams";
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: "PricingParams";
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: "Permissions";
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: "Fees";
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: "BorrowRateParams";
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: {
                          defined: ...;
                      };
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], DecodedHelper<[{
          name: "AddCollateralParams";
          type: {
              fields: [{
                  name: "collateralDelta";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCollectionParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }, {
          name: "AddCompoundingLiquidityParams";
          type: {
              fields: [{
                  name: "amountIn";
                  type: "u64";
              }, {
                  name: "minCompoundingAmountOut";
                  type: "u64";
              }];
              kind: "struct";
          };
      }, {
          name: "AddCustodyParams";
          type: {
              fields: [{
                  name: "isStable";
                  type: "bool";
              }, {
                  name: "depegAdjustment";
                  type: "bool";
              }, {
                  name: "isVirtual";
                  type: "bool";
              }, {
                  name: "oracle";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "pricing";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "permissions";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "fees";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "borrowRate";
                  type: {
                      defined: ...;
                  };
              }, {
                  name: "ratios";
                  type: {
                      vec: ...;
                  };
              }];
              kind: "struct";
          };
      }, {
          name: "AddInternalOracleParams";
          type: {
              fields: [];
              kind: "struct";
          };
      }], EmptyDefined>>>>>

    Returns TradingAccount