主页 > imtoken钱包地址 > 比特币钱包源代码 Ruby 比特币开发教程:构建比特币钱包

比特币钱包源代码 Ruby 比特币开发教程:构建比特币钱包

imtoken钱包地址 2023-02-05 07:50:46

用比特币源码做山寨币_比特币莱特币以太币钱包通用么_比特币钱包源码

我们已经构建了一个响应消息的机器人和一个自动支付 bitcoin.git 的机器人

完成本教程后,您将能够学习以下内容: 如何设置比特币钱包。 如何读取比特币钱包的余额。 如何通过即时确认以比特币付款。 第三方交易所。

前期准备:你必须有一个 Mixin Network 账号。 以下代码创建一个帐户并将其写入 csv 文件。 知乎

if File.file?(WALLET_NAME)
  p "mybitcoin_wallet.csv has already existed !"
  next
end
yaml_hash = YAML.load_file('./config.yml')
MixinBot.client_id  = yaml_hash["MIXIN_CLIENT_ID"]
MixinBot.session_id = yaml_hash["MIXIN_SESSION_ID"]
MixinBot.client_secret = yaml_hash["MIXIN_CLIENT_SECRET"]
MixinBot.pin_token   = yaml_hash["MIXIN_PIN_TOKEN"]
MixinBot.private_key = yaml_hash["MIXIN_PRIVATE_KEY"]
access_token = MixinBot.api.access_token("GET","/","")
rsa_key = OpenSSL::PKey::RSA.new(1024)
private_key = rsa_key.to_pem()
p private_key
public_key = rsa_key.public_key.to_pem
secret_client = public_key.sub("-----BEGIN PUBLIC KEY-----\n","").sub("\n-----END PUBLIC KEY-----\n","")
reqInfo = MixinBot.api.create_user("ruby bot",secret_client)
p reqInfo["data"]["pin_token"]
p reqInfo["data"]["user_id"]
p reqInfo["data"]["session_id"]
CSV.open(WALLET_NAME, "wb") do |csv|
  csv << [private_key, reqInfo["data"]["pin_token"], reqInfo["data"]["session_id"], reqInfo["data"]["user_id"]]
end

上面的语句会在本地创建一个RSA密钥对,然后调用Mixin Network创建一个账户,最后将账户信息保存到一个csv文件.api

现在您需要注意保存您的账户信息,在读取账户的比特币资产余额或进行其他操作时会需要这些信息。ruby

为新创建的账户创建一个比特币钱包

新账户默认没有内置比特币钱包如何创建比特币冷钱包,现在您可以通过读取您的比特币余额来创建比特币钱包。

if cmd == "2"
  table = CSV.read(WALLET_NAME)
  MixinBot.client_id = table[0][3]
  MixinBot.session_id = table[0][2]
  MixinBot.pin_token = table[0][1]
  MixinBot.private_key = table[0][0]

比特币冷钱包怎么创建_比特币冷钱包_如何创建比特币冷钱包

botAssetsInfo = MixinBot.api.read_asset(BTC_ASSET_ID) p botAssetsInfo p "The BTC wallet address is " + botAssetsInfo["data"]["public_key"] p "The BTC wallet balance is " + botAssetsInfo["data"]["balance"] end

建立账户的比特币资产明细如下,其中公钥为比特币充值地址:network

Make your choose(eg: q for Exit!):
2
{"data"=>{"type"=>"asset", "asset_id"=>"c6d0c728-2624-429b-8e0d-d9d19b6592fa",
"chain_id"=>"c6d0c728-2624-429b-8e0d-d9d19b6592fa", "symbol"=>"BTC",
 "name"=>"Bitcoin", "icon_url"=>"https://images.mixin.one/HvYGJsV5TGeZ-X9Ek3FEQohQZ3fE9LBEBGcOcn4c4BNHovP4fW4YB97Dg5LcXoQ1hUjMEgjbl1DPlKg1TW7kK6XP=s128",
 "balance"=>"0", "public_key"=>"1MQLQG1FshdVaQrDE36FLGabCitE3vPUA", "account_name"=>"",
 "account_tag"=>"", "price_btc"=>"1", "price_usd"=>"7948.30287759", "change_btc"=>"0",
 "change_usd"=>"0.006197123302394101", "asset_key"=>"c6d0c728-2624-429b-8e0d-d9d19b6592fa",
 "confirmations"=>6, "capitalization"=>0}}
"The BTC wallet address is 1MQLQG1FshdVaQrDE36FLGabCitE3vPUA"
"The BTC wallet balance is 0"
-------------------------------------------------------------------------

这个API可以提供几个比特币相关的信息:session

比特币私钥呢?

比特币的私钥呢? 该私钥由 Mixin Network 通过多重签名保护,因此对用户是不可见的。 比特币资产的提现和转移需要用户提供正确的RSA签名、PIN码和会话密钥才能完成。 主场

