Skip to content

Commit

Permalink
stellar#153: incorporate pr feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
sreuland committed Oct 10, 2023
1 parent e6e944a commit 21e13da
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 25 deletions.
22 changes: 7 additions & 15 deletions src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -760,17 +760,17 @@ function findCreatedAccountSequenceInTransactionMeta(
function mergeResponseExpirationLedgers(ledgerEntriesResponse: SorobanRpc.RawGetLedgerEntriesResponse,
requestedKeys: xdr.LedgerKey[]
): SorobanRpc.RawGetLedgerEntriesResponse {
const expirationKeyToRawEntryResult:Map<String, SorobanRpc.RawLedgerEntryResult> = new Map();
const expirationKeyToRawEntryResult = new Map<String, SorobanRpc.RawLedgerEntryResult>();
const requestedKeyXdrs = new Set<String>(requestedKeys.map(requestedKey =>
requestedKey.toXDR('base64')));

(ledgerEntriesResponse.entries ?? []).forEach(rawEntryResult => {
if (!rawEntryResult.key) {
// don't interpret here, just pass it through to the outgoing response as-is
// don't interpret raw ledger entry data here, just pass it through to the outgoing response as-is
expirationKeyToRawEntryResult.set(Math.random().toString(), rawEntryResult)
return;
}
const parsedKey:xdr.LedgerKey = xdr.LedgerKey.fromXDR(rawEntryResult.key, 'base64');
const parsedKey = xdr.LedgerKey.fromXDR(rawEntryResult.key, 'base64');

if (parsedKey.switch().value !== xdr.LedgerEntryType.expiration().value ||
requestedKeyXdrs.has(rawEntryResult.key)) {
Expand Down Expand Up @@ -812,16 +812,8 @@ function mergeResponseExpirationLedgers(ledgerEntriesResponse: SorobanRpc.RawGet
function expandRequestIncludeExpirationLedgers(
keys: Array<xdr.LedgerKey>
): Array<xdr.LedgerKey> {
let includingExpiryKeys: Array<xdr.LedgerKey> = new Array()
keys.forEach(key => {
if (key.switch().value !== xdr.LedgerEntryType.expiration().value) {
const expirationKey = xdr.LedgerKey.expiration(
new xdr.LedgerKeyExpiration(
{ keyHash: hash(key.toXDR())}
));
includingExpiryKeys.push(expirationKey);
}
includingExpiryKeys.push(key);
});
return includingExpiryKeys;
return keys.concat(keys
.filter(key => key.switch().value !== xdr.LedgerEntryType.expiration().value )
.map(key => xdr.LedgerKey.expiration(new xdr.LedgerKeyExpiration({ keyHash: hash(key.toXDR())})))
);
}
4 changes: 2 additions & 2 deletions test/unit/server/get_account_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ describe('Server#getAccount', function () {
jsonrpc: '2.0',
id: 1,
method: 'getLedgerEntries',
params: [[ledgerExpirationKey.toXDR('base64'), key.toXDR('base64')]]
params: [[key.toXDR('base64'), ledgerExpirationKey.toXDR('base64')]]
})
.returns(
Promise.resolve({
Expand Down Expand Up @@ -67,7 +67,7 @@ describe('Server#getAccount', function () {
jsonrpc: '2.0',
id: 1,
method: 'getLedgerEntries',
params: [[ledgerExpirationKey.toXDR('base64'), key.toXDR('base64')]]
params: [[key.toXDR('base64'), ledgerExpirationKey.toXDR('base64')]]
})
.returns(
Promise.resolve({
Expand Down
8 changes: 4 additions & 4 deletions test/unit/server/get_contract_data_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ describe('Server#getContractData', function () {
id: 1,
method: 'getLedgerEntries',
params: [
[ledgerExpirationKey.toXDR('base64'), ledgerKey.toXDR('base64')]
[ledgerKey.toXDR('base64'), ledgerExpirationKey.toXDR('base64')]
]
})
.returns(
Expand Down Expand Up @@ -115,7 +115,7 @@ describe('Server#getContractData', function () {
id: 1,
method: 'getLedgerEntries',
params: [
[ledgerExpirationKey.toXDR('base64'), ledgerKey.toXDR('base64')]
[ledgerKey.toXDR('base64'), ledgerExpirationKey.toXDR('base64')]
]
})
.returns(
Expand Down Expand Up @@ -169,8 +169,8 @@ describe('Server#getContractData', function () {
method: 'getLedgerEntries',
params: [
[
ledgerExpirationKeyDupe.toXDR('base64'),
ledgerKeyDupe.toXDR('base64')
ledgerKeyDupe.toXDR('base64'),
ledgerExpirationKeyDupe.toXDR('base64')
]
]
})
Expand Down
6 changes: 3 additions & 3 deletions test/unit/server/get_ledger_entries_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ describe('Server#getLedgerEntries', function () {
id: 1,
method: 'getLedgerEntries',
params: [
[ledgerExpirationKey.toXDR('base64'), ledgerKey.toXDR('base64')]
[ledgerKey.toXDR('base64'), ledgerExpirationKey.toXDR('base64')]
]
})
.returns(
Expand Down Expand Up @@ -115,7 +115,7 @@ describe('Server#getLedgerEntries', function () {
id: 1,
method: 'getLedgerEntries',
params: [
[ledgerExpirationKey.toXDR('base64'), ledgerKey.toXDR('base64')]
[ledgerKey.toXDR('base64'), ledgerExpirationKey.toXDR('base64')]
]
})
.returns(
Expand Down Expand Up @@ -167,7 +167,7 @@ describe('Server#getLedgerEntries', function () {
id: 1,
method: 'getLedgerEntries',
params: [
[ledgerExpirationKey.toXDR('base64'), ledgerKey.toXDR('base64')]
[ledgerKey.toXDR('base64'), ledgerExpirationKey.toXDR('base64')]
]
})
.returns(
Expand Down
2 changes: 1 addition & 1 deletion test/unit/server/request_airdrop_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ describe('Server#requestAirdrop', function () {
id: 1,
method: 'getLedgerEntries',
params: [
[ledgerExpirationKey.toXDR('base64'), accountKey.toXDR('base64')]
[accountKey.toXDR('base64'), ledgerExpirationKey.toXDR('base64')]
]
})
.returns(
Expand Down

0 comments on commit 21e13da

Please sign in to comment.