Skip to content

Commit

Permalink
LSPS7: Create order: add block heights
Browse files Browse the repository at this point in the history
  • Loading branch information
kaloudis committed Jan 17, 2025
1 parent 64b157c commit 72f5cc2
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 8 deletions.
2 changes: 1 addition & 1 deletion locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1093,9 +1093,9 @@
"views.LSPS7.type": "Channel lease extension",
"views.LSPS7.channelExtensionBlocks": "Number of blocks to extend channel lease by",
"views.LSPS7.extensionExpiryBlocks": "Extension expiry blocks",
"views.LSPS7.newChannelExpiryBlock": "New channel expiry block",
"views.LSPS7.maxChannelExtensionExpiryBlocks": "Max channel extension expiry blocks",
"views.LSPS7.expirationBlock": "Current expiration block",
"views.LSPS7.proposedExpirationBlock": "Proposed expiration block",
"views.LSPS7.originalOrderId": "Original order ID",
"views.LSPS7.originalService": "Original service",
"views.LSPS7.extensionOrderIds": "Extension Order IDs",
Expand Down
10 changes: 8 additions & 2 deletions views/Channels/Channel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ interface ChannelState {
expiresMonths?: number;
expiresDays?: number;
maxExtensionInBlocks?: number;
expirationBlock?: number;
};
}

Expand Down Expand Up @@ -137,6 +138,8 @@ export default class ChannelView extends React.Component<
renewalInfo.max_channel_extension_expiry_blocks;
}

const expirationBlock = renewalInfo?.expiration_block;

this.state = {
confirmCloseChannel: false,
satPerByte: '',
Expand All @@ -148,7 +151,8 @@ export default class ChannelView extends React.Component<
expiresInBlocks,
expiresDays,
expiresMonths,
maxExtensionInBlocks
maxExtensionInBlocks,
expirationBlock
}
};

Expand Down Expand Up @@ -595,7 +599,9 @@ export default class ChannelView extends React.Component<
navigation.navigate('LSPS7', {
chanId: shortChannelId,
maxExtensionInBlocks:
renewalInfo.maxExtensionInBlocks
renewalInfo.maxExtensionInBlocks,
expirationBlock:
renewalInfo.expirationBlock
});
}}
ViewComponent={LinearGradient}
Expand Down
2 changes: 1 addition & 1 deletion views/LSPS7/OrderResponse.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ export default class LSPS7OrderResponse extends React.Component<
{orderResponse?.new_channel_expiry_block && (
<KeyValue
keyValue={localeString(
'views.LSPS7.newChannelExpiryBlock'
'views.LSPS7.proposedExpirationBlock'
)}
value={numberWithCommas(
orderResponse.new_channel_expiry_block
Expand Down
57 changes: 53 additions & 4 deletions views/LSPS7/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ interface LSPS7Props {
{
chanId: string;
maxExtensionInBlocks: number;
expirationBlock: number;
}
>;
}
Expand All @@ -62,6 +63,7 @@ interface LSPS7State {
advancedSettings: boolean;
chanId: string;
maxExtensionInBlocks: number;
expirationBlock: number;
}

@inject(
Expand All @@ -79,6 +81,7 @@ export default class LSPS7 extends React.Component<LSPS7Props, LSPS7State> {

const chanId = props?.route.params?.chanId;
const maxExtensionInBlocks = props?.route.params?.maxExtensionInBlocks;
const expirationBlock = props?.route.params?.expirationBlock;

let expirationIndex = 4;
if (maxExtensionInBlocks === 4380) {
Expand All @@ -99,7 +102,8 @@ export default class LSPS7 extends React.Component<LSPS7Props, LSPS7State> {
showInfo: false,
advancedSettings: false,
chanId,
maxExtensionInBlocks
maxExtensionInBlocks,
expirationBlock
};
}

Expand Down Expand Up @@ -144,16 +148,19 @@ export default class LSPS7 extends React.Component<LSPS7Props, LSPS7State> {
};

render() {
const { navigation, LSPStore, InvoicesStore } = this.props;
const { navigation, LSPStore, NodeInfoStore, InvoicesStore } =
this.props;
const {
showInfo,
advancedSettings,
channelExtensionBlocks,
expirationIndex,
chanId,
maxExtensionInBlocks
maxExtensionInBlocks,
expirationBlock
} = this.state;
const { createExtensionOrderResponse } = LSPStore;
const { nodeInfo } = NodeInfoStore;
const result =
createExtensionOrderResponse?.result ||
createExtensionOrderResponse;
Expand Down Expand Up @@ -270,6 +277,16 @@ export default class LSPS7 extends React.Component<LSPS7Props, LSPS7State> {
? 'Olympus by ZEUS'
: LSPStore.getLSPSPubkey();

const proposedNewExpirationBlock = numberWithCommas(
new BigNumber(
new BigNumber(nodeInfo.currentBlockHeight).gt(expirationBlock)
? nodeInfo.currentBlockHeight
: expirationBlock
)
.plus(channelExtensionBlocks)
.toNumber()
);

return (
<Screen>
<Header
Expand Down Expand Up @@ -443,6 +460,38 @@ export default class LSPS7 extends React.Component<LSPS7Props, LSPS7State> {
)}
value={chanId}
/>

<KeyValue
keyValue={localeString(
'views.Sync.currentBlockHeight'
)}
value={numberWithCommas(
nodeInfo.currentBlockHeight
)}
/>

<KeyValue
keyValue={localeString(
'views.LSPS7.expirationBlock'
)}
value={numberWithCommas(
expirationBlock
)}
/>

<KeyValue
keyValue={localeString(
'views.LSPS7.proposedExpirationBlock'
)}
value={
proposedNewExpirationBlock ===
'NaN'
? localeString(
'general.invalid'
)
: proposedNewExpirationBlock
}
/>
</View>

<>
Expand Down Expand Up @@ -703,7 +752,7 @@ export default class LSPS7 extends React.Component<LSPS7Props, LSPS7State> {
};

orderData.clientPubkey =
this.props.NodeInfoStore.nodeInfo.nodeId;
nodeInfo?.nodeId;
orderData.peer =
LSPStore.getLSPSPubkey();
orderData.uri = `${LSPStore.getLSPSPubkey()}@${LSPStore.getLSPS1Host()}`;
Expand Down

0 comments on commit 72f5cc2

Please sign in to comment.