主页 > imtoken浏览器可以下载 > Python比特币教程3:创建比特币钱包、读取余额、快速免费转账、标准转账
Python比特币教程3:创建比特币钱包、读取余额、快速免费转账、标准转账
我们已经创建了一个响应消息的机器人和一个自动支付比特币的机器人。
通过本教程的学习,您可以学到以下内容: 如何创建比特币钱包。 如何读取比特币钱包的余额。 如何实现比特币免手续费支付,1秒到账 如何将Mixin Network的比特币提现到您的冷钱包或第三方交易所。 通过 Mixin Network Python SDK 创建比特币钱包
前期准备:必须有一个Mixin Network账号,如果没有账号,一行代码创建一个
userInfo = mixinApiBotInstance.createUser(session_key.decode(),"Tom Bot")
上面的语句会在本地创建RSA密钥对,然后调用Mixin Network创建账户,最后输出账户信息。
//Create User api include all account information userInfo.get("data").get("pin_token"), userInfo.get("data").get("session_id"), userInfo.get("data").get("user_id"),
账号创建成功后,结果如下:
{'data': {'type': 'user', 'user_id': '2f25b669-15e7-392c-a1d5-fe7ba43bdf37', 'identity_number': '0', 'full_name': 'Tom Bot', 'avatar_url': '', 'relationship': '', 'mute_until': '0001-01-01T00:00:00Z', 'created_at': '2019-02-22T06:23:41.754573722Z', 'is_verified': False, 'session_id': '284c7b39-3284-4cf6-9354-87df30ec7d57', 'phone': '', 'pin_token': 'g4upUgBXa8ATk7yxL6B94HgI4GV4sG4t8Wyn6uTu2Q2scH11UMQ5bYDb6Md+3LRQqRjEdRFcLlHijXGBihRweTaKTZjHQqolWbZcffesVIias6WppV/QMu4TzXCuKa5xpj3uhjL+yPyfWTLGUaVJTJN9n7PQmHSIUBXrovbfodk=', 'invitation_code': '', 'code_id': '', 'code_url': '', 'has_pin': False, 'receive_message_source': 'EVERYBODY', 'accept_conversation_source': 'EVERYBODY'}}
现在您需要妥善保管您的账户信息,在读取账户的比特币资产余额或进行其他操作时会需要这些信息。
为新创建的账户创建一个比特币钱包
新账户默认没有内置比特币钱包,现在可以通过读取比特币余额创建比特币钱包。
def readAssetAddress(asset_id,isBTC = True): with open('new_users.csv', newline='') as csvfile: reader = csv.reader(csvfile) for row in reader: pin = row.pop() userid = row.pop() session_id = row.pop() pin_token = row.pop() private_key = row.pop() mixinApiNewUserInstance = generateMixinAPI(private_key, pin_token, session_id, userid, pin,"") btcInfo = mixinApiNewUserInstance.getAsset(asset_id) print(btcInfo) if isBTC: print("Account %s \'s Bitcoin wallet address is %s " %(userid,btcInfo.get("data").get("public_key"))) else: print("Account %s \'s EOS account name is %s, wallet address is %s " %(userid, btcInfo.get("data").get("account_name"), btcInfo.get("data").get("account_tag")))
创建账户的比特币资产明细如下比特币转账有手续费吗,其中公钥为比特币充值地址:
{'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': '12sJHR7HJPMt33KwSHyxQvYqGGUEbVGREf', 'account_name': '', 'account_tag': '', 'price_btc': '1', 'price_usd': '3879.88117389', 'change_btc': '0', 'change_usd': '0.017333475714793264', 'asset_key': 'c6d0c728-2624-429b-8e0d-d9d19b6592fa', 'confirmations': 12, 'capitalization': 0}} Account a8cefb2e-cb93-338f-aba7-32a3a635ad02 's Bitcoin wallet address is 12sJHR7HJPMt33KwSHyxQvYqGGUEbVGREf
这个API可以提供比特币相关的几个信息:
比特币私钥呢?
比特币的私钥呢? 该私钥由 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资产余额返回结果如下:
{'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': '70dae97b661ca9f80cb0e6549feeba6c', 'price_btc': '0.00092392', 'price_usd': '3.58276497', 'change_btc': '-0.019294922814297986', 'change_usd': '-0.0033825963089133683', 'asset_key': 'eosio.token:EOS', 'confirmations': 64, 'capitalization': 0}} Account a8cefb2e-cb93-338f-aba7-32a3a635ad02 's EOS account name is eoswithmixin, wallet address is 70dae97b661ca9f80cb0e6549feeba6c
存入比特币和读取比特币余额
现在,您可以将硬币存入您的比特币钱包。
当然,在比特币网络中转币的费用是相当昂贵的。 费用的中位数是 0.001BTC。 按照现在4000美元的价格,大概是4美元左右。 有一个方便的方法,如果你有一个 Mixin Messenger 账户,里面有比特币,你可以直接提币到新创建账户的比特币充值地址。 他们在同一个Mixin Network网络,手续费为0,1秒到账。
以下代码可以读取比特币钱包余额。
btcInfo = mixinApiNewUserInstance.getAsset(asset_id) print("Account %s \'s balance is %s " %(userid,btcInfo.get("data").get("balance")))
Mixin Network网络无手续费,即时确认
Mixin Network 内的任何货币交易都是免费的,并且立即到账。
前期准备:账户设置密码
对于新创建的账户比特币转账有手续费吗,我们通过updatePin设置一个新的PIN码,代码如下:
pinInfo = mixinApiNewUserInstance.updatePin(PIN,"") print(pinInfo)
Mixin Network 账户之间的比特币支付
通过Mixin Messenger,我们可以先把比特币转给机器人,然后让机器人把币转给新用户。
mixinApiNewUserInstance = generateMixinAPI(private_key, pin_token, session_id, userid, pin,"") btcInfo = mixinApiBotInstance.transferTo(MASTER_UUID, BTC_ASSET_ID, AMOUNT, "") print(btcInfo)
读取比特币余额,确认比特币转账是否成功! 请注意 $mixinSdkNew 适用于新用户。
btcInfo = mixinApiNewUserInstance.getAsset(asset_id) print("Account %s \'s balance is %s " %(userid,btcInfo.get("data").get("balance")))
如何将比特币存入您的冷钱包或第三方交易所
如果你想充币到你的冷钱包或第三方交易所,你必须先在第三方交易所获取冷钱包或你的钱包地址,然后将钱包地址提交给Mixin Network。
添加目标钱包地址到 Mixin Network
调用createAddress接口会返回一个address_id,在下次提现操作中会用到。
BTC_ASSET_ID = "c6d0c728-2624-429b-8e0d-d9d19b6592fa"; EOS_ASSET_ID = "6cfe566e-4aad-470b-8c9a-2fd35b49c68d"; BTC_WALLET_ADDR = "14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C"; btcInfo = mixinApiBotInstance.createAddress(BTC_ASSET_ID, BTC_WALLET_ADDR,"BTC","","") print(btcInfo)
这里14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C是一个比特币钱包地址,如下图,取款手续费为0.0034802 BTC,address_id为“345855b5-56a5-4f3b-ba9e-d99601ef86c1”。
{'data': {'type': 'address', 'address_id': '47998e2f-2761-45ce-9a6c-6f167b20c78b', 'asset_id': 'c6d0c728-2624-429b-8e0d-d9d19b6592fa', 'public_key': '14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C', 'label': 'BTC', 'account_name': '', 'account_tag': '', 'fee': '0.0034802', 'reserve': '0', 'dust': '0.0001', 'updated_at': '2019-02-26T00:03:05.028140704Z'}}
如果您操作的是EOS,示例代码如下:
EOS_ASSET_ID = "6cfe566e-4aad-470b-8c9a-2fd35b49c68d"; EOS_WALLET_ADDR = "3e2f70914c8e8abbf60040207c8aae62"; EOS_ACCOUNT_NAME = "eoswithmixin"; eosInfo = mixinApiBotInstance.createAddress(EOS_ASSET_ID, "","",EOS_ACCOUNT_NAME,EOS_WALLET_ADDR) print(eosInfo)
提现地址创建成功后,您可以使用readAddress读取最新的提现手续费。
addr_id = btcInfo.get("data").get("address_id") addrInfo = mixinApiBotInstance.getAddress(addr_id) print(addrInfo)
提交提现请求,Mixin Network将立即处理提现请求。
向 Mixin Network 提交取款请求,$btcInfo["address_id"] 由 createAddress 创建。
mixinApiBotInstance.withdrawals(btcInfo.get("data").get("address_id"),AMOUNT,"")
您可以通过 blockchain explore 查看进度。
完整代码在这里