主页 > imtoken苹果版教程 > Python比特币教程3:创建比特币钱包、读取余额、快速免费转账、标准转账

Python比特币教程3:创建比特币钱包、读取余额、快速免费转账、标准转账

imtoken苹果版教程 2023-01-27 05:44:50

我们创建了一个响应消息的机器人和一个自动用比特币支付的机器人。

通过本教程,您将了解以下内容

如何创建比特币钱包。

如何读取比特币钱包的余额。

如何免费支付比特币,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可以提供一些比特币相关的信息:

存款地址:[public_key]

徽标:[icon_url]

p>

资产名称:[名称]

Mixin Network 中的资产 uuid:[asset_key]

兑美元的价格(由 Coinmarketcap.com 提供):[price_usd]

存币时确认的区块数:[confirmations]

比特币私钥呢?

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

不只是比特币,还有以太坊、EOS等

此账号不仅支持比特币,还支持以太坊、EOS等,区块链支持的完整列表。该账号还支持所有ERC20代币,支持EOS代币。

创建其他钱包的过程与创建比特币钱包相同,只需读取对应的资产余额即可。

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

EOS

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

CNB

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

LTC

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

SC

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

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

ZEC

c996abc9-d94e-4494-b 1cf-2a3fd3ac5714

BCH

fd11b6e3-0b87-41f1-a41f-f0e9b49e5bf0

EOS的充值地址与其他币种有些不同,它由两部分组成:account_name和account tag,如果你将EOS充值到Mixin Network,你需要填写两条数据:account name是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。以目前 4,000 美元的价格计算,大约是 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网络免费,即时确认

任何币种在 Mixin 网络内的交易都是免费的,会立即到账。

前期准备:账号已设置PIN

对于新创建的账号,我们通过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 API,会返回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,"")

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

完整的代码在这里

文章来源:segmentfault,作者:Mixin_Network。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:sean.li#ucloud.cn(邮箱中#请改为@)进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
@ >

后台-系统设置-扩展变量-移动广告-正文底部