BitcoinKit에서 월렛을 만들고 잔액 확인

Bitcoin을 사용한 iOS 앱을 손쉽게 사용할 수 있도록 한다 BitcoinKit

이번에는
- 월렛 만들기
- API를 사용하여 잔액 확인

초보적인 곳을 해설해 갑니다.
소스 코드는 여기 에 있으므로, 좋으면 참조해 주세요.

빌드 방법



여기를 참조하십시오.
"BitcoinKit"의 install 방법

월렛 만들기



이번에는 HDWallet이 아니라 주소가 하나만 있는 가장 간단한 월렛을 만듭니다.

우선은 private key를 생성해, 그것을 인수에 대해서 wallet 작성합니다.
let privateKey = PrivateKey(network: .testnet)
let wallet = Wallet(privateKey: privateKey)
network 에서는 BCH/BTC, Mainnet/Testnet 의 4 종류를 선택할 수 있습니다.

위의 코드에서는 생략되어 있지만 private key의 initializer의 제 2 인수에는 isPublicKeyCompressed 가 본래 있습니다.

pubkey에는 비압축과 압축의 두 가지 형태가 있으며, 비압축 pubkey는 65바이트인 반면 압축 공개 키는 33바이트입니다. 비압축 pubkey를 사용하는 이점이 기본적으로 없기 때문에, 구현할 때는 압축 공개키를 사용합시다. Library에서는 기본적으로 압축되어 있으므로 걱정할 필요가 없습니다.

WIF (Wallet Import Format)



생성한 private key를 keychain 등에 저장하고 싶은 경우, WIF(Wallet Import Format)로 변환하면 편리합니다. Library는 다음 코드에서 WIF를 생성하고 WIF에서 월렛을 복원하는 방법을 보여줍니다.
let wif = privateKey.toWIF()
let wallet = wallet = Wallet(wif: wif)

주소 표시



월렛을 만들 수 있으면 월렛 pubkey를 사용하여 주소를 볼 수 있습니다.
let pubkey = wallet!.publicKey
let base58Address = pubkey.toAddress()
// mjYvGxpiE9hyXFmkrMr9qyiNfNWSWm58FX
let cashAddr = pubkey.toCashaddr()
// bchtest:qqkrlfjuxtvkldq4pel3zxzc8tzwsyta7smhre48m5

주소는 base58로 인코딩하는 것과 BCH의 새로운 주소 표시 방식의 cashAddress에 대응한 2종류가 있습니다.

잔액 확인



먼저 Bitcoin Cash Testnet의 faucet 에 액세스하여 BCH를 받으십시오 (작동이 매우 불안정합니다).
받으면 TxID를 가르쳐 주므로 Bitcoin Cash Testnet Explorer 에서 확인해 두면 좋다고 생각합니다.
이번에는 BitPay의 Insight API 을 이용하여 블록체인에서 잔액을 취득하겠습니다.

엔드 포인트는 여기
let apiEndPoint = "https://test-bch-insight.bitpay.com/api" 
// Mainnet: "https://bch-insight.bitpay.com/api"

얻는 Unspent Outputs의 형태는 다음과 같습니다.
struct UnspentOutput: Codable {
    let address: String
    let txid: String
    let vout: Int
    let scriptPubKey: String
    let amount: Decimal
    let satoshis: Int
    let height: Int
    let confirmations: Int
    let ts: Int
}

응답을 Decode하고 amount를 확인하면 잔액을 확인할 수 있습니다.



한 사람



다음 번은, 거래의 작성 및, 송금의 방법에 대해 해설하고 싶습니다!

좋은 웹페이지 즐겨찾기