All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Functionalities:
- Added functionality to
http-client
for sending PUT requests. Kudos to @ptlls
- Added functionality to
- Methods:
CelsiusInstance.getSupportedCountries(userSecret)
that returns the list of countries supported by Celsius.CelsiusInstance.health(message)
checks the health of the server. Kudos to @andreujuancCelsiusInstance.getKycVerificationStatus(userId, userSecret)
checks the KYC status, similar to existinggetKycStatus
method, but takes alsouserId
as a parameter and returns a response containing propertystatus
which shows the status of KYC andreason
which states the reason for the status if needed.CelsiusInstance.startKycVerification(userId, documentType, userDocuments, userSecret)
starts the KYC verification same as existingverifyKyc
method, but it doesn't create the user, but rather receives an existing user's id -userId
as a parameterCelsiusInstance.createUser(user)
which returnsuserId
which can be used to manipulate user info and starting KYC verification. Also, theuser_token
property will be used asuserSecret
CelsiusInstance.updateUser(userId, user, userSecret)
CelsiusInstance.updateUserEmail(email, userSecret)
CelsiusInstance.confirmTermsOfUse(termsOfUseId, confirmationDate, userSecret)
use to accept the latest terms of use. Kudos to @ptlls
- Types:
CreateUser
with propertiesfirst_name
,last_name
,middle_name
?,email
?,title
?,date_of_birth
,citizenship
,country
,state
?,city
,zip
,street
,building_number
?,flat_number
,itin
?, national_id?,ssn
?,gender
,user_token
UpdateUser
with propertiesfirst_name
,last_name
,middle_name
?,email
?,title
?,date_of_birth
,citizenship
,country
,state
?,city
,zip
,street
,building_number
?,flat_number
?,itin
?,national_id
?,ssn
?,gender
,UpdateEmail
withemail
property, for updating user email.CreateUserResponse
with propertiesuserId
,userToken
SupportedCountriesResponse
with propertiesalpha2
,alpha3
,countryCallingCodes
,currencies
emoji
,ioc
,languages
,name
andstatus
KYCStatusResponse
with propertiesstatus
andreasons
- Updated methods:
getInterestRates
return type changed toPromise<InterestRates[]>
. Kudos to @barathvkgetTransactionSummary
, pagination options parameter changed fromPaginationOptions
toCelsiusPaginationOptions
. Kudos to @crypto-diplodocus and @rbaylissgetCoinTransactions
, pagination options changed fromPaginationOptions
toCelsiusPaginationOptions
. Kudos to @crypto-diplodocus and @rbayliss
- Updated types:
- added
coin
property toCelsiusWithdrawOptions
- added
- Updated dependencies:
- Bump
nokogiri
from 1.10.8 to 1.12.5 - Bump
path-parse
from 1.0.6 to 1.0.7 - Bump
addressable
from 2.5.2 to 2.8.0 - Bump
hosted-git-info
from 2.7.1 to 2.8.9 - Bump
lodash
from 4.17.19 to 4.17.21 - Bump
axios
from 0.18.1 to 0.21.1
- Bump
- Deleted methods:
CelsiusInstance.createUser
CelsiusInstance.getUsers
CelsiusInstance.changeMetadata
CelsiusInstance.changeWithdrawalAddress
- Deleted types:
PaginationOptions
UserWithdrawalAddress
UserMetadataResponse
UserCreateResponse
UsersResponse
WithdrawalAddress
InstitutionalUser
- Adding a new property
amount_precise
to theCelsiusTransactionRecord
type. It provides the exact transaction amount, without any rounding applied. - Fixing typos in jsdoc. Kudos to @saginadir who noticed the typo and contributed code that fixes it!
- Fixing error handling to cover unhandled cases such as Wallet API being offline and signature verification failing.
- Adding a new class
CelsiusSDKError
that encapsulates errors raised within the Celsius SDK. This class extends the Error class and contains the following additional attributes:- slug - Unique identifier tied to the error, returned by the API;
- status - Status code returned by the API;
- originalError - Original error which was used to instantiate CelsiusSDKError.
- Exporting
CelsiusSDKError
andValidationError
classes used by Celsius SDK to encapsulate errors. - Fixing unhandled promise rejections in http-client.js::post method. Kudos to @vigan-abd who noticed the issue and provided the code to fix it!
-
Adding new properties to response received when using
CelsiusInstance.getTransctionSummary(pagination, userSecret)
andCelsiusInstance.getCoinTransactions(coin, pagination, userSecret)
.- original_interest_coin - Name of the original coin for which the interest has been accrued.
- interest_amount_in_original_coin - Amount accrued in
original_interest_coin
, before conversion to another asset.
These properties are present only for transactions where the
nature
property isinterest
.
- Adding support for
Origin address of the first deposit
withdrawal scheme.- Whitelabel partners can now be configured in a way that allows withdrawing funds only to the origin addresses of first deposits.
- Adding method
CelsiusInstance.getWithdrawalAddresses(userSecret)
which returns all withdrawal addresses for the given user. - Adding method
CelsiusInstance.getWithdrawalAddressForCoin(coin, userSecret)
which returns withdrawal address for the given user and coin.
- Raising axios version from 0.18.0 up to 0.18.1 to address security vulnerabilities.
-
Added method
CelsiusInstance.getStatistics(userSecret, timestamp)
that returns following statistics:- deposit_count - Number of deposits made
- deposit_amount - Total amount deposited in usd and per coin (in that coin and usd)
- withdrawal_count - Number of withdrawals made
- withdrawal_amount - Total amount withdrawn in usd and per coin (in that coin and usd)
- interest_count - Number of interests earned
- interest_amount - Total interest earned in usd and per coin (in that coin and usd)
Optionally,
timestamp
can be provided which serves as the starting point for gathering statistics. Any deposits, withdrawals and interests created before that date will be ignored. -
Added mocha tests to sdk.
- Added support for ISO 3166 country representation in
CelsiusKycUserData.country
property. Available ISO 3166 country representations are:- ISO 3166 Country name
- ISO 3166 Official state name
- ISO 3166-1 Alpha-2 code
- ISO 3166-3 Alpha-3 code
- Added support for two letter United States state codes in
CelsiusKycUserData.state
property.
- Fixed typings for
CelsiusKycUserData.document_type
. Available document types are now:- passport
- identity_card
- driving_licence
-
Added following address properties to
CelsiusKycUserData
:- country
- state - Required if the country is 'United States'
- city
- zip
- street
- building_number
- flat_number
-
Added following taxpayer properties to
CelsiusKycUserData
:- itin
- national_id
- ssn
-
Changed maximum upload size to 25mb
- Method
CelsiusInstance.getInterestSummary(userSecret)
that returns interest earned by the user.
ValidationError
for all http-client 4xx responses.
- Method
CelsiusInstance.getInterestRates()
will return interest rate for all supported coins.
- Method
CelsiusInstance.createUser()
will create new user for whitelabel partner.
- Method
CelsiusInstance.getUsers()
will return all users for whitelabel partner. - Method
CelsiusInstance.changeMetadata()
will change metadata of the user. - Method
CelsiusInstance.changeWithdrawalAddress()
will change withdrawal address of the user.
- Typescript type definitions! Kudos to @jmbrito01 who typed out most of the definitions, and helped us greatly!
- Supported currencies are now retrieved upon instantiation of the SDK and can be accessed via
CelsiusInstance.currencies
property. - Method
CelsiusInstance.getSupportedCurrencies()
refreshesCelsiusInstance.currencies
property and returns currencies.
- 🚢🍾 First open-source version of the Celsius SDK released! Kudos to @JovanovicJovan & @g4ndr4. Great job guys!