예제 #1
0
 def setUp(self):
     self.sn = SNGenerator(1, 0)
     mid = GenerateMID(TYPE_STAKING, self.sn.Get())
     self.stakinger = Stakinger(mid, 0)
     self.delegator = Account(
         'hsn1', '12345678', 'local', '0', '32',
         'hsn1p8hqjcsxat30zgllpdkvgtutctrhun70uv9ts0',
         'hsnpub1addwnpepqvfe59jmpyjqxjkez68gh3f60utmljpzhfm29af9z98n758zpqns7m4aj02'
     )
     self.validator = Validator(
         'hsnvaloper1p8hqjcsxat30zgllpdkvgtutctrhun70fyw3q3',
         'hsnvalconspub1zcjduepqjlzvnup2xvanh94yf40eadzfs4e57tc63n0qlg8m6wjs8urq25esqkwnd3',
         False, 2, '3189846465', '3189846465.000000000000000000', {
             'moniker': 'node1',
             'identity': '',
             'website': '',
             'details': ''
         }, '0', '1970-01-01T00:00:00Z', {
             'commission_rates': {
                 'rate': '0.100000000000000000',
                 'max_rate': '0.200000000000000000',
                 'max_change_rate': '0.010000000000000000'
             },
             'update_time': '2019-08-24T08:51:45.550141024Z'
         }, '1')
     pass
예제 #2
0
 def setUp(self):
     self.sn = SNGenerator(1, 0)
     mid = GenerateMID(TYPE_BANK, self.sn.Get())
     self.banker = Banker(mid, 0)
     self.srcAccount = Account(
         'hsn1', '12345678', 'local', 0, 14,
         'hsn1p8hqjcsxat30zgllpdkvgtutctrhun70uv9ts0',
         'hsnpub1addwnpepqvfe59jmpyjqxjkez68gh3f60utmljpzhfm29af9z98n758zpqns7m4aj02'
     )
     self.dstAccount = Account(
         'hsn1', '12345678', 'local', 1, 4,
         'hsn13eje6wryqzxj03tymd6uunx7653v9pru7qc9w0',
         'hsnpub1addwnpepqvu2j4u64ajpg94zqzdtucsfc74dd4keq3d7p93mp8qspt086kzdvxvvclw'
     )
예제 #3
0
class TestBanker(unittest.TestCase):
    def setUp(self):
        self.sn = SNGenerator(1, 0)
        mid = GenerateMID(TYPE_BANK, self.sn.Get())
        self.banker = Banker(mid, 0)
        self.srcAccount = Account(
            'hsn1', '12345678', 'local', 0, 14,
            'hsn1p8hqjcsxat30zgllpdkvgtutctrhun70uv9ts0',
            'hsnpub1addwnpepqvfe59jmpyjqxjkez68gh3f60utmljpzhfm29af9z98n758zpqns7m4aj02'
        )
        self.dstAccount = Account(
            'hsn1', '12345678', 'local', 1, 4,
            'hsn13eje6wryqzxj03tymd6uunx7653v9pru7qc9w0',
            'hsnpub1addwnpepqvu2j4u64ajpg94zqzdtucsfc74dd4keq3d7p93mp8qspt086kzdvxvvclw'
        )

    def test_getBalance(self):
        coins, err = self.banker.GetBalance(self.srcAccount)
        print(coins)
        self.assertIsNone(err)

    def test_sendCoins(self):
        sendedTxJsonFilePath, err = self.banker.SendCoins(
            self.srcAccount, self.dstAccount, [{
                'denom': 'hsn',
                'amount': '5'
            }], [{
                'denom': 'hsn',
                'amount': '1'
            }], '100000', '1.0')
        print(sendedTxJsonFilePath)
        self.assertIsNone(err)
