RippleAPI, wie man Schuldscheine ausstellt unter Verwendung von PreparePayment [geschlossen]

Ich probiere die API aus und habe ein „Benutzer“-Konto und ein „Gateway“-Konto eingerichtet. Der einzige Unterschied zwischen den beiden besteht darin, dass der Benutzer eine Trustline zum Gateway-Konto erweitert hat. Ich möchte nun USD-Schuldscheine vom Gateway an das Benutzerkonto ausgeben.

Ich gehe davon aus, dass die Funktionalität dafür in api.preparePayment() integriert ist. Bisher kann ich XRP mit dem Code übertragen, der im Zahlungsbeispiel von ripple-lib zu finden ist . Die Essenz ist:

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);
  });

Ein paar Codezeilen fehlen, aber das ist die Grundstruktur. Es funktioniert, wenn ich entweder das Gateway oder den Benutzer zum Sender und den anderen zum Empfänger mache. Wie muss ich es ändern, damit ich USD-Schuldscheine vom Gateway an den Benutzer ausgeben kann?

Mein trustlineObjekt war:

var trustline = {
  "currency": "USD",
  "counterparty": GATEWAY_ADDRESS, 
  "limit": "100",
  "qualityIn": 0.91,
  "qualityOut": 0.87,
  "ripplingDisabled": true,
  "frozen": false,
};

Antworten (1)

Okay, ich habe es verstanden: Zuerst habe ich eine Trustline von USER_ADDR zu GATEWAY_ADDR für 1000 EUR eingerichtet. Ich habe dafür gesorgt, dass qualityIn und qualityOut auf 0 gesetzt sind, den Standardwert:

var trustline = {
  "currency": "EUR",
  "counterparty": GATEWAY_ADDR, 
  "limit": "1000",
  "ripplingDisabled": true,
  "frozen": false,
  "memos": [
    {
      "type": "test2",
      "format": "plain/text",
      "data": "texted data2"
    }
  ]
};

Ich habe diese Trustline unterschrieben und eingereicht.

Ich habe dann das folgende Zahlungsobjekt verwendet, um einen Schuldschein über 50 EUR vom Gateway an den Benutzer zu erstellen, der anzeigt, dass der Benutzer 50 EUR beim Gateway außerhalb des Ripple-Systems eingezahlt hat:

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
    }
  }
};

Früher funktionierte dies nicht, da qualityIn und qualityOut auf 0,91 und 0,87 lagen

Da Sie den Höchstbetrag auf 50 EUR festlegen, funktioniert die Zahlung nur, wenn die Kosten für die Lieferung von 50 EUR 50 EUR oder weniger betragen. Wenn der Empfänger die Schuldscheine des Gateways nicht zum Nennwert bewertet, kostet es das Gateway mehr als 50 EUR, dem Kunden 50 EUR zu geben. (Ripple verlangt von Emittenten nur, dass sie ihre eigenen Schuldscheine zum Nennwert bewerten. Sie können die Schuldscheine anderer Personen entwerten.)