D'CENT developer guide
Official siteUser GuideBlogTwitter
  • Introduction
  • How to Connect Your DApp to D’CENT Mobile App
  • In-app browser (dapp browser)
    • Getting Started
    • EVM compatible networks
    • Klaytn network
    • Tron network
  • Dynamic Link
    • Dynamic Link to In-app Browser
    • EIP-681 : Transaction/Payment Request
  • D'CENT WalletConnect (DWC)
    • Introduction
    • Packages
    • D'CENT WalletConnect
    • Test Environment
    • WalletConnect monorepo
  • Collectibles
    • NFT list on Collectibles tab
  • D'CENT biometric wallet for PC
    • D'CENT SDK for PC Environment
    • dcent-web-connector
      • Configurations
      • Device & Accounts Info.
      • Address & XPUB
      • Ethereum & EVM compatible
      • Klaytn
      • Bitcoin
      • XRPL (XRP Ledger)
      • Hedera (HBAR & HTS)
      • Tron (TRX & TRC20)
      • Stellar
      • Tezos (XTZ & XTZ_FA)
      • Vechain
      • Near (NEAR & Near Token)
      • Havah
      • Polkadot
      • Polkadot Parachain
      • Cosmos & Cosmos compatible network
      • Algorand
    • dcent-cli-connector
      • Configurations
      • Device & Accounts Info.
      • Address & XPUB
      • Ethereum & EVM compatible
      • Hedera (HBAR & HTS)
    • dcent-provider
  • D'CENT BIOMETRIC WALLET FOR Mobile
    • D'CENT SDK for Mobile Environment
    • dcent-biometric-sdk-android
      • Setup
      • Initialize
      • Device & Accrouts Info
      • Address & XPUB
      • Bitcoin
      • Ethereum & EVM compatible
      • Klaytn
      • XRPL
      • Binance
      • Stellar
      • Tron
      • Cardano
      • Hedera
      • Stacks
      • Solana
      • Conflux
      • Polkadot
      • Cosmos
      • Tezos
      • Vechain
      • Near
      • Havah
      • Algorand
    • dcent-biometric-sdk-ios
      • Setup
      • Initialize
      • Device & Accrouts Info
      • Address & XPUB
      • Bitcoin
      • Ethereum & EVM compatible
      • Klaytn
      • XRPL
      • Binance
      • Stellar
      • Tron
      • Cardano
      • Hedera
      • Stacks
      • Solana
      • Conflux
      • Polkadot
      • Cosmos
      • Tezos
      • Vechain
      • Near
      • Havah
      • Algorand
  • D'CENT Integrated Packages
    • Web3Modal
    • web3-onboard
  • Misc.
    • Logo & Brand Guideline
Powered by GitBook
On this page
  • getBitcoinSignedTransaction
  • Parameters
  • Returns

Was this helpful?

  1. D'CENT BIOMETRIC WALLET FOR Mobile
  2. dcent-biometric-sdk-ios

Bitcoin

getBitcoinSignedTransaction

The D'CENT Android SDK provides functions for signing transaction of coins.

This function for :

  • .BITCOIN - bitcoin (BTC)

  • .BITCOIN_SV - bitcoin sv (BSV)

  • .BTC_SEGWIT - bitcoin segwit (BTC)

  • .MONACOIN - monacoin (MONA)

  • .LITECOIN - litecoin (LTC)

  • .LTC_SEGWIT - litecoin segwit (LTC)

  • .ZCASH - zcash (ZEC)

  • .HORIZEN - horizen (ZEN)

  • .BITCOINCASH - bitcoin cash (BCH)

  • .DOGECOIN - dogecoin (DOGE)

  • .BCH_ABC - bitcoin cash abc (BCHA)

  • .ECASH - ecash (XEC)

  • .DASH - dash (DASH)

  • .BITCOIN_GOLD - bitcoin gold (BTG)

  • .DIGIBYTE - digibyte (DGB)

  • .DGB_SEGWIT - digibyte segwit (DGB)

  • .RAVENCOIN - ravencoin (RVN)

  • .BTC_TESTNET - bitcoin testnet (BTCt)

  • .BTC_SEGWIT_TESTNET - bitcoin segwit testnet (BTCt)

  • .MONA_TESTNET - monacoin testnet (MONAt)

  • .LITE_TESTNET - litecoin testnet (tLTC)

  • .LTC_SEGWIT_TESTNET - litecoin segwit testnet (tLTC)

  • .ZCASH_TESTNET - zcash testnet (TAZ)

  • .BCH_TESTNET - bitcoin cash testnet (tBCH)

  • .DASH_TESTNET - dash testnet (tDASH)

  • .BTG_TESTNET - bitcoin gold testnet (tBTG)

  • .DIGIBYTE_TESTNET - digibyte testnet (tDGB)

  • .DGB_SEGWIT_TESTNET - digibyte segwit testnet (tDGB)

  • .RVN_TESTNET - ravencoin testnet (tRVN)