예제 #4
0
class TestSigner(unittest.TestCase):
    def setUp(self):
        self.sn = SNGenerator(1, 0)
        mid = GenerateMID(TYPE_SIGN, self.sn.Get())
        self.signer = Signer(mid, 0)
        self.__accounts = []
        account = Account(
            'hsn4', '12345678', 'local', 3, 5,
            'hsn1j4yux0ytemqjmcd6z7dej7ermuw2hp9mgwu04a',
            'hsnpub1addwnpepqvrnem3jdwdkjwfy5anqcv80hhawlvfeh608urqhw4mznrdpqus0qehz2gq'
        )
        self.__accounts.append(account)
        account = Account(
            'hsn4', '123456', 'local', 3, 5,
            'hsn1j4yux0ytemqjmcd6z7dej7ermuw2hp9mgwu04a',
            'hsnpub1addwnpepqvrnem3jdwdkjwfy5anqcv80hhawlvfeh608urqhw4mznrdpqus0qehz2gq'
        )
        self.__accounts.append(account)
        account = Account(
            'hsn4', '78945612', 'local', 3, 5,
            'hsn1j4yux0ytemqjmcd6z7dej7ermuw2hp9mgwu04a',
            'hsnpub1addwnpepqvrnem3jdwdkjwfy5anqcv80hhawlvfeh608urqhw4mznrdpqus0qehz2gq'
        )
        self.__accounts.append(account)

    def test_sign(self):
        unSignJsonPath = '/home/xzjianyu/goproject/src/github.com/hyperspeednetwork/hsnhub_test/unSign.json'
        for account in self.__accounts:
            data, err = self.signer.Sign(account, unSignJsonPath,
                                         'tcp://172.38.8.89:26657')
            self.assertIsNone(err)
            print(data)
예제 #5
0
class TestDistribution(unittest.TestCase):
    def setUp(self):
        self.sn = SNGenerator(1, 0)
        mid = GenerateMID(TYPE_DISTRIBUTION, self.sn.Get())
        self.distributor = Distributor(mid, 0)
        self.delegator = Account(
            'hsn1', '12345678', 'local', '0', '64',
            'hsn1p8hqjcsxat30zgllpdkvgtutctrhun70uv9ts0',
            'hsnpub1addwnpepqvfe59jmpyjqxjkez68gh3f60utmljpzhfm29af9z98n758zpqns7m4aj02'
        )
        self.validator = Validator(
            'hsnvaloper1p8hqjcsxat30zgllpdkvgtutctrhun70fyw3q3',
            'hsnvalconspub1zcjduepqjlzvnup2xvanh94yf40eadzfs4e57tc63n0qlg8m6wjs8urq25esqkwnd3',
            False, 2, '3189846465', '3189846465.000000000000000000', {
                'moniker': 'node1',
                'identity': '',
                'website': '',
                'details': ''
            }, '0', '1970-01-01T00:00:00Z', {
                'commission_rates': {
                    'rate': '0.100000000000000000',
                    'max_rate': '0.200000000000000000',
                    'max_change_rate': '0.010000000000000000'
                },
                'update_time': '2019-08-24T08:51:45.550141024Z'
            }, '1')

    def test_withdrawReward(self):
        withdrawRewardTxFilePath, err = self.distributor.WithdrawDelegatorOneReward(
            self.delegator, self.validator, [{
                'denom': 'hsn',
                'amount': '1'
            }], '100000', '1.0')
        print(withdrawRewardTxFilePath)
        self.assertIsNone(err)
예제 #6
0
 def setUp(self):
     self.sn = SNGenerator(1, 0)
     mid = GenerateMID(TYPE_SIGN, self.sn.Get())
     self.signer = Signer(mid, 0)
     self.__accounts = []
     account = Account(
         'hsn4', '12345678', 'local', 3, 5,
         'hsn1j4yux0ytemqjmcd6z7dej7ermuw2hp9mgwu04a',
         'hsnpub1addwnpepqvrnem3jdwdkjwfy5anqcv80hhawlvfeh608urqhw4mznrdpqus0qehz2gq'
     )
     self.__accounts.append(account)
     account = Account(
         'hsn4', '123456', 'local', 3, 5,
         'hsn1j4yux0ytemqjmcd6z7dej7ermuw2hp9mgwu04a',
         'hsnpub1addwnpepqvrnem3jdwdkjwfy5anqcv80hhawlvfeh608urqhw4mznrdpqus0qehz2gq'
     )
     self.__accounts.append(account)
     account = Account(
         'hsn4', '78945612', 'local', 3, 5,
         'hsn1j4yux0ytemqjmcd6z7dej7ermuw2hp9mgwu04a',
         'hsnpub1addwnpepqvrnem3jdwdkjwfy5anqcv80hhawlvfeh608urqhw4mznrdpqus0qehz2gq'
     )
     self.__accounts.append(account)
예제 #7
0
 def setUp(self):
     self.sn = SNGenerator(1, 0)
예제 #8
0
from autotx.module.sn import SNGenerator
from autotx.module.mid import GenerateMID
from autotx.module.moduletype import TYPE_BANK, TYPE_BROADCAST, TYPE_SIGN, TYPE_STAKING, TYPE_DISTRIBUTION
from autotx.bank.bank import Banker
from autotx.sign.sign import Signer
from autotx.broadcast.broadcast import BroadCaster
from autotx.staking.staking import Stakinger
from autotx.distribution.distribution import Distributor

snGen = SNGenerator(1, 0)


def GetBankers(count):
    bankers = []
    if count == 0:
        return bankers, None
    for i in range(count):
        mid, err = GenerateMID(TYPE_BANK, snGen.Get())
        if err is not None:
            return bankers, err
        banker = Banker(mid, 0)
        bankers.append(banker)
    return bankers, None


def GetSigners(count):
    signers = []
    if count == 0:
        return signers, None
    for i in range(count):
        mid, err = GenerateMID(TYPE_SIGN, snGen.Get())
예제 #9
0
 def setUp(self):
     self.sn = SNGenerator(1, 0)
     mid = GenerateMID(TYPE_BROADCAST, self.sn.Get())
     self.broadCaster = BroadCaster(mid, 0)
예제 #10
0
class TestBroadcast(unittest.TestCase):
    def setUp(self):
        self.sn = SNGenerator(1, 0)
        mid = GenerateMID(TYPE_BROADCAST, self.sn.Get())
        self.broadCaster = BroadCaster(mid, 0)

    def test_standardize(self):
        body = '''{
  "type": "cosmos-sdk/StdTx",
  "value": {
    "msg": [
      {
        "type": "cosmos-sdk/MsgSend",
        "value": {
          "from_address": "hsn1j4yux0ytemqjmcd6z7dej7ermuw2hp9mgwu04a",
          "to_address": "hsn1zqxayv6qe50w6h3ynfj6tq9pr09r7rtuq565cl",
          "amount": [
            {
              "denom": "hsn",
              "amount": "5"
            }
          ]
        }
      }
    ],
    "fee": {
      "amount": [
        {
          "denom": "hsn",
          "amount": "1"
        }
      ],
      "gas": "100000"
    },
    "signatures": [
      {
        "pub_key": {
          "type": "tendermint/PubKeySecp256k1",
          "value": "Awc87jJrm2k5JKdmDDDvvfrvsTm+nn4MF3V2KY2hByDw"
        },
        "signature": "r53KS1dtupptxEo0wFXqN6qm2gRHqISgsUiIjjSq0LEdGp7opEzlCQC+WhHTDyMuFW3bD5yVas1nFFklBBv98w=="
      }
    ],
    "memo": "sent"
  }
}
'''
        standardizedBody, err = standardize(body, 'async')
        print(standardizedBody)
        self.assertIsNone(err)

    def test_broadcast(self):
        body = '''{
  "type": "cosmos-sdk/StdTx",
  "value": {
    "msg": [
      {
        "type": "cosmos-sdk/MsgSend",
        "value": {
          "from_address": "hsn1502lgkad0tnc2szdww0whpxs30szz03lj6n06q",
          "to_address": "hsn1aqwurs5jfu5z0z3k99tljt9csausdqrcaewjwv",
          "amount": [
            {
              "denom": "hsn",
              "amount": "5"
            }
          ]
        }
      }
    ],
    "fee": {
      "amount": [
        {
          "denom": "hsn",
          "amount": "1"
        }
      ],
      "gas": "100000"
    },
    "signatures": [
      {
        "pub_key": {
          "type": "tendermint/PubKeySecp256k1",
          "value": "AkJJcM8yCkBL/rvDQxqxEDCswuYmjMLJSty3BR4m4YFk"
        },
        "signature": "swYNOEX5h936+YppikFni8QTR6mtfw0m25QETQYGY5x3i7W8Oquw1lLktxReZz7MbTgzN6hIElvQxB3q+UV71g=="
      }
    ],
    "memo": "sent"
  }
}
'''
        txJson, err = self.broadCaster.BroadCastTx(body, 'sync')
        print(txJson)
        self.assertIsNone(err)

    def test_CheckTx(self):
        body = '{"height":"0","txhash":"7F8A3C49D7B39F4C509213AC7A6A3E7670BE40CD7D0A736570178B26F42180C9","raw_log":"[{\"msg_index\":0,\"success\":true,\"log\":\"\"}]","logs":[{"msg_index":0,"success":true,"log":""}]}'
        ok, err = checkTx(body)
        self.assertTrue(ok)
        print(err)