Estoy probando la API y he configurado una cuenta de 'usuario' y una cuenta de 'puerta de enlace'. La única diferencia entre los dos es que el usuario ha extendido una línea de confianza a la cuenta de la puerta de enlace. Ahora me gustaría emitir pagarés en USD desde la puerta de enlace a la cuenta de usuario.
Supongo que la funcionalidad para esto está integrada en api.preparePayment(). Hasta ahora, puedo transferir XRP usando el código que se encuentra en el ejemplo de pago de ripple-lib . La esencia es:
const address = SENDER_ADDRESS;
const secret = SENDER_SECRET;
const payment = {
source: {
address: address,
maxAmount: {
value: '0.01',
currency: 'XRP'
}
},
destination: {
address: RECEIVER_ADDRESS,
amount: {
value: '0.01',
currency: 'XRP'
}
}
};
api.connect().then(() => {
console.log('Connected...');
return api.preparePayment(address, payment, instructions).then(prepared => {
console.log('Payment transaction prepared...');
const {signedTransaction} = api.sign(prepared.txJSON, secret);
console.log('Payment transaction signed...');
api.submit(signedTransaction);
});
Faltan algunas líneas de código, pero esta es la estructura básica. Funciona cuando hago que la puerta de enlace o el usuario sea el remitente y el otro el receptor. ¿Cómo debo modificarlo para poder emitir pagarés en USD desde el Gateway al usuario?
Mi trustline
objeto era:
var trustline = {
"currency": "USD",
"counterparty": GATEWAY_ADDRESS,
"limit": "100",
"qualityIn": 0.91,
"qualityOut": 0.87,
"ripplingDisabled": true,
"frozen": false,
};
Bien, lo descubrí: primero, configuré una línea de confianza de USER_ADDR a GATEWAY_ADDR por 1000 EUR. Me aseguré de que la entrada de calidad y la salida de calidad estuvieran configuradas en 0, el valor predeterminado:
var trustline = {
"currency": "EUR",
"counterparty": GATEWAY_ADDR,
"limit": "1000",
"ripplingDisabled": true,
"frozen": false,
"memos": [
{
"type": "test2",
"format": "plain/text",
"data": "texted data2"
}
]
};
Firmé y envié esta línea de confianza.
Luego usé el siguiente objeto de pago para crear un IOU por 50 EUR desde la puerta de enlace al usuario, indicando que el usuario había depositado 50 EUR en la puerta de enlace fuera del sistema Ripple:
const payment = {
source: {
address: GATEWAY_ADDR,
maxAmount: {
currency: 'EUR',
value: '50',
counterparty: GATEWAY_ADDR
}
},
destination: {
address: USER_ADDR,
amount: {
currency: 'EUR',
value: '50',
counterparty: GATEWAY_ADDR
}
}
};
Anteriormente, esto no funcionaba debido a que qualityIn y qualityOut estaban en 0.91 y 0.87
david schwartz