Parameters

  • coinType: bitcoin networks coin type

class BitCoinTransaction

This class to be used for bitcoin transaction.

Name
Type
Description

version

UInt32

version of bitcoin transaction. Currently 1 - BCH /Dash/BTG : 2 - ZCASH : 4

input

previous transaction output information to be used

output

coin spending information

locktime

UInt32

locktime for this transaction

optionParam

String

(optional)option parameter for this transaction in case ZCASH

class UnspentTransactionOutput

The class for previous transaction output information to be used for bitcoin network transaction.

Name
Type
Description

prev_tx

String

full of previous transaction data

utxo_idx

UInt32

index of previous transaction output to be sent

type

bitcoin transaction type for this UTXO

key

String

BIP44 key path for unlocking UTX

class TransactionOutput

The class for coin spending information of Bitcoin network Transaction

Name
Type
Description

value

UInt64

amount of coin to spend. Satoshi unit.

to

[String]

if type is p2pkh or p2sh, Base58Check encoded address of the receiver. The value of the field may follow the rule of version prefix.(BITCOIN_BASE58CHECK) if the type is p2pk , Base58Check encoded non-compressed public key without version prefix. if the type is multisig , Base58Check encoded non-compressed public key (without version prefix) list. if the type is change , BIP44 formatted PATH to get change address. In this case, the transaction type is assumed as p2pkh

type

bitcoin network transaction type or this field can indicate output as a change

enum BtcTxtype

  • p2Pkh: pay to public key hash

  • p2Pk: pay to public key

  • p2Sh: pay to script hash

  • change: indicate output as a change

Returns

  • result: (Bool) true if successful, false if error occurred

  • txData: signed transaction

Example

let transactionOutput : TransactionOutput = TransactionOutput()
let unspentTransactionOutput : UnspentTransactionOutput = UnspentTransactionOutput()
var unspenttxOut : [UnspentTransactionOutput] = [UnspentTransactionOutput()]
  
unspenttxOut.append(unspentTransactionOutput)
  
let BtcTxData : BitcoinTransaction = BitcoinTransaction(version: 0, input: unspenttxOut, output: [transactionOutput], locktime: 0)
  
// test data
BtcTxData.version = 1
BtcTxData.input[1].prev_tx = "0100000001001355540aa694ddde95548de76168666f33d8fad420fab6c554180846676df1000000006a47304402205089f4b1bdb1f96786f4750af3c16a23c73b60de0fe3cfec0da906a181eea645022078047d56dded692477d35052e9179ac71f79c6ec6b5f49941056c03663255be9012103ac2a317f777d63a6bac857ba07e30920a0f2ebd3f99f15a92b8d295791a971f6ffffffff0230750000000000001976a914848d227771119767a8c08ee0b105633cbff2d6b688ac77180000000000001976a9145dadfc1f7c4548336912f23311b424310d6533c088ac00000000"
BtcTxData.input[1].type = BtcTxtype.p2Pkh
BtcTxData.input[1].utxo_idx = 1
BtcTxData.input[1].key = "m/44'/0'/0'/1/4"
BtcTxData.input[0].prev_tx = "0100000001076524b52baf87fe521e5b8a910fadd91c944f952520677def057e346a96380d000000006a473044022045a30be5dc493c36a3a55fd522b4aa2d795f49bb8b61507e1fca1c15819142c1022010846e11893840e521b277f31c1ca835d352fb582633e5ac95106d0ed52d1654012103b72bcab65c4ea43f4b700220729bdde9638c3bb70cc66b7a0de30738e8241382ffffffff0210270000000000001976a9149189ffd2039f1824de14562e592dc4bccaa57d6e88ac6a290000000000001976a9147046ed0f139552ada485f925e74f6576016fc55e88ac00000000"
BtcTxData.input[0].type = BtcTxtype.p2Pkh
BtcTxData.input[0].utxo_idx = 0
BtcTxData.input[0].key = "m/44'/0'/0'/0/2"
BtcTxData.output[0].to[0] = "1K8EfJgWR16Wo3Ejb3AtMk2mfoeAjmMtDL"
BtcTxData.output[0].type = BtcTxtype.p2Pkh
BtcTxData.output[0].value = 10000
BtcTxData.locktime = 0
  
DcentMgr.getBitcoinSignedTransaction(coinType: .BITCOIN, bitcoinTransaction: BtcTxData){ (result, txData) in
    if result == false {
        print("FAIL !!!")
    }else{
        print(txData)
    }
}
PreviousAddress & XPUBNextEthereum & EVM compatible

Last updated 1 year ago

Was this helpful?

bitcoinTransaction: ()bitcoin transaction parameter

BitcoinTransation
UnspentTransactionOutput
TransactionOutput
BtcTxtype
BtcTxtype