コード例 #1
0
    def __is_burnable_user(eth_address, tip_value, burn_value):
        # get_balance
        token = PrivateChainUtil.get_balance(eth_address)

        # return result
        if int(token, 16) >= tip_value + burn_value:
            return True
        return False
コード例 #2
0
    def test_get_balance_ok(self):
        test_address = '0x401BA17D89D795B3C6e373c5062F1C3F8979e73B'
        test_url = 'https://' + os.environ['PRIVATE_CHAIN_EXECUTE_API_HOST'] + '/production/wallet/balance'
        test_balance = 0x10
        magic_lib = MagicMock(return_value=test_balance)
        with patch('private_chain_util.PrivateChainUtil.send_transaction', magic_lib):
            result = PrivateChainUtil.get_balance(test_address)
            self.assertEqual(test_balance, result)

            _, kwargs = magic_lib.call_args
            expect_payload = {
                'private_eth_address': test_address[2:]
            }
            self.assertEqual(test_url, kwargs['request_url'])
            self.assertEqual(expect_payload, kwargs['payload_dict'])
コード例 #3
0
    def exec_main_proc(self):
        user_id = self.event['requestContext']['authorizer']['claims'][
            'cognito:username']
        address = self.event['requestContext']['authorizer']['claims'].get(
            'custom:private_eth_address')

        # 現在のトークン量を取得
        # まだウォレットアドレスを作成していないユーザには 0 を返す
        if address is None:
            balance = '0x0'
        elif not UserUtil.exists_private_eth_address(self.dynamodb, user_id):
            # Cognito上にprivate_eth_addressは存在するが、カストディ規制のウォレット移行が完了していないユーザにも0を返す
            balance = '0x0'
        else:
            balance = PrivateChainUtil.get_balance(address)

        return {'statusCode': 200, 'body': json.dumps({'result': balance})}