Skip to content

DERO.GetTransaction API call returns excessive 0x05 character at end of Code field #24

Description

@Alumn0

When requesting transaction data from the daemon like so:

func (c *DaemonHTTPClient) TX(ctx context.Context, txid string) (contracts.TransactionResult, error) {
	var rpcResult rpc.GetTransaction_Result
	var result contracts.TransactionResult

	if err := c.Call(ctx, "DERO.GetTransaction", rpc.GetTransaction_Params{Tx_Hashes: []string{txid}}, &rpcResult); err != nil {
		return contracts.TransactionResult{}, err
	}

	if txBin, err := hex.DecodeString(rpcResult.Txs_as_hex[0]); err != nil {
		return contracts.TransactionResult{}, err
	} else if err = result.TX.Deserialize(txBin); err != nil {
		return contracts.TransactionResult{}, err
	}
	result.RelatedInfo = rpcResult.Txs[0]
	result.Status = rpcResult.Status
	result.Valid = true

	// remove rpc leftovers, which disturb contract detection
	result.RelatedInfo.Code = strings.TrimRight(result.RelatedInfo.Code, "\x05")

	return result, nil
}

Then the field rpcResult.Txs[0].Code contains a 0x05 character at the end, which does not belong to the actual contract code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions