github.com/inklabsfoundation/inkchain@v0.17.1-0.20181025012015-c3cef8062f19/examples/xc/qtum/README.md (about)

     1  ### Cross Chain
     2  
     3  #### 1) Qtum Environment Setup.
     4  
     5  ##### 1.1)Installing Docker
     6  
     7  > https://docs.docker.com/engine/installation/
     8  >
     9  ##### 1.2)Pull the Qtum Docker Image
    10  
    11  ```
    12  $ cd qtum
    13  $ sh download_images.sh
    14  
    15  ```
    16  ##### 1.3)Installing solar
    17  
    18  ```
    19  $ go get -u github.com/qtumproject/solar/cli/solar
    20  ```
    21  ##### 1.4)Using the Qtum Docker
    22  
    23  
    24  
    25  Starting up
    26  ```
    27  $ cd qtum
    28  $ sh start.sh
    29  ```
    30  Stopping 
    31  ```
    32  $ cd qtum
    33  $ sh stop.sh
    34  ```
    35  Remove Containers 
    36  ```
    37  $ cd qtum
    38  $ sh remove.sh
    39  ```
    40  login
    41  ```
    42  $ cd qtum
    43  $ sh login.sh
    44  ```
    45  
    46  #### 2)Script Commands.
    47  
    48  ##### 2.1)Help
    49  ```
    50  $ cd qtum
    51  $ sh qtum-cli.sh help
    52  ```
    53  ##### 2.2)Common commands
    54  
    55  Get New Address
    56  ```
    57  $ cd qtum
    58  $ sh qtum-cli.sh getnewaddress
    59  ```
    60  
    61  Get the account address
    62  ```
    63  $ cd qtum
    64  $ sh qtum-cli.sh getaccountaddress ${account} // lilei
    65  ```
    66  
    67  Get Hex Address
    68  ```
    69  $ cd qtum
    70  $ sh qtum-cli.sh gethexaddress ${account_address} // qHhn8KTpfootyYy6Eo51dfR8kXn8s1Wv8i
    71  ```
    72  
    73  fromhexaddress
    74  ```
    75  $ cd qtum
    76  $ sh qtum-cli.sh fromhexaddress ${account_hexaddress} // 019680a2de9e2d8753dfb86437ed52865f0a135c
    77  ```
    78  
    79  Check accounts balance
    80  ```
    81  $ cd qtum
    82  $ sh qtum-cli.sh listaccounts 
    83  ```
    84  
    85  Send to address
    86  ```
    87  $ cd qtum
    88  $ sh qtum-cli.sh sendtoaddress ${toAccount} ${amount} // qHhn8KTpfootyYy6Eo51dfR8kXn8s1Wv8i 1000
    89  ```
    90  
    91  List unspent
    92  ```
    93  $ cd qtum
    94  $ sh qtum-cli.sh listunspent 1 9999999 [\"${account_address}\"] // [\"qHhn8KTpfootyYy6Eo51dfR8kXn8s1Wv8i\\"] 
    95  ```
    96  
    97  List contracts
    98  ```
    99  $ cd qtum
   100  $ sh qtum-cli.sh listcontracts
   101  ```
   102  
   103  Get Account Info
   104  ```
   105  $ cd qtum
   106  $ sh qtum-cli.sh  getaccountinfo ${account_address} // contract address
   107  ```
   108  
   109  Create contract 
   110  ```
   111  $ cd qtum
   112  $ sh qtum-cli.sh createcontract ${bytecode} ${gasLimit} ${gasPrice} ${senderaddress} 
   113  ```
   114  
   115  Call contract
   116  ```
   117  $ cd qtum
   118  $ sh qtum-cli.sh  callcontract ${contractaddress} ${bytecode}
   119  ```
   120  
   121  Send to contract
   122  ```
   123  $ cd qtum
   124  $ sh qtum-cli.sh  sendtocontract ${contractaddress} ${bytecode}
   125  ```
   126  
   127  Estimate fee
   128  ```
   129  $ cd qtum
   130  $ sh qtum-cli.sh  estimatefee ${contractaddress} ${bytecode}
   131  ```
   132  
   133  #### 3)Deploy The Smart Contracts.
   134  
   135  ##### 3.1)deploy
   136  ```
   137  $ cd qtum/contracts
   138  $ sh solar_deploy.sh
   139  ```
   140  ##### 3.2)deploy status
   141  ```
   142  $ cd qtum
   143  $ sh solar_deploy_status.sh
   144  ```
   145  
   146  #### 4) method signature
   147  
   148  login
   149  ```
   150  $ sh login.sh
   151  $ qcli generate 600
   152  ```
   153  
   154  #### 4.1) INK
   155  ##### 4.1.1) allowance(address,address)
   156  
   157  ```
   158  $ solar encode contracts/INK.sol allowance '["18ac89acd86ea466cfb964dd9847d72e427c7886","d6b39eb631df8ee60e46a576231ccf1fcd204a5e"]'
   159  
   160  dd62ed3e00000000000000000000000018ac89acd86ea466cfb964dd9847d72e427c7886000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e
   161  ```
   162  
   163  ##### 4.1.2) approve(address,uint256)
   164  
   165  ```
   166  $ solar encode contracts/INK.sol approve '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000]'
   167  
   168  095ea7b3000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8
   169  ```
   170  
   171  ##### 4.1.3) balanceOf(address)
   172  
   173  ```
   174  $ solar encode contracts/INK.sol balanceOf '["18ac89acd86ea466cfb964dd9847d72e427c7886"]'
   175  
   176  70a0823100000000000000000000000018ac89acd86ea466cfb964dd9847d72e427c7886
   177  
   178  $ solar encode contracts/INK.sol balanceOf '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e"]'
   179  
   180  70a08231000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e
   181  ```
   182  
   183  ##### 4.1.4) decimals()
   184  
   185  ```
   186  $ solar encode contracts/INK.sol decimals
   187  313ce567
   188  ```
   189  
   190  ##### 4.1.5) totalSupply()
   191  ```
   192  $ solar encode contracts/INK.sol totalSupply
   193  18160ddd
   194  ```
   195  
   196  ##### 4.1.6) transfer(address,uint256)
   197  ```
   198  $ solar encode contracts/INK.sol transfer '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000]'
   199  a9059cbb000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8
   200  ```
   201  
   202  ##### 4.1.7) transferFrom(address,address,uint256)
   203  
   204  ```
   205  $ solar encode contracts/INK.sol transferFrom '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e","d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000]'
   206  23b872dd000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8
   207  ```
   208  
   209  ##### 4.1.8) name()
   210  ```
   211  $ solar encode contracts/INK.sol name 
   212  06fdde03
   213  ```
   214  
   215  ##### 4.1.9) symbol()
   216  
   217  ```
   218  $ solar encode contracts/INK.sol symbol 
   219  95d89b41
   220  ```
   221  
   222  ##### 4.1.10) decreaseApproval(address,uint256)
   223  ```
   224  $ solar encode contracts/INK.sol decreaseApproval  '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000]'
   225  66188463000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8
   226  ```
   227  
   228  ##### 4.1.11) increaseApproval(address,uint256)
   229  ```
   230  $ solar encode contracts/INK.sol increaseApproval  '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000]'
   231  d73dd623000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8
   232  ```
   233  
   234  ##### 4.1.12) approveAndCall(address,uint256,bytes)
   235  ```
   236  $ solar encode contracts/INK.sol approveAndCall  '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000,"41"]'
   237  cae9ca51000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000000
   238  ```
   239  
   240  #### 4.2) XCPlugin
   241  
   242  ##### 4.2.1) addCaller(address)
   243  ```
   244  $ solar encode contracts/XCPlugin.sol addCaller  '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e"]'
   245  747293fb000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e
   246  ```
   247  
   248  ##### 4.2.2) addPlatform(bytes32)
   249  ```
   250  $ solar encode contracts/XCPlugin.sol addPlatform  '["7174756d00000000000000000000000000000000000000000000000000000000"]'
   251  df8d66e47174756d00000000000000000000000000000000000000000000000000000000
   252  ```
   253  ##### 4.2.3) addPublicKey(bytes32,address)
   254  ```
   255  $ solar encode contracts/XCPlugin.sol addPublicKey  '["4100000000000000000000000000000000000000000000000000000000000000","d6b39eb631df8ee60e46a576231ccf1fcd204a5e"]'
   256  1de1ee7b4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e
   257  ```
   258  ##### 4.2.4) callers(uint256)
   259  ```
   260  $ solar encode contracts/XCPlugin.sol callers  '[0]'
   261  aa03fa3d0000000000000000000000000000000000000000000000000000000000000000
   262  ```
   263  ##### 4.2.5) countOfPublicKey(bytes32)
   264  ```
   265  $ solar encode contracts/XCPlugin.sol countOfPublicKey  '["4100000000000000000000000000000000000000000000000000000000000000"]'
   266  c79c91054100000000000000000000000000000000000000000000000000000000000000
   267  ```
   268  ##### 4.2.6) deleteCaller(address)
   269  ```
   270  $ solar encode contracts/XCPlugin.sol deleteCaller  '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e"]'
   271  258c0f1e000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e
   272  ```
   273  ##### 4.2.7) deletePlatform(bytes32)
   274  ```
   275  $ solar encode contracts/XCPlugin.sol deletePlatform  '["4100000000000000000000000000000000000000000000000000000000000000"]'
   276  8147bcf74100000000000000000000000000000000000000000000000000000000000000
   277  ```
   278  ##### 4.2.8) deleteProposal(bytes32,bytes32)
   279  ```
   280  $ solar encode contracts/XCPlugin.sol deleteProposal  '["4100000000000000000000000000000000000000000000000000000000000000","4100000000000000000000000000000000000000000000000000000000000000"]'
   281  b56e0e3241000000000000000000000000000000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000
   282  ```
   283  ##### 4.2.9) deletePublicKey(bytes32,address)
   284  ```
   285  $ solar encode contracts/XCPlugin.sol deletePublicKey  '["4100000000000000000000000000000000000000000000000000000000000000","d6b39eb631df8ee60e46a576231ccf1fcd204a5e"]'
   286  fa31b3714100000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e
   287  ```
   288  ##### 4.2.10) existPlatform(bytes32)
   289  ```
   290  $ solar encode contracts/XCPlugin.sol existPlatform  '["4100000000000000000000000000000000000000000000000000000000000000"]'
   291  5de047d34100000000000000000000000000000000000000000000000000000000000000
   292  ```
   293  ##### 4.2.11) getAdmin()
   294  ```
   295  $ solar encode contracts/XCPlugin.sol getAdmin 
   296  6e9960c3
   297  ```
   298  ##### 4.2.12) getPlatform(bytes32)
   299  ```
   300  $ solar encode contracts/XCPlugin.sol getPlatform  '["4100000000000000000000000000000000000000000000000000000000000000"]'
   301  569cd4cb4100000000000000000000000000000000000000000000000000000000000000
   302  ```
   303  ##### 4.2.13) getPlatformName()
   304  ```
   305  $ solar encode contracts/XCPlugin.sol getPlatformName 
   306  db3b73db
   307  ```
   308  ##### 4.2.14) getStatus()
   309  ```
   310  $ solar encode contracts/XCPlugin.sol getStatus
   311  4e69d560
   312  ```
   313  ##### 4.2.15) getWeight(bytes32)
   314  ```
   315  $ solar encode contracts/XCPlugin.sol getWeight  '["4100000000000000000000000000000000000000000000000000000000000000"]'
   316  66435abf4100000000000000000000000000000000000000000000000000000000000000
   317  ```
   318  ##### 4.2.16) setAdmin(address)
   319  ```
   320  $ solar encode contracts/XCPlugin.sol setAdmin  '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e"]'
   321  704b6c02000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e
   322  ```
   323  ##### 4.2.17) setPlatformName(bytes32)
   324  ```
   325  $ solar encode contracts/XCPlugin.sol setPlatformName  '["4100000000000000000000000000000000000000000000000000000000000000"]'
   326  8d8992d34100000000000000000000000000000000000000000000000000000000000000
   327  ```
   328  ##### 4.2.18) setWeight(bytes32,uint256)
   329  ```
   330  $ solar encode contracts/XCPlugin.sol setWeight  '["4100000000000000000000000000000000000000000000000000000000000000",3]'
   331  71c4275a41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003
   332  ```
   333  ##### 4.2.19) start()
   334  ```
   335  $ solar encode contracts/XCPlugin.sol start
   336  be9a6555
   337  ```
   338  ##### 4.2.20) stop()
   339  ```
   340  $ solar encode contracts/XCPlugin.sol stop
   341  07da68f5
   342  ```
   343  ##### 4.2.21) verifyProposal(bytes32,address,address,uint256,bytes32)
   344  ```
   345  $ solar encode contracts/XCPlugin.sol verifyProposal  '["4100000000000000000000000000000000000000000000000000000000000000","d6b39eb631df8ee60e46a576231ccf1fcd204a5e","d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000,"4200000000000000000000000000000000000000000000000000000000000000"]'
   346  623aba4d4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e84200000000000000000000000000000000000000000000000000000000000000
   347  ```
   348  
   349  ##### 4.2.22) voter(bytes32,address,address,uint256,bytes32,bytes32,bytes32,uint8)
   350  ```
   351  $ solar encode contracts/XCPlugin.sol voter  '["4100000000000000000000000000000000000000000000000000000000000000","d6b39eb631df8ee60e46a576231ccf1fcd204a5e","d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000,"4200000000000000000000000000000000000000000000000000000000000000","4100000000000000000000000000000000000000000000000000000000000000","4100000000000000000000000000000000000000000000000000000000000000",27]'
   352  ffe6bf064100000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8420000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b
   353  ```
   354  
   355  #### 4.3) XC
   356  
   357  ##### 4.3.1) getAdmin()
   358  ```
   359  $ solar encode contracts/XC.sol getAdmin
   360  6e9960c3
   361  ```
   362  ##### 4.3.2) getINK()
   363  ```
   364  $ solar encode contracts/XC.sol getINK
   365  e5177ee4
   366  ```
   367  ##### 4.3.3) getPlatformName()
   368  ```
   369  $ solar encode contracts/XC.sol getPlatformName
   370  db3b73db
   371  ```
   372  ##### 4.3.4) getStatus()
   373  ```
   374  $ solar encode contracts/XC.sol getStatus
   375  4e69d560
   376  ```
   377  ##### 4.3.5) getXCPlugin()
   378  ```
   379  $ solar encode contracts/XC.sol getXCPlugin
   380  4567a6a7
   381  ```
   382  ##### 4.3.6) lock(bytes32,address,uint256)
   383  ```
   384  $ solar encode contracts/XC.sol lock '["4100000000000000000000000000000000000000000000000000000000000000","d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000]'
   385  0899146b4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8
   386  ```
   387  ##### 4.3.7) lockAdmin(bytes32,address,uint256)
   388  ```
   389  $ solar encode contracts/XC.sol lockAdmin '["4100000000000000000000000000000000000000000000000000000000000000","d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000]'
   390  30b36e6a4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8
   391  ```
   392  ##### 4.3.8) lockBalance()
   393  ```
   394  $ solar encode contracts/XC.sol lockBalance
   395  e228ecb4
   396  ```
   397  ##### 4.3.9) setAdmin(address)
   398  ```
   399  $ solar encode contracts/XC.sol setAdmin '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e"]'
   400  704b6c02000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e
   401  ```
   402  ##### 4.3.10) setINK(address)
   403  ```
   404  $ solar encode contracts/XC.sol setINK '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e"]'
   405  b8f23f52000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e
   406  ```
   407  ##### 4.3.11) setPlatformName(bytes32)
   408  ```
   409  $ solar encode contracts/XC.sol setPlatformName '["4100000000000000000000000000000000000000000000000000000000000000"]'
   410  8d8992d34100000000000000000000000000000000000000000000000000000000000000
   411  ```
   412  ##### 4.3.12) setXCPlugin(address)
   413  ```
   414  $ solar encode contracts/XC.sol setXCPlugin '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e"]'
   415  8aa5440e000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e
   416  ```
   417  ##### 4.3.13) start()
   418  ```
   419  $ solar encode contracts/XC.sol start
   420  be9a6555
   421  ```
   422  ##### 4.3.14) stop()
   423  ```
   424  $ solar encode contracts/XC.sol stop
   425  07da68f5
   426  ```
   427  ##### 4.3.15) unlock(bytes32,bytes32,address,address,uint256)
   428  ```
   429  $ solar encode contracts/XC.sol unlock '["4100000000000000000000000000000000000000000000000000000000000000","4100000000000000000000000000000000000000000000000000000000000000","d6b39eb631df8ee60e46a576231ccf1fcd204a5e","d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000]'
   430  1a11d6d341000000000000000000000000000000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8
   431  ```
   432  ##### 4.3.16) unlockAdmin(bytes32,bytes32,address,address,uint256)
   433  ```
   434  $ solar encode contracts/XC.sol unlockAdmin '["4100000000000000000000000000000000000000000000000000000000000000","4100000000000000000000000000000000000000000000000000000000000000","d6b39eb631df8ee60e46a576231ccf1fcd204a5e","d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000]'
   435  85ea4fd741000000000000000000000000000000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8
   436  ```
   437  ##### 4.3.17) withdrawal(address,uint256)
   438  ```
   439  $ solar encode contracts/XC.sol withdrawal '["d6b39eb631df8ee60e46a576231ccf1fcd204a5e",1000]'
   440  5a6b26ba000000000000000000000000d6b39eb631df8ee60e46a576231ccf1fcd204a5e00000000000000000000000000000000000000000000000000000000000003e8
   441  ```
   442  
   443  #### 5)Testing The Smart Contracts.
   444  
   445  ##### 5.1)prepare account 
   446  ```
   447  $ qcli getaccountaddress ma
   448  $ qcli getaccountaddress sender
   449  $ qcli listaccounts
   450  
   451  {
   452    "": 2360000.00000000,
   453    "ma": 0.00000000,
   454    "sender": 0.00000000
   455  }
   456  
   457  ```
   458  ##### 5.2)Contract
   459  ```
   460  $ sh deploy.sh
   461  ... ...
   462  $ sh deploy_status.sh
   463  
   464  ✅  contracts/XCPlugin.sol
   465        txid: d70dd064f8144cf6df82018fcf812a009304eed69a0953f4f13cd9a5b560e32d
   466     address: fdfe183ff6d196a2871d3b856629222f1dd1264b
   467   confirmed: true
   468       owner: qf2FFX6c5qohyqPvbUoyy8Xo4Q6QrjsaKX
   469  
   470  
   471  ✅  contracts/INK.sol
   472          txid: df3cda23e2b31f154bb31777b45ddbddff1eabbad636f9dea255528952261615
   473       address: 223a30419a3dc234ec659e390d7bc65e70dcea0b
   474     confirmed: true
   475         owner: qP2RGcwGunqiZvSUidSQyEW64G1XuyGUyM
   476  
   477  ✅  contracts/XC.sol
   478          txid: 74a98da3dc957d90bce9040d66ab0175f65f913acb07df7f857d3a2e716e516f
   479       address: 54acd8f45dad524584003ee4d4f4d4f8b00ef4c1
   480     confirmed: true
   481         owner: qMqd6usqYmUXpTB3FShUiKP59TfMrXFQJf
   482  
   483  ```
   484  ##### 5.3)prepare Contract address
   485  
   486  ```
   487  $ vim p_init.sh
   488  $ sh p_read.sh
   489  ```
   490  
   491  #### 6) examples
   492  
   493  ##### 6.1)callcontract INK name
   494  ```
   495  $ sh test/INK/call/name.sh
   496  ```
   497  ##### 6.2)callcontract INK symbol
   498  ```
   499  $ sh test/INK/call/symbol.sh
   500  ```
   501  ##### 6.2)callcontract INK balanceOf(address) 
   502  ```
   503  $ sh test/INK/call/balanceOf.sh
   504  ```
   505  ##### 6.3)sendtocontract INK transfer(address,uint)
   506  ```
   507  $ sh test/INK/send/transfer.sh
   508  ```
   509  ... ...