Esempio n. 1
0
def gen_kin_2_payment_op(dest: xdr_type.AccountID,
                         src: Optional[xdr_type.AccountID] = None,
                         raw_amount: int = 1000) -> xdr_type.Operation:
    """Generate a payment operation.
    """
    body = xdr_pack.nullclass()
    body.type = xdr_const.PAYMENT

    alphaNum4 = xdr_pack.nullclass()
    alphaNum4.assetCode = b'KIN'

    # the test Kin 2 blockchain asset issuer
    alphaNum4.issuer = gen_account_id_from_address(
        'GBC3SG6NGTSZ2OMH3FFGB7UVRQWILW367U4GSOOF4TFSZONV42UJXUH7')

    body.paymentOp = xdr_type.PaymentOp(
        destination=dest,
        asset=xdr_type.Asset(
            type=xdr_const.ASSET_TYPE_CREDIT_ALPHANUM4,
            alphaNum4=alphaNum4,
        ),
        amount=raw_amount,
    )

    return xdr_type.Operation(
        sourceAccount=[src] if src else [],
        body=body,
    )
Esempio n. 2
0
def gen_tx_envelope_xdr(src: xdr_type.AccountID,
                        seq: int,
                        operations: List[xdr_type.Operation],
                        memo: xdr_type.Memo,
                        fee: int = 0,
                        v: int = 0) -> bytes:
    """Generate a transaction envelope xdr with the provided parameters.

    :return bytes
    """
    ext = xdr_pack.nullclass()
    ext.v = v

    envelope = xdr_type.TransactionEnvelope(tx=xdr_type.Transaction(
        sourceAccount=src,
        fee=fee,
        seqNum=seq,
        timeBounds=[xdr_type.TimeBounds(
            minTime=0,
            maxTime=0,
        )],
        memo=memo,
        operations=operations,
        ext=ext,
    ),
                                            signatures=[
                                                xdr_type.DecoratedSignature(
                                                    hint=b'xxxx',
                                                    signature=b'signature')
                                            ])
    xdr_envelope = xdr_pack.StellarXDRPacker()
    xdr_envelope.pack_TransactionEnvelope(envelope)

    return xdr_envelope.get_buffer()
Esempio n. 3
0
def gen_merge_op_result(result_code: int) -> xdr_type.OperationResult:
    """Generates a merge operation result.
    """
    tr = xdr_pack.nullclass()
    tr.type = xdr_const.ACCOUNT_MERGE
    tr.accountMergeResult = xdr_type.AccountMergeResult(result_code)
    return xdr_type.OperationResult(xdr_const.opINNER, tr)
Esempio n. 4
0
def gen_payment_op_result(result_code: int) -> xdr_type.OperationResult:
    """Generates a payment operation result.
    """
    tr = xdr_pack.nullclass()
    tr.type = xdr_const.PAYMENT
    tr.paymentResult = xdr_type.PaymentResult(result_code)
    return xdr_type.OperationResult(xdr_const.opINNER, tr)
Esempio n. 5
0
def gen_create_op_result(result_code: int) -> xdr_type.OperationResult:
    """Generates a create account operation result.
    """
    tr = xdr_pack.nullclass()
    tr.type = xdr_const.CREATE_ACCOUNT
    tr.createAccountResult = xdr_type.CreateAccountResult(result_code)
    return xdr_type.OperationResult(xdr_const.opINNER, tr)
Esempio n. 6
0
def gen_result_xdr(tx_result_code: int,
                   op_results: List[xdr_type.OperationResult],
                   fee: int = 0,
                   v: int = 0) -> bytes:
    """Generates a result XDR with the provided parameters.

    :return bytes
    """
    result = xdr_pack.nullclass()
    result.code = tx_result_code
    result.results = op_results

    ext = xdr_pack.nullclass()
    ext.v = v

    tx_result = xdr_type.TransactionResult(fee, result, ext)
    xdr_tx_result = xdr_pack.StellarXDRPacker()
    xdr_tx_result.pack_TransactionResult(tx_result)

    return xdr_tx_result.get_buffer()
Esempio n. 7
0
def gen_create_op(src: xdr_type.AccountID,
                  dest: xdr_type.AccountID) -> xdr_type.Operation:
    """Generate a create account operation.
    """
    body = xdr_pack.nullclass()
    body.type = xdr_const.CREATE_ACCOUNT
    body.createAccountOp = xdr_type.CreateAccountOp(destination=dest)

    return xdr_type.Operation(
        sourceAccount=[src],
        body=body,
    )
Esempio n. 8
0
def gen_merge_op(src: xdr_type.AccountID,
                 dest: xdr_type.AccountID) -> xdr_type.Operation:
    """Generate a merge operation.
    """
    body = xdr_pack.nullclass()
    body.type = xdr_const.ACCOUNT_MERGE
    body.destination = dest

    return xdr_type.Operation(
        sourceAccount=[src],
        body=body,
    )
Esempio n. 9
0
def gen_payment_op(dest: xdr_type.AccountID,
                   src: Optional[xdr_type.AccountID] = None,
                   amount: int = 10) -> xdr_type.Operation:
    """Generate a payment operation.
    """
    body = xdr_pack.nullclass()
    body.type = xdr_const.PAYMENT
    body.paymentOp = xdr_type.PaymentOp(
        destination=dest,
        asset=xdr_type.Asset(xdr_const.ASSET_TYPE_NATIVE),
        amount=amount,
    )

    return xdr_type.Operation(
        sourceAccount=[src] if src else [],
        body=body,
    )