主页 > imtoken如何安装 > Nodejs比特币开发教程:创建一个比特币钱包
Nodejs比特币开发教程:创建一个比特币钱包
摘要:我们已经创建了一个回复消息的机器人和一个可以自动支付比特币的机器人。 通过本教程的学习,您可以学到以下内容: 如何创建比特币钱包 如何读取比特币钱包余额 如何支付比特币 并即时确认如何将比特币提取到您的冷钱包或第三方交易所。 你必须事先有一个帐户。
我们已经创建了一个响应消息的机器人和一个自动支付比特币的机器人。
通过本教程的学习,您可以学到以下内容
如何创建比特币钱包。
如何读取比特币钱包的余额。
如何使用比特币进行即时确认支付。
如何将比特币从 Mixin Network 提取到您的冷钱包或第三方交易所。
前期准备:必须有一个Mixin Network账号,如果没有账号,一行代码创建一个
$user_info = $mixinSdk->Network()->createUser("Tom cat");
上面的语句会在本地创建RSA密钥对,然后调用Mixin Network创建账户,最后输出账户信息。
//Create User api include all account information print_r($user_info); print($user_info["pubKey"]); $newConfig = array(); $newConfig["private_key"] = $user_info["priKey"]; $newConfig["pin_token"] = $user_info["pin_token"]; $newConfig["session_id"] = $user_info["session_id"]; $newConfig["client_id"] = $user_info["user_id"];
账号创建成功后,结果如下:
Array ( [type] => user [user_id] => de06f952-6ec7-3789-8467-9aa79869a6ef [identity_number] => 0 [full_name] => Tom cat [avatar_url] => [relationship] => [mute_until] => 0001-01-01T00:00:00Z [created_at] => 2019-02-20T12:29:29.86008273Z [is_verified] => [session_id] => bc9293e5-ed9a-48da-99f9-915f561a1c60 [phone] => [pin_token] => TIPyCtRTTYOg2sr+lu0z2D3xS8SOtQAy0ZDnacRrn6u2ytutZinzeEpRTD9N1+DS/T1zJ8VoX4ED19nhF5SApjqjUaRjKI5lga4rQGcePjCvM0D89FdpmKJzNMLjzV2DglKFMPbnJTu1btfILc0XWiSNEiiFr2mHuLI7bYuQzWI= [invitation_code] => [code_id] => [code_url] => https://mixin.one/codes/ [has_pin] => [receive_message_source] => EVERYBODY [accept_conversation_source] => EVERYBODY [priKey] => -----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALh0dSy2GcKek/Jp 4lTMZxJ30AWP+inZ4c+FG+3ch3fenmXysCyM56hgvVZwh4RrRpvVjRt/NNE3k2Wg N9LNZqWXCmo4ae/hJjpwuj/EVR/1/HSebF9hcvMoTre8D0iLlk+rf1tgr/ZHmIoa 8ef45xMBDargfsF4b5k7kUavU9/xAgMBAAECgYB1ShBMOwsMVxvKdIvn0gXkl20e bFvtis9szr5gtO8rSNK+DuD5oyuXRNSAh5OUn0ZJxzQv/OZP9x/x6jw0/kk7Aj6c jjN3beC7UoayDYms4yNFoWNPqZEXkQ0b2tRsF3mdNj6LVm6Gq7FPDD1TYJ4GR4eO cWHCkZWym26HbZ30AQJBAPNFeZ7nd9wQIzu0wN9isrZebnCko3yax64MDsUAsrmP B1wdHkdX0tJpCldighYD10Cyi+nSz3ODmmbPbLu8AjECQQDCGyi0lpCoV+skLVR0 4weU99Msz1neqOw1khQCJLzUW8UdDhsVwfCdzCeuZrCz+gl/aZaJ6d+6rNTMp1hL ionBAkBEs34hTiUfVL9egTFm5KyrrAdscFJrQhraIDWblRLkLGxbqy194GN9YIS3 IO6z4OnNL58rrYlAig30sud2LSZBAkEAjuNXT7kWvBYcbwE/jtwhlLPqrK3nRlWr rLPgLsPEjb8Ql5busVGXQ1IqU+QcaCDEJRshSlzz6YOZEx6NjO5rAQJAejvW3DmT RjUSDJD8hGr9eCpKQTBDXyUEvyLIMCuRmm9Cbz0HRl4aVXOVblVWoJ6YsGvbCkSl LQCrPL2T58JTkg== -----END PRIVATE KEY----- [pubKey] => -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4dHUsthnCnpPyaeJUzGcSd9AF j/op2eHPhRvt3Id33p5l8rAsjOeoYL1WcIeEa0ab1Y0bfzTRN5NloDfSzWallwpq OGnv4SY6cLo/xFUf9fx0nmxfYXLzKE63vA9Ii5ZPq39bYK/2R5iKGvHn+OcTAQ2q 4H7BeG+ZO5FGr1Pf8QIDAQAB -----END PUBLIC KEY----- )
现在您需要妥善保管您的账户信息,在读取账户的比特币资产余额或进行其他操作时会需要这些信息。
为新创建的账户创建一个比特币钱包
新账户默认没有内置比特币钱包,现在可以通过读取比特币余额创建比特币钱包。
$asset_infoNew = $mixinSdkNew->Wallet()->readAsset("c6d0c728-2624-429b-8e0d-d9d19b6592fa"); echo "BitCoin wallet address is :".$asset_infoNew["public_key"];
创建账户的比特币资产明细如下,其中公钥为比特币充值地址:
Array ( [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] => 195p8R8Y15uzDGMrdVkELVUW2444psqiSq [account_name] => [account_tag] => [price_btc] => 1 [price_usd] => 3928.11498197 [change_btc] => 0 [change_usd] => -0.006841408545228452 [asset_key] => c6d0c728-2624-429b-8e0d-d9d19b6592fa [confirmations] => 12 [capitalization] => 0 )
这个API可以提供比特币相关的几个信息:
充币地址:[public_key]
徽标:[icon_url]
资产名称:[名称]
资产在 Mixin Network 中的 uuid:[asset_key]
兑美元价格(由 Coinmarketcap.com 提供):[price_usd]
存币时确认区块数:[confirmations]
比特币私钥呢?
比特币的私钥呢? 该私钥由 Mixin Network 通过多重签名保护,因此对用户是不可见的。 比特币资产的提现和转移需要用户提供正确的RSA签名、PIN码和会话密钥才能完成。
不仅仅是比特币,还有以太坊、EOS 等。
该账户不仅支持比特币,还支持以太坊、EOS等,完整的区块链支持列表。 该账户还支持所有 ERC20 代币和 EOS 代币。
创建其他币种钱包的过程和创建比特币钱包一样,读取对应的资产余额即可。
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
XEM
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 tag。 如果您将EOS充值到Mixin Network,您需要填写两条数据:账户名为eoswithmixin,在备注中输入您的account_tag,例如0aa2b00fad2c69059ca1b50de2b45569。
EOS资产余额返回结果如下:
Array ( [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] => 0aa2b00fad2c69059ca1b50de2b45569 [price_btc] => 0.00097367 [price_usd] => 3.87734515 [change_btc] => 0.05950956117519646 [change_usd] => 0.07238079041492786 [asset_key] => eosio.token:EOS [confirmations] => 64 [capitalization] => 0 )
存入比特币和读取比特币余额
现在,您可以将硬币存入您的比特币钱包。
当然,在比特币网络中转币的费用是相当昂贵的。 费用的中位数是 0.001BTC。 按照现在4000美元的价格,大概是4美元。 有一个方便的方法,如果你有一个 Mixin Messenger 账户,里面有比特币比特币冷钱包怎么创建,你可以直接提币到新创建账户的比特币充值地址,他们在同一个 Mixin Network 网络中,手续费为 0 ,1秒到帐。
以下代码可以读取比特币钱包余额。
$btc = $mixinSdkNew->Wallet()->readAsset("c6d0c728-2624-429b-8e0d-d9d19b6592fa"); print_r($btc);
Mixin Network网络无手续费,即时确认
Mixin Network 内的任何货币交易都是免费的,并且立即到账。
前期准备:账户设置密码
对于新创建的账户,我们通过updatePin设置一个新的PIN码比特币冷钱包怎么创建,代码如下:
//Create a PIN. $pinInfo = $mixinSdkNew->Pin()->updatePin("",PIN); print_r($pinInfo);
Mixin Network 账户之间的比特币支付
通过Mixin Messenger,我们可以先把比特币转给机器人,然后让机器人把币转给新用户。
$mixinSdk = new MixinSDK(require "./config.php"); //$user_info["user_id"] generated by create user; $trans_info = $mixinSdk->Wallet()->transfer(BTC_ASSET_ID,$user_info["user_id"], $mixinSdk->getConfig()["default"]["pin"],AMOUNT); print_r($trans_info);
读取比特币余额,确认比特币转账是否成功! 请注意 $mixinSdkNew 适用于新用户。
$btc = $mixinSdkNew->Wallet()->readAsset(BTC_ASSET_ID); print_r($btc);
如何将比特币存入您的冷钱包或第三方交易所
如果你想充币到你的冷钱包或第三方交易所,你必须先在第三方交易所获取冷钱包或你的钱包地址,然后将钱包地址提交给Mixin Network。
注意事项:提现需要支付续费,所以请准备好你的比特币钱包地址!
添加目标钱包地址到 Mixin Network
调用createAddress接口会返回一个address_id,在下次提现操作中会用到。
$btcInfo = $mixinSdkNew->Wallet()->createAddress("c6d0c728-2624-429b-8e0d-d9d19b6592fa", "14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C", $mixinSdkNew->getConfig()["default"]["pin"], "BTC withdral",false);
这里14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C是一个比特币钱包地址,如下图,取款手续费为0.0025738 BTC,address_id为“345855b5-56a5-4f3b-ba9e-d99601ef86c1”。
Array ( [type] => address [address_id] => 345855b5-56a5-4f3b-ba9e-d99601ef86c1 [asset_id] => c6d0c728-2624-429b-8e0d-d9d19b6592fa [public_key] => 14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C [label] => BTC withdral [account_name] => [account_tag] => [fee] => 0.0025738 [reserve] => 0 [dust] => 0.0001 [updated_at] => 2019-02-20T01:47:56.44067294Z )
提现地址创建成功后,您可以使用readAddress读取最新的提现手续费。
$wdInfo = $mixinSdkNew->Wallet()->readAddress($btcInfo["address_id"]);
提交提现请求,Mixin Network将立即处理提现请求。
向 Mixin Network 提交取款请求,$btcInfo["address_id"] 由 createAddress 创建。
$wdInfo = $mixinSdkNew->Wallet()->withdrawal($btcInfo["address_id"], "0.01", $mixinSdkBot->getConfig()["default"]["pin"], "BTC withdral");
您可以通过 blockchain explore 查看进度。
完整代码在这里