XRPLF / xrpl.js

A JavaScript/TypeScript API for interacting with the XRP Ledger in Node.js and the browser
https://xrpl.org/
1.21k stars 512 forks source link

[RFE] Add 'data' property to ValidationStream interface #2095

Closed pkcs8 closed 2 years ago

pkcs8 commented 2 years ago

Messages emitted on validationReceived stream have data property, but xrpl.ValidationStream interface does not include this property.

{
  cookie: '10019730095899181630',
  data: '228000000126046F0B01292AB47C7A3A8B0D3B6F775C823E5148E2C637974E505E81356D178EBE80834B633AC426B29CAB5DB42A9C073FF99B50177B68F88701CD73D951976540DFF5CAA2A00F6B605F1BCE82DC1B5D83DE1CBCDF5019E56337278151F76351C8251392FD2089C9714B92A3BC38A0CF720D7B02F69E517321033CE387D979DAEAF4A7D67F0A76C84B2A09C3859558A1DAE886663D3F0121A9D77646304402202A20BDBFA3C2BC376A46ED7A3A245F8D19D1DABE96888D84429B6F732525E46D022027F9DAA466A63E44938BC074289804EB5B68BC3F1F99988E384213526476143C',
  flags: 2147483649,
  full: true,
  ledger_hash: '48E2C637974E505E81356D178EBE80834B633AC426B29CAB5DB42A9C073FF99B',
  ledger_index: '74386177',
  master_key: 'nHB6KGx8YNddfLwTKhLyqytFLyhjmh9vvv8LpUfBg53S8BZbYyQn',
  signature: '304402202A20BDBFA3C2BC376A46ED7A3A245F8D19D1DABE96888D84429B6F732525E46D022027F9DAA466A63E44938BC074289804EB5B68BC3F1F99988E384213526476143C',
  signing_time: 716471418,
  type: 'validationReceived',
  validated_hash: 'E56337278151F76351C8251392FD2089C9714B92A3BC38A0CF720D7B02F69E51',
  validation_public_key: 'n9Lxh4VJhbpThQqpXBwC1rGL4t93zqVeEetbJKSyAEBuhdfBbFmc'
}

This causes Typescript to print error TS2339: Property 'data' does not exist on type 'ValidationStream'. errors.

It would be great to have data in ValidationStream interface - https://github.com/XRPLF/xrpl.js/blob/main/packages/xrpl/src/models/methods/subscribe.ts#L183

ckniffen commented 2 years ago

@pkcs8 What does this property contain? I am working on adding it but wanted to add some documentation.

pkcs8 commented 2 years ago

@ckniffen data property contains the following object, encoded in xrpl serialization format. When passed to xrpl.decode, it returns:

{
  Flags: 2147483649,
  LedgerSequence: 74386177,
  SigningTime: 716471418,
  Cookie: '8B0D3B6F775C823E',
  LedgerHash: '48E2C637974E505E81356D178EBE80834B633AC426B29CAB5DB42A9C073FF99B',
  ConsensusHash: '7B68F88701CD73D951976540DFF5CAA2A00F6B605F1BCE82DC1B5D83DE1CBCDF',
  ValidatedHash: 'E56337278151F76351C8251392FD2089C9714B92A3BC38A0CF720D7B02F69E51',
  SigningPubKey: '033CE387D979DAEAF4A7D67F0A76C84B2A09C3859558A1DAE886663D3F0121A9D7',
  Signature: '304402202A20BDBFA3C2BC376A46ED7A3A245F8D19D1DABE96888D84429B6F732525E46D022027F9DAA466A63E44938BC074289804EB5B68BC3F1F99988E384213526476143C'
}

Using this property it is easier to verify validation signature.

ckniffen commented 2 years ago

Closed by #2096