Usage
Contents
Methods
init
Inits instance of BladeSDK for correct work with Blade API and Hedera network.
init( apiKey: string, network: string, dAppCode: string, visitorId: string = "", sdkEnvironment: SdkEnvironment = SdkEnvironment.Prod, sdkVersion: string = config.sdkVersion, completionKey?: string): Promise<InfoData>
Parameters
Returns
Promise<InfoData>
- status: "success" or "error"
Example
getInfo
This method returns basic params of initialized instance of BladeSDK. This params may useful for support.
Returned object likely will contain next fields: apiKey
, dAppCode
, network
, visitorId
, sdkEnvironment
, sdkVersion
, nonce
In case of support please not provide full apiKey, limit yourself to the part of the code that includes a few characters at the beginning and at the end (eg. AdR3....BFgd
)
getInfo(completionKey?: string): InfoData
Parameters
Returns
InfoData
Example
setUser
Set account for further operations.
Currently supported two account providers: Hedera and Magic.
Hedera: pass accountId and privateKey as hex-encoded strings with DER-prefix (302e020100300506032b657004220420...)
Magic: pass email to accountIdOrEmail and empty string as privateKey. SDK will handle Magic authentication, and finish after user click on confirmation link in email.
After successful authentication, SDK will store public and private keys in memory and use them for further operations.
After that in each method call provide empty strings to accountId and accountPrivateKey. Otherwise, SDK will override current user with provided credentials as Hedera provider.
In case of calling method with accountId
and accountPrivateKey
arguments, SDK will override current user with that credentials.
It's optional method, you can pass accountId and accountPrivateKey in each method call. In further releases this method will be mandatory.
setUser( accountProvider: AccountProvider, accountIdOrEmail: string, privateKey?: string, completionKey?: string): Promise<UserInfoData>
Parameters
Returns
Promise<UserInfoData>
Example
resetUser
Clears current user credentials.
resetUser(completionKey?: string): Promise<StatusResult>
Parameters
Returns
Promise<StatusResult>
Example
getBalance
Get hbar and token balances for specific account.
getBalance(accountId: string, completionKey?: string): Promise<BalanceData>
Parameters
Returns
Promise<BalanceData>
- hbars: number, tokens: [{tokenId: string, balance: number}]
Example
getCoinList
Get list of all available coins on CoinGecko.
getCoinList(completionKey?: string): Promise<CoinListData>
Parameters
Returns
Promise<CoinListData>
Example
getCoinPrice
Get coin price and coin info from CoinGecko. Search can be coin id or address in one of the coin platforms.
getCoinPrice( search: string = "hbar", currency: string = "usd", completionKey?: string): Promise<CoinInfoData>
Parameters
Returns
Promise<CoinInfoData>
Example
transferHbars
Send hbars to specific account.
transferHbars( accountId: string, accountPrivateKey: string, receiverId: string, amount: string, memo: string, completionKey?: string): Promise<TransactionReceiptData>
Parameters
Returns
Promise<TransactionReceiptData>
Example
contractCallFunction
Call contract function. Directly or via BladeAPI using paymaster account (fee will be paid by Paymaster account), depending on your dApp configuration.
contractCallFunction( contractId: string, functionName: string, paramsEncoded: string | ParametersBuilder, accountId: string, accountPrivateKey: string, gas: number = 100000, usePaymaster: boolean = false, completionKey?: string): Promise<TransactionReceiptData>
Parameters
Returns
Promise<TransactionReceiptData>
Example
contractCallQueryFunction
Call query on contract function. Similar to {@link contractCallFunction} can be called directly or via BladeAPI using Paymaster account.
contractCallQueryFunction( contractId: string, functionName: string, paramsEncoded: string | ParametersBuilder, accountId: string, accountPrivateKey: string, gas: number = 100000, usePaymaster: boolean = false, resultTypes: string[], completionKey?: string): Promise<ContractCallQueryRecordsData>
Parameters
Returns
Promise<ContractCallQueryRecordsData>
Example
transferTokens
Send token to specific account.
transferTokens( tokenId: string, accountId: string, accountPrivateKey: string, receiverID: string, amountOrSerial: string, memo: string, usePaymaster: boolean = false, completionKey?: string): Promise<TransactionReceiptData>
Parameters
Returns
Promise<TransactionReceiptData>
Example
createScheduleTransaction
Create scheduled transaction
createScheduleTransaction( accountId: string, accountPrivateKey: string, type: ScheduleTransactionType, transfers: ScheduleTransactionTransfer[], usePaymaster: boolean = false, completionKey?: string): Promise<ScheduleResult>
Parameters
Returns
Promise<ScheduleResult>
Example
signScheduleId
Sign scheduled transaction
signScheduleId( scheduleId: string, accountId: string, accountPrivateKey: string, receiverAccountId?: string, usePaymaster: boolean = false, completionKey?: string): Promise<TransactionReceiptData>
Parameters
Returns
Promise<TransactionReceiptData>
Example
createAccount
Create new Hedera account (ECDSA). Only for configured dApps. Depending on dApp config Blade create account, associate tokens, etc.
In case of not using pre-created accounts pool and network high load, this method can return transactionId and no accountId.
In that case account creation added to queue, and you should wait some time and call getPendingAccount()
method.
createAccount(privateKey?: string, deviceId?: string, completionKey?: string): Promise<CreateAccountData>
Parameters
Returns
Promise<CreateAccountData>
Example
getPendingAccount
Get account from queue (read more at createAccount()
).
If account already created, return account data.
If account not created yet, response will be same as in createAccount()
method if account in queue.
getPendingAccount( transactionId: string, mnemonic: string, completionKey?: string): Promise<CreateAccountData>
Parameters
Returns
Promise<CreateAccountData>
Example
deleteAccount
Delete Hedera account. This method requires account private key and operator private key. Operator is the one who paying fees
deleteAccount( deleteAccountId: string, deletePrivateKey: string, transferAccountId: string, operatorAccountId: string, operatorPrivateKey: string, completionKey?: string): Promise<TransactionReceiptData>
Parameters
Returns
Promise<TransactionReceiptData>
Example
getAccountInfo
Get account info.
EvmAddress is address of Hedera account if exists. Else accountId will be converted to solidity address.
CalculatedEvmAddress is calculated from account public key. May be different from evmAddress.
getAccountInfo(accountId: string, completionKey?: string): Promise<AccountInfoData>
Parameters
Returns
Promise<AccountInfoData>
Example
getNodeList
Get Node list
getNodeList(completionKey?: string): Promise<NodeListData>
Parameters
Returns
Promise<NodeListData>
Example
stakeToNode
Stake/unstake account
stakeToNode( accountId: string, accountPrivateKey: string, nodeId: number, completionKey?: string): Promise<TransactionReceiptData>
Parameters
Returns
Promise<TransactionReceiptData>
Example
getKeysFromMnemonic
getKeysFromMnemonic( mnemonicRaw: string, // eslint-disable-next-line @typescript-eslint/no-unused-vars lookupNames: boolean = true, completionKey?: string): Promise<PrivateKeyData>
Parameters
Returns
Promise<PrivateKeyData>
Example
searchAccounts
Get accounts list and keys from private key or mnemonic
Supporting standard and legacy key derivation.
Every key with account will be returned.
searchAccounts(keyOrMnemonic: string, completionKey?: string): Promise<AccountPrivateData>
Parameters
Returns
Promise<AccountPrivateData>
Example
dropTokens
Bladelink drop to account
dropTokens( accountId: string, accountPrivateKey: string, secretNonce: string, completionKey?: string): Promise<TokenDropData>
Parameters
Returns
Promise<TokenDropData>
Example
sign
Sign base64-encoded message with private key. Returns hex-encoded signature.
sign(messageString: string, privateKey: string, completionKey?: string): SignMessageData
Parameters
Returns
SignMessageData
Example
signVerify
Verify message signature by public key
signVerify( messageString: string, signature: string, publicKey: string, completionKey?: string): SignVerifyMessageData
Parameters
Returns
SignVerifyMessageData
Example
ethersSign
Sign base64-encoded message with private key using ethers lib. Returns hex-encoded signature.
ethersSign(messageString: string, privateKey: string, completionKey?: string): Promise<SignMessageData>
Parameters
Returns
Promise<SignMessageData>
Example
splitSignature
Split signature to v-r-s format.
splitSignature(signature: string, completionKey?: string): SplitSignatureData
Parameters
Returns
SplitSignatureData
Example
getParamsSignature
Get v-r-s signature of contract function params
getParamsSignature( paramsEncoded: string | ParametersBuilder, privateKey: string, completionKey?: string): Promise<SplitSignatureData>
Parameters
Returns
Promise<SplitSignatureData>
Example
getTransactions
Get transactions history for account. Can be filtered by transaction type.
Transaction requested from mirror node. Every transaction requested for child transactions. Result are flattened.
If transaction type is not provided, all transactions will be returned.
If transaction type is CRYPTOTRANSFERTOKEN records will additionally contain plainData field with decoded data.
getTransactions( accountId: string, transactionType: string = "", nextPage: string, transactionsLimit: string = "10", completionKey?: string): Promise<TransactionsHistoryData>
Parameters
Returns
Promise<TransactionsHistoryData>
Example
getC14url
Get configured url for C14 integration (iframe or popup)
getC14url( asset: string, account: string, amount: string, completionKey?: string): Promise<IntegrationUrlData>
Parameters
Returns
Promise<IntegrationUrlData>
Example
exchangeGetQuotes
Get quotes from different services for buy, sell or swap
exchangeGetQuotes( sourceCode: string, sourceAmount: number, targetCode: string, strategy: CryptoFlowServiceStrategy, completionKey?: string): Promise<SwapQuotesData>
Parameters
Returns
Promise<SwapQuotesData>
Example
swapTokens
Swap tokens
swapTokens( accountId: string, accountPrivateKey: string, sourceCode: string, sourceAmount: number, targetCode: string, slippage: number, serviceId: string, completionKey?: string): Promise<SwapResult>
Parameters
Returns
Promise<SwapResult>
Example
getExchangeStatus
Get exchange order status
getExchangeStatus(serviceId: string, orderId: string, completionKey?: string): Promise<TransakOrderInfo>
Parameters
Returns
Promise<TransakOrderInfo>
Example
getTradeUrl
Get configured url to buy or sell tokens or fiat
getTradeUrl( strategy: CryptoFlowServiceStrategy, accountId: string, sourceCode: string, sourceAmount: number, targetCode: string, slippage: number, serviceId: string, redirectUrl: string = "", completionKey?: string): Promise<IntegrationUrlData>
Parameters
Returns
Promise<IntegrationUrlData>
Example
createToken
Create token (NFT or Fungible Token)
createToken( treasuryAccountId: string, supplyPrivateKey: string, tokenName: string, tokenSymbol: string, isNft: boolean, keys: KeyRecord[] | string, decimals: number, initialSupply: number, maxSupply: number = 250, completionKey?: string): Promise<CreateTokenResult>
Parameters
Returns
Promise<CreateTokenResult>
Example
associateToken
Associate token to account. Association fee will be covered by PayMaster, if tokenId configured in dApp
associateToken( tokenIdOrCampaign: string, accountId: string, accountPrivateKey: string, completionKey?: string): Promise<TransactionReceiptData>
Parameters
Returns
Promise<TransactionReceiptData>
Example
nftMint
Mint one NFT
nftMint( tokenId: string, accountId: string, accountPrivateKey: string, file: File | string, metadata: object, ipfsProviderConfig: IPFSProviderConfig, completionKey?: string): Promise<TransactionReceiptData>
Parameters
Returns
Promise<TransactionReceiptData>
Example
getTokenInfo
Get token info. Fungible or NFT. Also get NFT metadata if serial provided
getTokenInfo(tokenId: string, serial: string = "", completionKey?: string): Promise<TokenInfoData>
Parameters
Returns
Promise<TokenInfoData>
Example
brokenMnemonicEmergencyTransfer
Emergency balance transfer from broken mnemonic account to new account
Accounts with broken mnemonic sometimes were created because of hedera-sdk issue
To transfer funds from broken mnemonic account to new account a couple of steps required:
Create new account
Associate all tokens with new account that you want to transfer
Call this method to transfer funds to new account
Send some HBAR to broken mnemonic account to cover fees if needed
brokenMnemonicEmergencyTransfer(seedPhrase: string, accountId: string, receiverId: string, hbarAmount: string, tokenList: string[], checkOnly: boolean, completionKey?: string): Promise<EmergencyTransferData>
Parameters
Returns
Promise<EmergencyTransferData>
Example
Last updated