不仅是Bitcoin比特币钱包源码,还有Ethereum、EOS等。

本账号不仅支持比特币比特币钱包源码,还支持以太坊、EOS等,完整的区块链支持列表。 该账户还支持所有 ERC20 代币和 EOS 代币。学习

为其他硬币构建钱包的过程与构建比特币钱包相同。 可以阅读对应的资产余额.blockchain

Mixin Network 目前支持的加密货币 (2019-02-19) cryptouuid in Mixin Network

EOS

6cfe566e-4aad-470b-8c9a-2fd35b49c68d

中央银行

965e5c6e-434c-3fa9-b780-c50f43cd955c

比特币

c6d0c728-2624-429b-8e0d-d9d19b6592fa

ETC

2204c1ee-0ea2-4add-bb9a-b3719cfff93a

波纹

23dfb5a5-5d7b-48b6-905f-3970e3176e27

如何创建比特币冷钱包_比特币冷钱包_比特币冷钱包怎么创建

新兴市场

27921032-f73e-434e-955f-43d55672ee31

以太坊

43d61dcd-e413-450d-80b8-101d5e903357

短跑

6472e7e3-75fd-48b6-b1dc-28d294ee1476

州长

6770a1e5-6086-44d5-b60f-545f9d9e8ffd

长途贸易公司

76c802a2-7c88-447f-a93e-c29c9e5dd9c8

SC

990c4c29-57e9-48f6-9819-7d986ea44985

a2c5d22b-62a2-4c13-b3f0-013290dbac60

零碳

c996abc9-d94e-4494-b1cf-2a3fd3ac5714

生物安全信息交易所所

fd11b6e3-0b87-41f1-a41f-f0e9b49e5bf0

EOS的充币地址与其他币种有些不同。 它由两部分组成:account_name 和account label。 如果您将EOS存入Mixin Network,您需要填写两条数据:账户名是eoswithmixin,并在备注中输入您的account_tag,例如0aa2b00fad2c69059ca1b50de2b45569。

EOS资产余额返回结果如下:

Make your choose(eg: q for Exit!):
3
{"data"=>{"type"=>"asset", "asset_id"=>"6cfe566e-4aad-470b-8c9a-2fd35b49c68d",
 "chain_id"=>"6cfe566e-4aad-470b-8c9a-2fd35b49c68d", "symbol"=>"EOS",
  "name"=>"EOS", "icon_url"=>"https://images.mixin.one/a5dtG-IAg2IO0Zm4HxqJoQjfz-5nf1HWZ0teCyOnReMd3pmB8oEdSAXWvFHt2AJkJj5YgfyceTACjGmXnI-VyRo=s128",
   "balance"=>"0", "public_key"=>"", "account_name"=>"eoswithmixin",
   "account_tag"=>"60ec682616408d9486b5975a1361e269", "price_btc"=>"0.00079077",
   "price_usd"=>"6.28647972", "change_btc"=>"0.004235601507246285",
   "change_usd"=>"0.00974554134353926", "asset_key"=>"eosio.token:EOS",
   "confirmations"=>64, "capitalization"=>0}}
"The EOS wallet address is eoswithmixin 60ec682616408d9486b5975a1361e269"
"The EOS wallet balance is 0"
-------------------------------------------------------------------------

存入比特币并读取比特币余额

今天,您可以将硬币存入比特币钱包。

比特币冷钱包_比特币冷钱包怎么创建_如何创建比特币冷钱包

当然,在比特币网络中,交易费用是非常昂贵的。 费用中位数为 0.001BTC。 以目前 4,000 美元的价格计算,这大约是 4 美元。 有一个方便的方法。 如果你有一个存有比特币的Mixin Messenger账户,你可以直接将比特币提现到新建账户的比特币充值地址。 他们在同一个Mixin Network网络,手续费0,1秒到账。

下面的代码能够读取比特币钱包余额。

table = CSV.read(WALLET_NAME)
MixinBot.client_id = table[0][3]
MixinBot.session_id = table[0][2]
MixinBot.pin_token = table[0][1]
MixinBot.private_key = table[0][0]
botAssetsInfo = MixinBot.api.read_asset(BTC_ASSET_ID)
p botAssetsInfo
p "The BTC wallet address is " + botAssetsInfo["data"]["public_key"]
p "The BTC wallet balance is " + botAssetsInfo["data"]["balance"]

Mixin Network 免费网络,即时确认

Mixin 网络内任何货币的交易都是免费的,并且会立即记入贷方。

前期准备:账户设置密码

对于新创建的账户,我们通过updatePin设置一个新的PIN码,代码如下:

table = CSV.read(WALLET_NAME)
puts table[0][1]
MixinBot.client_id = table[0][3]
MixinBot.session_id = table[0][2]
MixinBot.pin_token = table[0][1]
MixinBot.private_key = table[0][0]
pinInfo = MixinBot.api.update_pin('',DEFAULT_PIN)
p pinInfo

