mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-12-06 17:27:59 +00:00
add hashURIToken
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
import { decodeAccountID } from '@transia/ripple-address-codec'
|
||||
import BigNumber from 'bignumber.js'
|
||||
|
||||
import { convertStringToHex } from '../stringConversion'
|
||||
|
||||
import hashLedger, {
|
||||
hashLedgerHeader,
|
||||
hashSignedTx,
|
||||
@@ -184,4 +186,18 @@ export function hashPaymentChannel(
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute the Hash of an URIToken LedgerEntry.
|
||||
*
|
||||
* @param issuer - Address of the issuer of the URIToken.
|
||||
* @param uri - string uri of the URIToken (not the hex).
|
||||
* @returns The hash of the URIToken LedgerEntry.
|
||||
* @category Utilities
|
||||
*/
|
||||
export function hashURIToken(issuer: string, uri: string): string {
|
||||
return sha512Half(
|
||||
ledgerSpaceHex('uriToken') + addressToHex(issuer) + convertStringToHex(uri),
|
||||
)
|
||||
}
|
||||
|
||||
export { hashLedgerHeader, hashSignedTx, hashLedger, hashStateTree, hashTxTree }
|
||||
|
||||
@@ -28,6 +28,7 @@ const ledgerSpaces = {
|
||||
signerList: 'S',
|
||||
paychan: 'x',
|
||||
check: 'C',
|
||||
uriToken: 'U',
|
||||
depositPreauth: 'p',
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ import {
|
||||
hashLedgerHeader,
|
||||
hashEscrow,
|
||||
hashPaymentChannel,
|
||||
hashURIToken,
|
||||
} from './hashes'
|
||||
import { calculateHookOn, hexHookParameters, TTS } from './hooks'
|
||||
import parseNFTokenID from './parseNFTokenID'
|
||||
@@ -173,6 +174,7 @@ const hashes = {
|
||||
hashLedgerHeader,
|
||||
hashEscrow,
|
||||
hashPaymentChannel,
|
||||
hashURIToken,
|
||||
}
|
||||
|
||||
export {
|
||||
|
||||
@@ -15,6 +15,7 @@ import {
|
||||
hashAccountRoot,
|
||||
hashOfferId,
|
||||
hashSignerListId,
|
||||
hashURIToken,
|
||||
} from '../../src/utils/hashes'
|
||||
import fixtures from '../fixtures/rippled'
|
||||
import { assertResultMatch } from '../testUtils'
|
||||
@@ -143,6 +144,16 @@ describe('Hashes', function () {
|
||||
assert.equal(actualEntryHash, expectedEntryHash)
|
||||
})
|
||||
|
||||
it('calcURITokenEntryHash', function () {
|
||||
const issuer = 'rDx69ebzbowuqztksVDmZXjizTd12BVr4x'
|
||||
const uri = 'ipfs://cid'
|
||||
const expectedEntryHash =
|
||||
'AFC4233E5C4094952DEF5483DC41488C8744D1268F897C0CB25DE66399591399'
|
||||
const actualEntryHash = hashURIToken(issuer, uri)
|
||||
|
||||
assert.equal(actualEntryHash, expectedEntryHash)
|
||||
})
|
||||
|
||||
it('Hash a signed transaction correctly', function () {
|
||||
const expected_hash =
|
||||
'458101D51051230B1D56E9ACAFAA34451BF65FA000F95DF6F0FF5B3A62D83FC2'
|
||||
|
||||
Reference in New Issue
Block a user