zoukankan      html  css  js  c++  java
  • 孤荷凌寒自学python第130天区块链044以太坊的 erc20代币14

    孤荷凌寒自学python第130天区块链044以太坊的 erc20代币14

    【主要内容】

    今天继续使用erc20标准规范按另一篇网络博文的教程进行复制代码来批注一个可以发行代币的智能合约。学习共用时31分钟。

    (此外整理作笔记花费了约40分钟)

    详细学习过程见文末学习过程屏幕录像。

    【学习笔记】

    今天完成的Py代码

    继续完善对合约函数的调用,进行反复测试,今天测试的重点是,合约的拥有者的更改。

    ```

    import time

    from web3 import Web3, HTTPProvider

     

    import contract_abi

     

    contract_address="0xf89074dcdd8798b7e20b8cd88a9a38f27479411c"  #CloudImage代币合约地址,就是我自己创建(部署)的智能合约

     

    #下面两行定义的是部署合约的节点(创世节点)的信息,私钥和公钥

    wallet_private_key="D8EF07D32389148E9DA6C54237BD5A39C92917D59340AA5D6064485C01E96FB2" #狐狸钱包的私钥

    wallet_address="0x5227C3EF48B5A1bcF784593e46D9579D26a3b592" #狐狸钱包的公钥,就是钱包地址,是eth网络上的一个节点。

    #下面两行定义的是节点2的信息

    w2pkey="D5EC2E192E0362FF81B46F6AFB331772F85CE9B4A79F2A0962858301E72AAF1C" #私钥

    w2add="0xe2d6c2f289c53B5aEA44C47293Ba179a3bfa21f0" #公钥

     

    #下面两行定义的是节点3 的信息

    w3pkey="1DCA9DF70412154D19FA78EFDAD1E9AC4AB60FB44DCFBC4323051DDF3141E98A" #私钥

    w3add="0xb40599fB0366DCf0ffe86677b005b3f20Dfa29aE" #公钥

     

    #下面两行定义的是节点4 的信息

    w4pkey="B2F1B869D373791B49A9058F4AF90E7AEEB883EAA783AC6244A6D6157B7C7BE6" #私钥

    w4add="0x70c8461366d5368B1E79CBFc2Acf4ba56C745977" #公钥

     

    w3 = Web3(HTTPProvider("https://ropsten.infura.io/v3/79124269dc454e47bee73f964c971d3c")) #里面的参数字符串是在infura.io网站上申请 到的一个节点地址。

     

    w3.eth.enable_unaudited_features() #确认我们知道可能会发生问题的情况。

     

    contract = w3.eth.contract(address = contract_address, abi = contract_abi.abi)

    #---上一行中,contract_abi.abi,表示引用了存放在contract_abi.py文件中的变量abi的列表

    #---整个代码就是通过智能合约在eth网络上的地址 和对应ABI连接列表来得到指定的智能合约对象contract

     

    print(w3.eth.blockNumber) #打印eth网络最后一个区块的id

     

    def transfer(calladd,callprivate,toadd,v):

        nonce = w3.eth.getTransactionCount(calladd) #这里要求出的是,哪个节点发起交易,就返回指定节点地址发起的交易数。

        '''

        这个nonce不是矿工挖矿时进行工作量证明计算得到的nonce值(就是那个写在区块头中的Nonce值)

        而是:https://blog.csdn.net/weixin_33941350/article/details/86836707

        一个交易需要用到以下参数

        var rawTx = {

            nonce: '0x14',

            gasPrice: '0x3B9ACA00',

            gasLimit: '0xC20A',

            to: '0x5fb30123b9efedcd15094266948fb7c862279ee1',

            value: '0x00',

            data: '0x' + '60fe47b1' + '000000000000000000000000000000000000000000000000000000000000000a'

        }

        nonce :纪录目前帐户送出的交易数,用来避免重放攻击,针对每一个账户nonce都是从0开始,每次送要加 1,当前面的nonce处理完成之后才会处理后面的nonce。以太坊系列(ETH&ETC)在发送交易有三个对应的RPC接口,分别是eth_sendTransaction、eth_sendRawTransaction和personal_sendTransaction。这三个接口发送(或构造发送内容时)都需要一个参数nonce。官方文档对此参数的解释是:整数类型,允许使用相同随机数覆盖自己发送的处于pending状态的交易。

        可以用 RPC eth_getTransactionCount 查询目前账户的 nonce。同时此地址再发起一笔交易,如果通过eth_getTransactionCount获取的nonce值与上一个nonce值相同,用同样的nonce值再发出交易时,如果手续费高于原来的交易,那么第一笔交易将会被覆盖,如果手续费低于原来的交易就会发生异常。通常情况下,覆盖掉一笔处于pending状态的交易gas price需要高于原交易的110%。

        gasPrice :表示gas价格,以wei为单位。如果此gasPrice低于矿工期望的gasPrice,矿工将拒绝打包交易。

        gasLimit :gas是计算资源的计量单位,以太坊虚拟机EVM的每个操作都被分配了一个数字,用以表示它可以消耗的gas。因此每笔交易消耗的gas与此交易所需要的计算量和存储量有关。gasLimit设置了此次交易可以消耗的gas上限,如果交易实际消耗的gas少于或等于gasLimit,交易成功进行,并退还多余gas。否则此交易不但作废,这些已消耗的gas也无法返还,矿工仍能收到费用。费用的计算方法是实际消耗的gas*gasPrice。

        '''

     

        #下面的方法使用的是比较复杂一些的SendTransaction()方法来转移代币,----

        #----简单的方法指transact(),如:

        '''

        contract.transact({'from':sub_address, 'gas': 90000}).approve(gas_address,amount_of_token) #授权gas_address可以从sub_address转移amount_of_token的代币

        contract.transact({'from':gas_address, 'gas': 90000}).transferFrom(sub_address,wallet_address,1) #授权转移

        '''

        txn_dict = contract.functions.transfer(toadd,v).buildTransaction({

            'chainId': 3, #指测试网络

            'gas': 140000,

            'gasPrice': w3.toWei('40', 'gwei'),

            'nonce': nonce,

        })

     

        signed_txn = w3.eth.account.signTransaction(txn_dict, private_key=callprivate)

     

        result = w3.eth.sendRawTransaction(signed_txn.rawTransaction)

     

        tx_receipt = w3.eth.getTransactionReceipt(result)

     

        count = 0

        while tx_receipt is None and (count < 30):

     

            time.sleep(10)

     

            tx_receipt = w3.eth.getTransactionReceipt(result)

     

            print(tx_receipt)

     

            count+=1

     

        if tx_receipt is None:

            return {'status': 'failed', 'error': 'timeout'}

     

        processed_receipt = contract.events.Transfer().processReceipt(tx_receipt)

        #---监测智能合约的事件的写法与调用智能合约的函数的写法是不同的。-----

        #---将tx_receipt作为参数传入,作用是定位吗?用以确定是哪个互动引发的事件?

     

        print(processed_receipt)

        #---processed_receipt变量中得到了通过监听事件而获取的事件广播的全部信息(合约中的此事件广播了两个信息:一个是发起交易方的地址,二个是发表的意见。)

       

        output = "Address {} broadcasted the opinion: {}"

            .format(processed_receipt[0].args._from, processed_receipt[0].args._to)

        #上一行代码将两个信息分别提取出来 ,使用到了.args子对象,args子对象中包含了智能合约指定事件的两个形参的标识名称。

        #--注意这儿使用了processed_receipt[0],说明包含了多个事件广播 的内容。

        print(output)

     

        return {'status': 'added', 'processed_receipt': processed_receipt}

     

    def approve(sendadd,receiveadd,sendprivate,approvevalue):

        nonce = w3.eth.getTransactionCount(sendadd) #这儿使用的发起授权操作节点的地址

     

        #下面调用了合约的发起授权的函数

        txn_dict = contract.functions.approve(receiveadd,approvevalue).buildTransaction({

            'chainId': 3, #指测试网络

            'gas': 140000,

            'gasPrice': w3.toWei('40', 'gwei'),

            'nonce': nonce,

        })

        #开始执行发送方的私钥签名操作

        signed_txn = w3.eth.account.signTransaction(txn_dict, private_key=sendprivate) #这儿使用发起授权操作节点的私钥来签名

        #向网络发送交易信息

        result = w3.eth.sendRawTransaction(signed_txn.rawTransaction)

        #准备接收发送回执

        tx_receipt = w3.eth.getTransactionReceipt(result)

     

        count = 0

        while tx_receipt is None and (count < 60):

     

            time.sleep(10)

     

            tx_receipt = w3.eth.getTransactionReceipt(result)

     

            print(tx_receipt)

     

            count+=1

     

        #如果收到回执,检查

        if tx_receipt is None:

            return {'status': 'failed', 'error': 'timeout'}

     

        #监听本次事务(交易)的事件广播

        processed_receipt = contract.events.Approval().processReceipt(tx_receipt)

        #---监测智能合约的事件的写法与调用智能合约的函数的写法是不同的。-----

        #---将tx_receipt作为参数传入,作用是定位吗?用以确定是哪个互动引发的事件?

     

        print(processed_receipt)

        #---processed_receipt变量中得到了通过监听事件而获取的事件广播的全部信息(合约中的此事件广播了两个信息:一个是发起交易方的地址,二个是发表的意见。)

       

        output = "Address {} broadcasted the opinion: {}"

            .format(processed_receipt[0].args._owner, processed_receipt[0].args._spender)

        #上一行代码将两个信息分别提取出来 ,使用到了.args子对象,args子对象中包含了智能合约指定事件的两个形参的标识名称。

        #--注意这儿使用了processed_receipt[0],说明包含了多个事件广播 的内容。

        print(output)

     

        return {'status': 'added', 'processed_receipt': processed_receipt}

     

    #查询一个节点向另一个节点授权可使用的代币目前总余额

    def getAllowance(owneradd,spenderadd):

        return contract.functions.allowance(owneradd,spenderadd).call()

     

    #接受委托使用委托方代币的受托节点调用合约的transerFrom()方法转移委托方指定数量的代币给第三方

    def transerFrom(spenderadd,spenderprikey,owneradd,toadd,tovalue):

        #---采用简便的发起有gas交易的方法,没有手动的私钥签名方法,运行时报错

        #r=contract.transact({'from':spenderadd, 'gas': 90000}).transferFrom(owneradd,toadd,tovalue)

        #print(r)

        '''

            使用上面的方法,报错如下:

            Traceback (most recent call last):

            File "ptvsd_launcher.py", line 43, in <module>       

            main(ptvsdArgs)

            File "__main__.py", line 434, in main

            run()

            File "__main__.py", line 312, in run_file

            runpy.run_path(target, run_name='__main__')  File "runpy.py", line 263, in run_path    pkg_name=pkg_name, script_name=fname)  File "runpy.py", line 96, in _run_module_code

            mod_name, mod_spec, pkg_name, script_name)

            File "runpy.py", line 85, in _run_code

            exec(code, run_globals)

            File "mint_contract.py", line 169, in <module>

            transerFrom(w2add,wallet_address,w3add,50)

            File "mint_contract.py", line 156, in traValueError: {'code': -32601, 'message': 'The method eth_sendTransaction does not exist/is not available'}

        '''

        #---使用之前的方法

        #---得到nonce值

        nonce = w3.eth.getTransactionCount(spenderadd) #这儿使用的发起本次交易的操作节点的地址

     

        #下面调用了合约的发起第三方交易的函数

        txn_dict = contract.functions.transferFrom(owneradd,toadd,tovalue).buildTransaction({

            'chainId': 3, #指测试网络

            'gas': 140000,

            'gasPrice': w3.toWei('40', 'gwei'),

            'nonce': nonce,

        })

        #开始执行发送方的私钥签名操作

        signed_txn = w3.eth.account.signTransaction(txn_dict, private_key=spenderprikey) #这儿使用发起本次交易(即之前接受了授权的)操作节点的私钥来签名

        #向网络发送交易信息

        result = w3.eth.sendRawTransaction(signed_txn.rawTransaction)

        #准备接收发送回执

        tx_receipt = w3.eth.getTransactionReceipt(result)

     

        count = 0

        while tx_receipt is None and (count < 60):

     

            time.sleep(10)

     

            tx_receipt = w3.eth.getTransactionReceipt(result)

     

            print(tx_receipt)

     

            count+=1

     

        #如果收到回执,检查

        if tx_receipt is None:

            return {'status': 'failed', 'error': 'timeout'}

     

        #监听本次事务(交易)的事件广播

        processed_receipt = contract.events.Transfer().processReceipt(tx_receipt)

        #---监测智能合约的事件的写法与调用智能合约的函数的写法是不同的。-----

        #---将tx_receipt作为参数传入,作用是定位吗?用以确定是哪个互动引发的事件?

     

        print(processed_receipt)

        #---processed_receipt变量中得到了通过监听事件而获取的事件广播的全部信息(合约中的此事件广播了两个信息:一个是发起交易方的地址,二个是发表的意见。)

       

        output = "Address {} broadcasted the opinion: {}"

            .format(processed_receipt[0].args._from, processed_receipt[0].args._to)

        #上一行代码将两个信息分别提取出来 ,使用到了.args子对象,args子对象中包含了智能合约指定事件的两个形参的标识名称。

        #--注意这儿使用了processed_receipt[0],说明包含了多个事件广播 的内容。

        print(output)

     

        return {'status': 'added', 'processed_receipt': processed_receipt}

     

    #--设置vip账户-----

    def setVip(calladd,callprivate,vipadd,isadd):

        try:

            #---得到nonce值

            nonce = w3.eth.getTransactionCount(calladd) #这儿使用的发起本次交易的操作节点的地址

     

            #下面调用了合约的设置VIP节点的函数

            txn_dict = contract.functions.setExclude(vipadd,isadd).buildTransaction({

                'chainId': 3, #指测试网络

                'gas': 140000,

                'gasPrice': w3.toWei('40', 'gwei'),

                'nonce': nonce,

            })

            #开始执行发送方的私钥签名操作

            signed_txn = w3.eth.account.signTransaction(txn_dict, private_key=callprivate)

            #向网络发送交易信息

            result = w3.eth.sendRawTransaction(signed_txn.rawTransaction)

            #准备接收发送回执

            tx_receipt = w3.eth.getTransactionReceipt(result)

     

            count = 0

            while tx_receipt is None and (count < 60):

     

                time.sleep(10)

     

                tx_receipt = w3.eth.getTransactionReceipt(result)

     

                print(tx_receipt)

     

                count+=1

     

            #如果收到回执,检查

            if tx_receipt is None:

                return {'status': 'failed', 'error': 'timeout'}

            else:

                return tx_receipt

        except Exception as e:

            print(e)

        else:

            pass

        finally:

            pass

     

    #设置是否允许合约交易的全局开关

    def enableContract(calladd,callprivate,isEnable):

        try:

            #---得到nonce值

            nonce = w3.eth.getTransactionCount(calladd) #这儿使用的发起本次交易的操作节点的地址

     

            #下面调用了合约的发起第三方交易的函数

            txn_dict = contract.functions.enableTransfer(isEnable).buildTransaction({

                'chainId': 3, #指测试网络

                'gas': 140000,

                'gasPrice': w3.toWei('40', 'gwei'),

                'nonce': nonce,

            })

            #开始执行发送方的私钥签名操作

            signed_txn = w3.eth.account.signTransaction(txn_dict, private_key=callprivate)

            #向网络发送交易信息

            result = w3.eth.sendRawTransaction(signed_txn.rawTransaction)

            #准备接收发送回执

            tx_receipt = w3.eth.getTransactionReceipt(result)

     

            count = 0

            while tx_receipt is None and (count < 60):

     

                time.sleep(10)

     

                tx_receipt = w3.eth.getTransactionReceipt(result)

     

                print(tx_receipt)

     

                count+=1

     

            #如果收到回执,检查

            if tx_receipt is None:

                return {'status': 'failed', 'error': 'timeout'}

            else:

                return tx_receipt

        except  Exception as e:

            print(e)

        else:

            pass

        finally:

            pass

     

    #--更换合约的拥有节点-------

    #--当前拥有者调用,指明新的拥有者节点----

    def changeOwner(curOwnerAdd,curOwnerPrikey,newOwnerAdd):

        try:

            #---得到nonce值

            nonce = w3.eth.getTransactionCount(curOwnerAdd) #这儿使用的发起本次交易的操作节点的地址

     

            #下面调用了合约的更换拥有者的函数---调用时需要构建一次事务交易,方便支付gas

            txn_dict = contract.functions.changeOwner(newOwnerAdd).buildTransaction({

                'chainId': 3, #指测试网络

                'gas': 140000,

                'gasPrice': w3.toWei('40', 'gwei'),

                'nonce': nonce,

            })

            #开始执行发送方的私钥签名操作

            signed_txn = w3.eth.account.signTransaction(txn_dict, private_key=curOwnerPrikey)

            #向网络发送交易信息

            result = w3.eth.sendRawTransaction(signed_txn.rawTransaction)

            #准备接收发送回执

            tx_receipt = w3.eth.getTransactionReceipt(result)

     

            count = 0

            #这儿可能等不到回执 ,因为似乎合约函数中没有返回内容

            while tx_receipt is None and (count < 30):

     

                time.sleep(10)

     

                tx_receipt = w3.eth.getTransactionReceipt(result)

     

                print(tx_receipt)

     

                count+=1

     

            #如果收到回执,检查

            if tx_receipt is None:

                return {'status': 'failed', 'error': 'timeout'}

            else:

                return tx_receipt

        except Exception as e:

            print(e)

        else:

            pass

        finally:

            pass

     

    #新的拥有合约的节点接受授权的函数调用

    def acceptOwner(newOwnerAdd,newOwnerPrikey):

        try:

            #---得到nonce值

            nonce = w3.eth.getTransactionCount(newOwnerAdd) #这儿使用的发起本次交易的操作节点的地址

     

            #下面调用了合约的更换拥有者的函数---调用时需要构建一次事务交易,方便支付gas

            txn_dict = contract.functions.acceptOwnership().buildTransaction({

                'chainId': 3, #指测试网络

                'gas': 140000,

                'gasPrice': w3.toWei('40', 'gwei'),

                'nonce': nonce,

            })

            #开始执行发送方的私钥签名操作

            signed_txn = w3.eth.account.signTransaction(txn_dict, private_key=newOwnerPrikey)

            #向网络发送交易信息

            result = w3.eth.sendRawTransaction(signed_txn.rawTransaction)

            #准备接收发送回执

            tx_receipt = w3.eth.getTransactionReceipt(result)

     

            count = 0

            while tx_receipt is None and (count < 30):

     

                time.sleep(10)

     

                tx_receipt = w3.eth.getTransactionReceipt(result)

     

                print(tx_receipt)

     

                count+=1

     

            #如果收到回执,检查

            if tx_receipt is None:

                return {'status': 'failed', 'error': 'timeout'}

            else:

                return tx_receipt

        except Exception as e:

            print(e)

        else:

            pass

        finally:

            pass

     

    #执行代币转移---

    #r=transfer(wallet_address,wallet_private_key, w2add,100)

    #print(r)

    #----下面是账户二传10个CI给账户三

    #r=transfer(w2add,w2pkey, w3add,10)

    #print(r)

    #-----下面是账户三转10个CI给账户二

    #r=transfer(w3add,w3pkey,w2add,10)

    #print(r)

     

    #节点一向节点二授权可以使用节点一的200个代币

    #r=approve(wallet_address,w2add,wallet_private_key,200)

    #print(r)

     

    #---节点二使用节点一的代币发送给节点三

    #k=transerFrom(w2add,w2pkey,wallet_address,w3add,80)

    #print(k)

     

    #---节点二使用节点一的代币发送给节点四

    #k=transerFrom(w2add,w2pkey,wallet_address,w4add,50)

    #print(k)

     

    #查询节点一授权给节点二的可用代币余额

    #r=getAllowance(wallet_address,w2add)

    #print('现在的可以授权代币余额:',r)

     

    #将账户三添加为VIP

    #--添加

    #r=setVip(wallet_address,wallet_private_key,w3add,True)

    #print(r)

     

    #调用全局开关,不再允许除vip节点外的其它任何节点调用合约进行交易

    #---不允许

    #r=enableContract(wallet_address,wallet_private_key,False)

    #print(r)

    #---允许

    #r=enableContract(wallet_address,wallet_private_key,True)

    #print(r)

     

    #----第一回合,让不是合约拥有者的节点二来进行合约拥有节点的更改调用

    #r=changeOwner(w2add,w2pkey,w3add)

    #print(r)

     

    #-----第二回合,让当前 真正的合约拥有者节点一来进行合约拥有节点的更改调用

    #r=changeOwner(wallet_address,wallet_private_key,w2add) #这一次呢让节点二真正成为合约的拥有者。

    #print(r)

     

    #让节点二接受拥有者身份的改变---

    #r=acceptOwner(w2add,w2pkey)

    #print(r)

     

    #-----第三回合,让现在是合约拥有者身份的节点二来进行更改合约拥有者身份的调用

    #r=changeOwner(w2add,w2pkey,w3add)

    #print(r)

     

    #现在节点三要接受授权

    r=acceptOwner(w3add,w3pkey)

    print(r)

     

     

    ```

    今天的全部执行结果:

    ```

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段6103960

    None

    None

    None

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14> cd 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PY00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'), 'status': 1, 'to': '0xf89074dcdd8798b7e20b8cd88a9a38f27479411c', 'transactionHash': HexBytes('0x6a7d6f29f62791788e7bd10d16bf43c3655ecbccdd1eb5be5339e7635f9df582'), 'transactionIndex': 0})THON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '19325' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contract.py'6103988NoneNoneNone

    None

    None

    AttributeDict({'blockHash': HexBytes('0xf00ef7bb225476638ea032fc8c1e36a6dc54b5bb6d1088ec348bcb04e081f3e5'), 'blockNumber': 6103990, 'contractAddress': None, 'cumulativeGasUsed': 100651, 'from': '0xe2d6c2f289c53b5aea44c47293ba179a3bfa21f0', 'gasUsed': 34469, 'logs': [AttributeDict({'address': '0xF89074dcDd8798B7E20b8cd88A9a38F27479411C', 'blockHash': HexBytes('0xf00ef7bb225476638ea032fc8c1e36a6dc54b5bb6d1088ec348bcb04e081f3e5'), 'blockNumber': 6103990, 'data': '0x0000000000000000000000005227c3ef48b5a1bcf784593e46d9579d26a3b592000000000000000000000000e2d6c2f289c53b5aea44c47293ba179a3bfa21f0', 'logIndex': 1, 'removed': False, 'topics': [HexBytes('0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a')], 'transactionHash': HexBytes('0xf6062524aee6ec7a7affb6cc96bad74a0068f8024e539cf28452a70e996583fc'), 'transactionIndex': 1})], 'logsBloom': HexBytes('0x00200000000000000000000080000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000'), 'status': 1, 'to': '0xf89074dcdd8798b7e20b8cd88a9a38f27479411c', 'transactionHash': HexBytes('0xf6062524aee6ec7a7affb6cc96bad74a0068f8024e539cf28452a70e996583fc'), 'transactionIndex': 1})

    AttributeDict({'blockHash': HexBytes('0xf00ef7bb225476638ea032fc8c1e36a6dc54b5bb6d1088ec348bcb04e081f3e5'), 'blockNumber': 6103990, 'contractAddress': None, 'cumulativeGasUsed': 100651, 'from': '0xe2d6c2f289c53b5aea44c47293ba179a3bfa21f0', 'gasUsed': 34469, 'logs': [AttributeDict({'address': '0xF89074dcDd8798B7E20b8cd88A9a38F27479411C', 'blockHash': HexBytes('0xf00ef7bb225476638ea032fc8c1e36a6dc54b5bb6d1088ec348bcb04e081f3e5'), 'blockNumber': 6103990, 'data': '0x0000000000000000000000005227c3ef48b5a1bcf784593e46d9579d26a3b592000000000000000000000000e2d6c2f289c53b5aea44c47293ba179a3bfa21f0', 'logIndex': 1, 'removed': False, 'topics': [HexBytes('0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a')], 'transactionHash': HexBytes('0xf6062524aee6ec7a7affb6cc96bad74a0068f8024e539cf28452a70e996583fc'), 'transactionIndex': 1})], 'logsBloom': HexBytes('0x00200000000000000000000080000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000'), 'status': 1, 'to': '0xf89074dcdd8798b7e20b8cd88a9a38f27479411c', 'transactionHash': HexBytes('0xf6062524aee6ec7a7affb6cc96bad74a0068f8024e539cf28452a70e996583fc'), 'transactionIndex': 1})

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14> cd 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20041' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_cont

    哎呀,出现问题。请在报告此 Bug 时添加以下详细信息。

    在 GitHub 上报告: https://github.com/lzybkr/PSReadLine/issues/new

    -----------------------------------------------------------------------

    上 200 个密钥:

     . 2 4 2 2 1 p y t h o n F i l e s p t v s d _ l a u n c h e r . p y ' Space ' - - d e f a u l t ' Space ' - - c l i e n t ' Space ' - - h o s t ' Space ' l o c a l h o s t ' Space ' - - p o r t ' Space ' 2 0 0 4 1 ' Space ' i : M A K E A P P p y t h o n P y t h o n 3 6 5 边 学 习 边 测 试 文 件 夹 自 学 P Y T H O N 部

    分 第 二 阶 段 0 1 3 0 自 学 p y t h o n _ 区 块 链 0 4 4 _ 自 己 发 币 1 4 m i n t _ c o n t r a c t . p y ' Space Enter

     

     

    异常:

    System.ArgumentOutOfRangeException: 该值必须大于或等于零,且必须小于控制台缓冲区在该维度的大小。

    参数名: top

    实际值是 -1。

       在 System.Console.SetCursorPosition(Int32 left, Int32 top)

       在 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)

       在 Microsoft.PowerShell.PSConsoleReadLine.ForceRender()

       在 Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c)

       在 Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.InputLoop()

       在 Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)

    -----------------------------------------------------------------------

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14> cd 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20041' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contr

    哎呀,出现问题。请在报告此 Bug 时添加以下详细信息。

    在 GitHub 上报告: https://github.com/lzybkr/PSReadLine/issues/new

    -----------------------------------------------------------------------

    上 200 个密钥:

     . 2 4 2 2 1 p y t h o n F i l e s p t v s d _ l a u n c h e r . p y ' Space ' - - d e f a u l t ' Space ' - - c l i e n t ' Space ' - - h o s t ' Space ' l o c a l h o s t ' Space ' - - p o r t ' Space ' 2 0 0 4 1 ' Space ' i : M A K E A P P p y t h o n P y t h o n 3 6 5 边 学 习 边 测 试 文 件 夹 自 学 P Y T H O N 部 

    分 第 二 阶 段 0 1 3 0 自 学 p y t h o n _ 区 块 链 0 4 4 _ 自 己 发 币 1 4 m i n t _ c o n t r a c t . p y ' Space Enter

     

     

    异常:

    System.ArgumentOutOfRangeException: 该值必须大于或等于零,且必须小于控制台缓冲区在该维度的大小。

    参数名: top

    实际值是 -1。

       在 System.Console.SetCursorPosition(Int32 left, Int32 top)

       在 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)

       在 Microsoft.PowerShell.PSConsoleReadLine.ForceRender()

       在 Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c)

       在 Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.InputLoop()

       在 Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)

    -----------------------------------------------------------------------

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14> cd 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20041' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contra

    哎呀,出现问题。请在报告此 Bug 时添加以下详细信息。

    在 GitHub 上报告: https://github.com/lzybkr/PSReadLine/issues/new

    -----------------------------------------------------------------------

    上 200 个密钥:

     . 2 4 2 2 1 p y t h o n F i l e s p t v s d _ l a u n c h e r . p y ' Space ' - - d e f a u l t ' Space ' - - c l i e n t ' Space ' - - h o s t ' Space ' l o c a l h o s t ' Space ' - - p o r t ' Space ' 2 0 0 4 1 ' Space ' i : M A K E A P P p y t h o n P y t h o n 3 6 5 边 学 习 边 测 试 文 件 夹 自 学 P Y T H O N 部 

    分 第 二 阶 段 0 1 3 0 自 学 p y t h o n _ 区 块 链 0 4 4 _ 自 己 发 币 1 4 m i n t _ c o n t r a c t . p y ' Space Enter

     

     

    异常:

    System.ArgumentOutOfRangeException: 该值必须大于或等于零,且必须小于控制台缓冲区在该维度的大小。

    参数名: top

    实际值是 -1。

       在 System.Console.SetCursorPosition(Int32 left, Int32 top)

       在 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)

       在 Microsoft.PowerShell.PSConsoleReadLine.ForceRender()

       在 Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c)

       在 Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.InputLoop()

       在 Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)

    -----------------------------------------------------------------------

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14> cd 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20041' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contrac

    哎呀,出现问题。请在报告此 Bug 时添加以下详细信息。

    在 GitHub 上报告: https://github.com/lzybkr/PSReadLine/issues/new

    -----------------------------------------------------------------------

    上 200 个密钥:

     . 2 4 2 2 1 p y t h o n F i l e s p t v s d _ l a u n c h e r . p y ' Space ' - - d e f a u l t ' Space ' - - c l i e n t ' Space ' - - h o s t ' Space ' l o c a l h o s t ' Space ' - - p o r t ' Space ' 2 0 0 4 1 ' Space ' i : M A K E A P P p y t h o n P y t h o n 3 6 5 边 学 习 边 测 试 文 件 夹 自 学 P Y T H O N 部

    分 第 二 阶 段 0 1 3 0 自 学 p y t h o n _ 区 块 链 0 4 4 _ 自 己 发 币 1 4 m i n t _ c o n t r a c t . p y ' Space Enter

     

     

    异常:

    System.ArgumentOutOfRangeException: 该值必须大于或等于零,且必须小于控制台缓冲区在该维度的大小。

    参数名: top

    实际值是 -1。

       在 System.Console.SetCursorPosition(Int32 left, Int32 top)

       在 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)

       在 Microsoft.PowerShell.PSConsoleReadLine.ForceRender()

       在 Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c)

       在 Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.InputLoop()

       在 Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)

    -----------------------------------------------------------------------

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14> cd 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20041' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contract

    哎呀,出现问题。请在报告此 Bug 时添加以下详细信息。

    在 GitHub 上报告: https://github.com/lzybkr/PSReadLine/issues/new

    -----------------------------------------------------------------------

    上 200 个密钥:

     . 2 4 2 2 1 p y t h o n F i l e s p t v s d _ l a u n c h e r . p y ' Space ' - - d e f a u l t ' Space ' - - c l i e n t ' Space ' - - h o s t ' Space ' l o c a l h o s t ' Space ' - - p o r t ' Space ' 2 0 0 4 1 ' Space ' i : M A K E A P P p y t h o n P y t h o n 3 6 5 边 学 习 边 测 试 文 件 夹 自 学 P Y T H O N 部

    分 第 二 阶 段 0 1 3 0 自 学 p y t h o n _ 区 块 链 0 4 4 _ 自 己 发 币 1 4 m i n t _ c o n t r a c t . p y ' Space Enter

     

     

    异常:

    System.ArgumentOutOfRangeException: 该值必须大于或等于零,且必须小于控制台缓冲区在该维度的大小。

    参数名: top

    实际值是 -1。

       在 System.Console.SetCursorPosition(Int32 left, Int32 top)

       在 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)

       在 Microsoft.PowerShell.PSConsoleReadLine.ForceRender()

       在 Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c)

       在 Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.InputLoop()

       在 Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)

    -----------------------------------------------------------------------

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14> cd 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20041' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contract.

    哎呀,出现问题。请在报告此 Bug 时添加以下详细信息。

    在 GitHub 上报告: https://github.com/lzybkr/PSReadLine/issues/new

    -----------------------------------------------------------------------

    上 200 个密钥:

     . 2 4 2 2 1 p y t h o n F i l e s p t v s d _ l a u n c h e r . p y ' Space ' - - d e f a u l t ' Space ' - - c l i e n t ' Space ' - - h o s t ' Space ' l o c a l h o s t ' Space ' - - p o r t ' Space ' 2 0 0 4 1 ' Space ' i : M A K E A P P p y t h o n P y t h o n 3 6 5 边 学 习 边 测 试 文 件 夹 自 学 P Y T H O N 部 

    分 第 二 阶 段 0 1 3 0 自 学 p y t h o n _ 区 块 链 0 4 4 _ 自 己 发 币 1 4 m i n t _ c o n t r a c t . p y ' Space Enter

     

     

    异常:

    System.ArgumentOutOfRangeException: 该值必须大于或等于零,且必须小于控制台缓冲区在该维度的大小。

    参数名: top

    实际值是 -1。

       在 System.Console.SetCursorPosition(Int32 left, Int32 top)

       在 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)

       在 Microsoft.PowerShell.PSConsoleReadLine.ForceRender()

       在 Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c)

       在 Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.InputLoop()

       在 Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)

    -----------------------------------------------------------------------

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14> cd 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20041' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contract.p

    哎呀,出现问题。请在报告此 Bug 时添加以下详细信息。

    在 GitHub 上报告: https://github.com/lzybkr/PSReadLine/issues/new

    -----------------------------------------------------------------------

    上 200 个密钥:

     . 2 4 2 2 1 p y t h o n F i l e s p t v s d _ l a u n c h e r . p y ' Space ' - - d e f a u l t ' Space ' - - c l i e n t ' Space ' - - h o s t ' Space ' l o c a l h o s t ' Space ' - - p o r t ' Space ' 2 0 0 4 1 ' Space ' i : M A K E A P P p y t h o n P y t h o n 3 6 5 边 学 习 边 测 试 文 件 夹 自 学 P Y T H O N 部

    分 第 二 阶 段 0 1 3 0 自 学 p y t h o n _ 区 块 链 0 4 4 _ 自 己 发 币 1 4 m i n t _ c o n t r a c t . p y ' Space Enter

     

     

    异常:

    System.ArgumentOutOfRangeException: 该值必须大于或等于零,且必须小于控制台缓冲区在该维度的大小。

    参数名: top

    实际值是 -1。

       在 System.Console.SetCursorPosition(Int32 left, Int32 top)

       在 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)

       在 Microsoft.PowerShell.PSConsoleReadLine.ForceRender()

       在 Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c)

       在 Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.InputLoop()

       在 Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)

    -----------------------------------------------------------------------

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14> cd 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20041' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contract.py

    哎呀,出现问题。请在报告此 Bug 时添加以下详细信息。

    在 GitHub 上报告: https://github.com/lzybkr/PSReadLine/issues/new

    -----------------------------------------------------------------------

    上 200 个密钥:

     . 2 4 2 2 1 p y t h o n F i l e s p t v s d _ l a u n c h e r . p y ' Space ' - - d e f a u l t ' Space ' - - c l i e n t ' Space ' - - h o s t ' Space ' l o c a l h o s t ' Space ' - - p o r t ' Space ' 2 0 0 4 1 ' Space ' i : M A K E A P P p y t h o n P y t h o n 3 6 5 边 学 习 边 测 试 文 件 夹 自 学 P Y T H O N 部 

    分 第 二 阶 段 0 1 3 0 自 学 p y t h o n _ 区 块 链 0 4 4 _ 自 己 发 币 1 4 m i n t _ c o n t r a c t . p y ' Space Enter

     

     

    异常:

    System.ArgumentOutOfRangeException: 该值必须大于或等于零,且必须小于控制台缓冲区在该维度的大小。

    参数名: top

    实际值是 -1。

       在 System.Console.SetCursorPosition(Int32 left, Int32 top)

       在 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)

       在 Microsoft.PowerShell.PSConsoleReadLine.ForceRender()

       在 Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c)

       在 Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)

       在 Microsoft.PowerShell.PSConsoleReadLine.InputLoop()

       在 Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)

    -----------------------------------------------------------------------

    PS I:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14> cd 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20041' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contract.py'

    哎呀,出现问题。请在报告此 Bug 时添加以下详细信息。

    在 GitHub 上报告: https://github.com/lzybkr/PSReadLine/issues/new

    -----------------------------------------------------------------------

    上 200 个密钥:

     . 2 4 2 2 1 p y t h o n F i l e s p t v s d _ l a u n c h e r . p y ' Space ' - - d e f a u l t ' Space ' - - c l i e n t ' Space ' - - h o s t ' Space ' l o c a l h o s t ' Space ' - - p o r t ' Space ' 2 0 0 4 1 ' Space ' i : M A K E A P P p y t h o n P y t h o n 3 6 5 边 学 习 边 测 试 文 件 夹 自 学 P Y T H O N 部 

    分 第 二 阶 段 0 1 3 0 自 学 p y t h o n _ 区 块 链 0 4 4 _ 自 己 发 币 1 4 m i n t _ c o n t r a c t . p y ' Space Enter

     

     

    异常:

    System.ArgumentOutOfRangeException: 该值必须大于或等于零,且必须小于控制台缓冲区在该维度的大小。

    参数名: top

    实际值是 -1。

       在 System.Console.SetCursorPosition(Int32 left, Int32 top)

       在 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)

       在 Microsoft.PowerShell.PSConsoleReadLine.ForceRender()

    wp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20041' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contract.py'

    6104000

    None

    None

    None

    AttributeDict({'blockHash': HexBytes('0x1ab29c743ae033860a2538b7bf56634e4d72e238155cb512eaf65c1ba22e67d8'), 'blockNumber': 6104003, 'contractAddress': None, 'cumulativeGasUsed': 125629, 'from': '0xe2d6c2f289c53b5aea44c47293ba179a3bfa21f0', 'gasUsed': 29008, 'logs': [], 'logsBloom': HexBytes('0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'), 'status': 1, 'to': '0xf89074dcdd8798b7e20b8cd88a9a38f27479411c', 'transactionHash': HexBytes('0x7b2c673e4f615ddf10747c41f6a26439b59c6cf9e4c1759119d0f85e292ac403'), 'transactionIndex': 2})

    AttributeDict({'blockHash': HexBytes('0x1ab29c743ae033860a2538b7bf56634e4d72e238155cb512eaf65c1ba22e67d8'), 'blockNumber': 6104003, 'contractAddress': None, 'cumulativeGasUsed': 125629, 'from': '0xe2d6c2f289c53b5aea44c47293ba179a3bfa21f0', 'gasUsed': 29008, 'logs': [], 'logsBloom': HexBytes('0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000THON部分第二阶段130自学python_区块链044_自己发币14'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'g:w10_1pythonpython365python.exe' 'c:Userswp.vscodeextensionsms-python.python-2019.6.24221pythonFilesptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '20481' 'i:MAKEAPPpythonPython365边学习边测试文件夹自学PYTHON部分第二阶段130自学python_区块链044_自己发币14mint_contract.py'6104009NoneNone

    AttributeDict({'blockHash': HexBytes('0x5bdb01de6263314bbf30e47a61204d96ebab51db2e8f65642be935f78bfe958c'), 'blockNumber': 6104011, 'contractAddress': None, 'cumulativeGasUsed': 1973412, 'from': '0xb40599fb0366dcf0ffe86677b005b3f20dfa29ae', 'gasUsed': 34469, 'logs': [AttributeDict({'address': '0xF89074dcDd8798B7E20b8cd88A9a38F27479411C', 'blockHash': HexBytes('0x5bdb01de6263314bbf30e47a61204d96ebab51db2e8f65642be935f78bfe958c'), 'blockNumber': 6104011, 'data': '0x000000000000000000000000e2d6c2f289c53b5aea44c47293ba179a3bfa21f0000000000000000000000000b40599fb0366dcf0ffe86677b005b3f20dfa29ae', 'logIndex': 56, 'removed': False, 'topics': [HexBytes('0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a')], 'transactionHash': HexBytes('0x48105d7b6589a50219c2df865958aba0c25d0f3d95086e1f9c4e06bfcc275a3d'), 'transactionIndex': 5})], 'logsBloom': HexBytes('0x00200000000000000000000080000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'), 'status': 1, 'to': '0xf89074dcdd8798b7e20b8cd88a9a38f27479411c', 'transactionHash': HexBytes('0x48105d7b6589a50219c2df865958aba0c25d0f3d95086e1f9c4e06bfcc275a3d'), 'transactionIndex': 5})AttributeDict({'blockHash': HexBytes('0x5bdb01de6263314bbf30e47a61204d96ebab51db2e8f65642be935f78bfe958c'), 'blockNumber': 6104011, 'contractAddress': None, 'cumulativeGasUsed': 1973412, 'from': '0xb40599fb0366dcf0ffe86677b005b3f20dfa29ae', 'gasUsed': 34469, 'logs': [AttributeDict({'address': '0xF89074dcDd8798B7E20b8cd88A9a38F27479411C', 'blockHash': HexBytes('0x5bdb01de6263314bbf30e47a61204d96ebab51db2e8f65642be935f78bfe958c'), 'blockNumber': 6104011, 'data': '0x000000000000000000000000e2d6c2f289c53b5aea44c47293ba179a3bfa21f0000000000000000000000000b40599fb0366dcf0ffe86677b005b3f20dfa29ae', 'logIndex': 56, 'removed': False, 'topics': [HexBytes('0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a')], 'transactionHash': HexBytes('0x48105d7b6589a50219c2df865958aba0c25d0f3d95086e1f9c4e06bfcc275a3d'), 'transactionIndex': 5})], 'logsBloom': HexBytes('0x00200000000000000000000080000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000'), 'status': 1, 'to': '0xf89074dcdd8798b7e20b8cd88a9a38f27479411c', 'transactionHash': HexBytes('0x48105d7b6589a50219c2df865958aba0c25d0f3d95086e1f9c4e06bfcc275a3d'), 'transactionIndex': 5})

    ```

    【本阶段python区块链学习的一些感悟与小结】

    到今天,我从零开始认识并学习区块链已经44天了,从对区块链这一技术完全毫无头绪,到今天已经对它有了非常深刻的理解,让我看到了一个广阔的未来图景。历经40天的努力,我也只学习到区块链的一点入门知识,后续还有诸如DAPP(去中心化应用)DeFI(去中心化金融)NTF(虚拟现实艺术品)等诸多新领域值得为之奉献时间。

    学是为了用,因此,明天再对ERC20代币智能合约再作一天的调试,初步计划后面就暂停一段时间新知识的学习,转而进行实践项目,我主导的【就是要学】社群平台准备将学习积分系统通过ERC20智能合约进行上链,作为初学者,难度肯定有,但没有难度的事,就是毫无意义的事。我以为不断挑战自我,从一个又一个的舒适圈中走出来,才是精进的人生。

    欢迎大家来到【就是要学】社群,这是一个完全公开,平等交流的社群,希望立志于终身学习终身成长的朋友们聚集到一起,共同成长!

    社群qq群是:646854445 期待与您一起交流。

    【关于坚持自学的例行说明】

    最后例行说明下,我为什么要坚持自学。

    “如果我不曾见过太阳,我本可以忍受黑暗,然而阳光已使我的荒凉,成为更新的荒凉。”

    ——艾米莉·狄金森

    如果要问我对自己的前半生如何看待时,我想昨天和今天的答案都将完全不同。

    昨天的我,生活在荒凉的满意之中,自觉怡然自得,拿着包身包月的工资,听着仁慈的命令,过着几乎一成不变的生活;时而与周遭的人儿和睦互往,时而唇舌相抵斤斤计较,演出着生活的鸡毛蒜皮,工作的吹拉弹唱;忘我,忘我,才能融入这平和无奇的乐章中,迈着细碎的步伐,原地踏步。那时的我觉得这就是悠然自得的听天由命的平凡人生,也就是我的宿命了。

    可是某一天,我见到了不一样的太阳以及太阳下不一样的人生光景——那并不荒凉。

    今天的我,生活在荒凉的痛苦之中,自觉渴望改变,迈着不知所措的步伐,看着流逝的年华,睁着悔恨错失一切的双眼… …

    我知道我将再无法回到过去的我,只有改变才是唯一正确的方向。

    一、为什么一把年纪还在学习

    放弃很多去聚餐,去HI歌,去游玩,去看电影,去追剧……的时间,然后进行着这个年纪似乎已不应当再进行的学习,引来身边人们无尽的不解与鄙夷甚至可怜……

    但我不想放弃终身学习的誓言。

    因为——

    我对我今天的生活现状并不认同!

    罗伯特清崎告诉过我们,反省自己当下的生活是不是自己想要的,这难道不是最好的动力与答案?

    走过了大半生,然后才发现曾经、当下所正在进行的人生并不是自己想要的,那是一种怎样的体验?

    只有心中真切的感受才能回答这个问题,而任凭再丰富的语言也是无法描绘出来的。

    经历半生的跋涉,却发现走得并不正确,有多少人有勇气承认自己过去的一切都是错误的呢?

    而我愿意告诉过去的我:“你错了!”

    那么已经历半生错误,年岁之大又压于头顶,还有希望从这架的梯子的半端重新爬下,再蹒跚着爬上另一架梯子吗?

    我宁愿相信还有希望!

    这便是我为什么要继续坚持终身学习下去的全部理由。

    二、这个年纪还在学这些技术有意义吗

    纯的技术对这把年纪其实已没有意义。

    但兴趣可以超越意义。

    但技术可以引来思想的变革,这才是意义。

    投资自己的头脑 ,改革自己的思想,这是最保值,更长远的投资,过去我从来没有投资过,错过太多,那就从投资自己头脑开始吧。

    罗伯特清崎告诉我们,真正的富有是时间的富有;真正的自由是可以决定自己愿意做什么的自由。

    因为我愿意做我兴趣所在的事,所以我希望我有自由选择的那一天,虽然今天离那一天可能还是那么遥远,但我愿意相信,每天多赶几步,离希望就更近一步。

    再者,虽然我可能再已无法完全完整的掌握这些技术了,但技术本身却可以启迪心的觉醒,激发灵感,那么只要多了解一点,我相信我将离那个正离我而去跑得越来越快的未来更近一点,不至于被未知的那个未来抛弃得太远。

    于是我怎能放弃追逐求索的步伐?

    我要坚信:感觉太迟的时候,也许还不算太迟。

    感谢一直以来关注我,鼓励我的你!

    若不嫌弃这一个到了高龄才长大的可笑可叹的我,请不吝赐教。

    我的q号是:578652607,敬候你的指点。

    【同步语音笔记】

    https://www.ximalaya.com/keji/19103006/274609283

    【学习过程屏幕录屏】

    链接:https://pan.baidu.com/s/1mBuZ7PHaaoC-j54JOGrwrg

    提取码:y2fr

    欢迎大家添加我为好友: QQ: 578652607
  • 相关阅读:
    C#中索引器的实现过程,是否只能根据数字进行索引?
    重载与覆盖的区别?
    C#中 property 与 attribute的区别?
    C#可否对内存进行直接的操作?
    在c#中using和new这两个关键字有什么意义?
    secs/gem协议
    框架2
    C#开发框架学习
    C#两种数据类型
    泛型参数
  • 原文地址:https://www.cnblogs.com/lhghroom/p/12584969.html
Copyright © 2011-2022 走看看