Mixin Network 账户之间的比特币支付

通过Mixin Messenger,我们可以先把比特币转给机器人,然后让机器人把币转给新用户。

if cmd == "teb"
  yaml_hash = YAML.load_file('./config.yml')
  MixinBot.client_id  = yaml_hash["MIXIN_CLIENT_ID"]
  MixinBot.session_id = yaml_hash["MIXIN_SESSION_ID"]
  MixinBot.client_secret = yaml_hash["MIXIN_CLIENT_SECRET"]
  MixinBot.pin_token   = yaml_hash["MIXIN_PIN_TOKEN"]
  MixinBot.private_key = yaml_hash["MIXIN_PRIVATE_KEY"]
  table = CSV.read(WALLET_NAME)
  wallet_userid = table[0][3]
  botAssetsInfo = MixinBot.api.read_asset(EOS_ASSET_ID)

比特币冷钱包_如何创建比特币冷钱包_比特币冷钱包怎么创建

if botAssetsInfo["data"]["balance"].to_f > 0 transInfo = MixinBot.api.create_transfer(MixinBot.api.encrypt_pin(yaml_hash["MIXIN_PIN_CODE"]), { asset_id: EOS_ASSET_ID, opponent_id: wallet_userid, amount: botAssetsInfo["data"]["balance"], trace_id: SecureRandom.uuid, memo: "from ruby" }) p transInfo end end

读取比特币余额,确认比特币转账是否成功!

botAssetsInfo = MixinBot.api.read_assets()

如何将比特币存入您的冷钱包或第三方交易所

如果你想充币到你的冷钱包或第三方交易所,你必须先在第三方交易所获取冷钱包或你的钱包地址,然后将钱包地址提交给Mixin Network。

将目标钱包地址添加到 Mixin Network

调用createAddress接口会返回一个address_id,在下次提现操作中会用到。

if cmd == "wb"
  table = CSV.read(WALLET_NAME)
  MixinBot.client_id = table[0][3]
  MixinBot.session_id = table[0][2]
  MixinBot.pin_token = table[0][1]
  MixinBot.private_key = table[0][0]
  addressInfo = MixinBot.api.create_withdraw_address(BTC_ASSET_ID,
                                                       DEFAULT_PIN,
                                                       BTC_WALLET_ADDR,
                                                       "","",
                                                       "from ruby")
  p addressInfo
  p "The address id is " + addressInfo["data"]["address_id"] + " it is needed by read fee!"
end

这里14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C是一个比特币钱包地址,如下图,取款手续费为0.0025738 BTC如何创建比特币冷钱包,address_id为“345855b5-56a5-4f3b-ba9e-d99601ef86c1”。

Make your choose:wb
wb

如何创建比特币冷钱包_比特币冷钱包_比特币冷钱包怎么创建

{"type":"address","address_id":"58860d12-cbdc-40ae-8a4a-b0fc72f418b3", "asset_id":"c6d0c728-2624-429b-8e0d-d9d19b6592fa","public_key":"14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C", "label":"hi","account_name":"","account_tag":"","fee":"0.00118846","reserve":"0","dust":"0.0001", "updated_at":"2019-04-16T06:12:15.686517454Z"} ------------------------BTC---Withdrawal---Information--------------------------- The BTC Witchdrawal address is 14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C The BTC withdraw fee is 0.00118846

提现地址建立成功后,您可以使用readAddress读取最新的提现手续费。

addressInfo = MixinBot.api.get_withdraw_address(addressInfo["data"]["address_id"])
  p addressInfo

提交提现请求,Mixin Network将立即处理提现请求。

向Mixin Network提交提现请求,withdrawAddress.address_id由createAddress创建。

if cmd == "wb"
  table = CSV.read(WALLET_NAME)
  MixinBot.client_id = table[0][3]
  MixinBot.session_id = table[0][2]
  MixinBot.pin_token = table[0][1]
  MixinBot.private_key = table[0][0]
  addressInfo = MixinBot.api.create_withdraw_address(BTC_ASSET_ID,
                                                       DEFAULT_PIN,
                                                       BTC_WALLET_ADDR,
                                                       "","",
                                                       "from ruby")
  p addressInfo
  p "The address id is " + addressInfo["data"]["address_id"] + " it is needed by read fee!"
  addressInfo2 = MixinBot.api.del_withdraw_address(addressInfo["data"]["address_id"], DEFAULT_PIN)
  p addressInfo2
  withdrawInfo = MixinBot.api.withdrawals(addressInfo["data"]["address_id"],
                                          DEFAULT_PIN,
                                          "0.1",
                                          SecureRandom.uuid,"from ruby")
  p withdrawInfo
end

可以通过区块链探索查看进度。

完整代码在这里

币圈新闻,版权所有丨如未注明,均为原创丨本站受BY-NC-SA协议授权

转载请注明原文链接:比特币钱包源码Ruby比特币开发教程:搭建比特币钱包