# Interoperability prototype with moneyd

**URL:** <https://forum.interledger.org/t/interoperability-prototype-with-moneyd/382>\
**Category:** Applications and Use Cases\
**Created:** [March 13, 2019, 1:30pm UTC](https://forum.interledger.org/t/interoperability-prototype-with-moneyd/382 "2019-03-13T13:30:21Z")\
**Posts on this page:** 1\
**Showing post:** 14

<div class="post-metadata">

**Author:** ![Lucian\_Trestioreanu](https://yyz1.discourse-cdn.com/flex031/user_avatar/forum.interledger.org/lucian_trestioreanu/32/186_2.png) [@Lucian\_Trestioreanu](https://forum.interledger.org/u/Lucian_Trestioreanu)\
**Post date:** [April 4, 2019, 6:57pm UTC](https://forum.interledger.org/t/interoperability-prototype-with-moneyd/382/14 "2019-04-04T18:57:59Z")

</div>

In ripple-lib transaction.js function attachTransactionDate(connection, tx),  
when running the script for money transfer, the tx looks smaller:

```
  RIPPLE-LIB: TRANSACTION.js: tx { Account: 'r45NCTyFzLE72qSayEdFoU9PoZX4P71mMC',
  Amount: '20000000',
  Destination: 'rMqUT7uGs6Sz1m9vFr7o85XJ3WDAvgzWmj',
  Fee: '12',
  Flags: 2147483648,
  LastLedgerSequence: 35016,
  PublicKey:
    'EDAC010B717FC260EB5C8D3B6FC331AD935643D14F573F64301F97C9CD7B4C4495',
  Sequence: 65,
  SettleDelay: 518400,
  SigningPubKey:
    '02945580F0BA6866B258BB670395E533527966A25358DDAA12C7A9659CBE5F2A5B',
  TransactionType: 'PaymentChannelCreate',
  TxnSignature:
    '3044022023A5198CBB92AC2A650BD5E62CA7BE278B4A94049A009C3EC9DF62C9C81842E2022001CA244494948AA2D0A3035B133FE84E22EF95935C8F3F4BA5ECE7806AC286FE',
  hash:
    '195BAAA6416BCE2886C8DE730F4BB1B22EA86A6F9DF4FB65C9C245F09FCBF724' }
 ndError(ledger_indexandLedgerSequencenotfoundintxxx)]
(node:5106)[DEP0079 DeprecationWarning: Custom inspection function on Objects via .inspect() is deprecated

```

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

UPDATE:

Hi @kincaid @rhuairahrighairidh,

The problem comes indeed from ilp-plugin-xrp-paychan/build/utils/channel.js: it submits and immediately checks.

I added a delay to let the validators do their job.  
It’s probably not an elegant solution but it made it work for now.

Thanks again for the hint.

```
function msleep(n) {
  Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, n);
}
exports.sendTransaction = async (txJSON, api, xrpSecret) => {
      const { id, signedTransaction } = api.sign(txJSON, xrpSecret);
      console.log('ILP_PLUGIN_XRP_PAYCHAN: send transaction: { id, signedTransaction }', { id, signedTransaction });
      await api.submit(signedTransaction);
      console.log('ILP_PLUGIN_XRP_PAYCHAN: CHANNEL.js: send transaction: CHECKING TX...');
      msleep(10000);
      const checkForTx = (attempts = 0) => api
              .getTransaction(id) //ripple lib ledger transaction.js get transaction
              .then(({ outcome }) => {
              if (outcome.result !== 'tesSUCCESS') {
                      throw new Error(`Error verifying tx: ${outcome.result}`);
              }
              log.debug(`Transaction ${id} was included in a validated ledger`);
              return outcome;
      })
              .catch(async (err) => {
              if (attempts > 20) {
                      log.debug(`Failed to verify transaction, despite several attempts: ${err.message}`);
                      throw err;
              }
              else if (err.name === 'MissingLedgerHistoryError') {
                      await account_1.delay(200);
                      return checkForTx(attempts + 1);
              }
              else {
                      throw err;
              }
      });
      return checkForTx();
};
```

---

_[View the full topic](https://forum.interledger.org/t/interoperability-prototype-with-moneyd/382)._
