區塊鏈(多鏈多幣種)錢包系統搭建開發應用(原始碼檢視演示)

v_ch3nguang發表於2023-04-10

在日常生活中,大家都會買個錢包用於存放 我們日常使用 發行的紙幣,那數字資產世界的錢包 是怎麼樣的呢

 

對於 數字資產世界裡 而言 錢包 就是一個金鑰 ( 包含私鑰和公鑰 ) 的管理容器。使用者用私鑰來簽名交易 , 從而證明該使用者擁有交易的輸出 許可權, 其交易資訊並不是儲存在該錢包內,而是 儲存 在區塊鏈中。

 

區塊鏈數字錢包系統能對比特幣、以太坊等多種主流的數字貨幣進行統一的管理與儲存,也就是說所有貨幣都 裝到一個錢包來 進行 管理, 這樣 大大的降低了數字貨幣的使用門檻和管理負擔,使用起來也 更加 靈活方便。

 

一個錢包通常主要包含的功能有:

賬號管理(主要是私鑰的管理):建立賬號、賬號匯入匯出

賬號資訊展示:如以太幣餘額、Token (代幣)餘額。

轉賬功能:傳送以太幣及傳送Token (代幣)

 

區塊鏈錢包開發原始碼示例:

 

// 建立助記詞

public List<String> createMnemonics() throws MnemonicException.MnemonicLengthException {

     SecureRandom secureRandom = new SecureRandom();

     byte[] entropy = new byte[DeterministicSeed.DEFAULT_SEED_ENTROPY_BITS / 8];

     secureRandom.nextBytes(entropy);

     return  MnemonicCode.INSTANCE.toMnemonic(entropy);

}

 

//m / 44' / 60' / 0' / 0

//Hardened 意思就是派生加固,防止獲取到一個子私鑰之後可以派生出後面的子私鑰

// 必須還有上一級的父私鑰才能派生

public static final ImmutableList<ChildNumber> BIP44_ETH_ACCOUNT_ZERO_PATH =

         ImmutableList.of(new ChildNumber(44, true), new ChildNumber(60, true),

                 ChildNumber.ZERO_HARDENED, ChildNumber.ZERO);

 

// 透過助記詞生成 HD 錢包

public void onCreateWallet(View view) {

 

     byte[] seed = MnemonicCode.toSeed(words, "");

     DeterministicKey masterPrivateKey = HDKeyDerivation.createMasterPrivateKey(seed);

     DeterministicHierarchy deterministicHierarchy = new DeterministicHierarchy(masterPrivateKey);

     // m / 44' / 60' / 0' / 0 / 0

     DeterministicKey deterministicKey = deterministicHierarchy

             .deriveChild(BIP44_ETH_ACCOUNT_ZERO_PATH, false, true, new ChildNumber(0));

     byte[] bytes = deterministicKey.getPrivKeyBytes();

     ECKeyPair keyPair = ECKeyPair.create(bytes);

     try {

         WalletFile walletFile = Wallet.createLight(PASSWORD, keyPair);

         String address = walletFile.getAddress();

         mAddress.setText("0x" + address);

     } catch (CipherException e) {

         e.printStackTrace();

     }

}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70028290/viewspace-2944691/,如需轉載,請註明出處,否則將追究法律責任。

相關文章