Skip to content

Commit 6c6ad32

Browse files
committed
style: apply prettier formatting
1 parent 23e855b commit 6c6ad32

23 files changed

+720
-69
lines changed

IMPORTANT_FILES.yaml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
version: 1
2+
generated_by: repo-knowledge-tracker
3+
last_updated: "2025-01-13T00:00:00Z"
4+
entries:
5+
- path: "src/methods/createTx.ts"
6+
title: "Transaction Creation Module"
7+
why_important: "Core module responsible for creating transactions with mortality/era settings - critical for transaction expiry issue"
8+
topics: ["transaction", "mortality", "era", "expiry", "signing"]
9+
owners: ["@backend-team"]
10+
linked_docs: []
11+
related_components:
12+
["src/methods/createAndSendTx.ts", "src/commands/createCommand.ts"]
13+
dependencies:
14+
direct:
15+
[
16+
"@polkadot/util",
17+
"@polkadot/types",
18+
"@polkadot/util-crypto",
19+
"moonbeam-tools",
20+
]
21+
indirect: []
22+
update_triggers: ["mortality period changes", "transaction format changes"]
23+
last_seen: "2025-01-13"
24+
last_reviewed_at: "2025-01-13"
25+
staleness_hints: "Period hardcoded to 2048 blocks"
26+
recommended_action: "Make mortality period configurable via CLI parameter"
27+
notes: "Line 99: period: 2 ** 11 (2048 blocks) is hardcoded - this is the root cause of transaction expiry issues"
28+
29+
- path: "src/methods/createAndSendTx.ts"
30+
title: "Create and Send Transaction Module"
31+
why_important: "Handles immediate transaction creation and sending with same mortality settings"
32+
topics: ["transaction", "mortality", "era", "signing", "sending"]
33+
owners: ["@backend-team"]
34+
linked_docs: []
35+
related_components:
36+
["src/methods/createTx.ts", "src/commands/createAndSendCommand.ts"]
37+
dependencies:
38+
direct:
39+
[
40+
"@polkadot/util",
41+
"@polkadot/types",
42+
"@polkadot/util-crypto",
43+
"moonbeam-tools",
44+
]
45+
indirect: []
46+
update_triggers: ["mortality period changes", "transaction format changes"]
47+
last_seen: "2025-01-13"
48+
last_reviewed_at: "2025-01-13"
49+
staleness_hints: "Period hardcoded to 2048 blocks"
50+
recommended_action: "Synchronize mortality period configuration with createTx.ts"
51+
notes: "Line 82: Same hardcoded 2048 block period as createTx.ts"
52+
53+
- path: "src/methods/sendTx.ts"
54+
title: "Transaction Sending Module"
55+
why_important: "Sends pre-signed transactions - uses era from stored payload"
56+
topics: ["transaction", "sending", "era", "signature"]
57+
owners: ["@backend-team"]
58+
linked_docs: []
59+
related_components: ["src/commands/sendCommand.ts"]
60+
dependencies:
61+
direct: ["@polkadot/types", "moonbeam-tools"]
62+
indirect: []
63+
update_triggers: ["transaction format changes", "signing process changes"]
64+
last_seen: "2025-01-13"
65+
last_reviewed_at: "2025-01-13"
66+
staleness_hints: "None"
67+
recommended_action: "Add validation for transaction age before sending"
68+
notes: "Line 62: Uses era from stored payload, doesn't validate if transaction is still valid"
69+
70+
- path: "src/commands/createCommand.ts"
71+
title: "Create Command CLI Handler"
72+
why_important: "CLI entry point for transaction creation - has immortality flag"
73+
topics: ["cli", "transaction", "immortality"]
74+
owners: ["@backend-team"]
75+
linked_docs: []
76+
related_components: ["src/methods/createTx.ts"]
77+
dependencies:
78+
direct: ["yargs", "moonbeam-tools"]
79+
indirect: []
80+
update_triggers: ["CLI interface changes", "new transaction options"]
81+
last_seen: "2025-01-13"
82+
last_reviewed_at: "2025-01-13"
83+
staleness_hints: "Missing mortality period configuration option"
84+
recommended_action: "Add --mortality-period parameter to allow custom expiry settings"
85+
notes: "Line 29-34: Has immortality flag but no way to configure mortality period"
86+
87+
- path: "src/methods/types.ts"
88+
title: "Type Definitions"
89+
why_important: "Defines interfaces for transaction options including immortality"
90+
topics: ["types", "interfaces", "transaction options"]
91+
owners: ["@backend-team"]
92+
linked_docs: []
93+
related_components: ["src/methods/*.ts", "src/commands/*.ts"]
94+
dependencies:
95+
direct: ["@polkadot/types", "moonbeam-tools"]
96+
indirect: []
97+
update_triggers: ["New transaction options", "API changes"]
98+
last_seen: "2025-01-13"
99+
last_reviewed_at: "2025-01-13"
100+
staleness_hints: "Missing mortality period field"
101+
recommended_action: "Add mortalityPeriod field to TxOpt interface"
102+
notes: "Lines 52, 34: immortality boolean exists but no period configuration"

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ Creates the file `<path_of_file>` and stores the transaction payload details int
3939
- **`--era-period <blocks>`**: Set custom mortality period in blocks (must be power of 2: 512, 1024, 2048, 4096, 8192, 16384)
4040

4141
**Important Notes for Offline Batch Signing:**
42+
4243
- For batches that take time to sign, use `--immortality` to avoid expiry issues
4344
- If using mortal transactions with `--era-period`:
4445
- Values > 4096 blocks may exceed chain limits and fail

data/tx-1.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"payload": {
3+
"specVersion": "0x00000e76",
4+
"transactionVersion": "0x00000003",
5+
"address": "0xefb278e0c8efd11b397d846af27a970fe2bf8cb6",
6+
"assetId": null,
7+
"blockHash": "0x60657a99e930bfbd9946649eb16fb2862b128436c09edaa5f256880239047d82",
8+
"blockNumber": "0x00000000",
9+
"era": "0xaa1a",
10+
"genesisHash": "0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",
11+
"metadataHash": null,
12+
"method": "0x1f00e57215534123c30e120a4343b10b70a50b137f0a01000a030daba0beea0b83d000395cf6ff2800dcdc1302501b0000c0b4aaad09a73402",
13+
"mode": 0,
14+
"nonce": "0x000001fd",
15+
"signedExtensions": [
16+
"CheckNonZeroSender",
17+
"CheckSpecVersion",
18+
"CheckTxVersion",
19+
"CheckGenesis",
20+
"CheckMortality",
21+
"CheckNonce",
22+
"CheckWeight",
23+
"ChargeTransactionPayment",
24+
"CheckMetadataHash",
25+
"StorageWeightReclaim"
26+
],
27+
"tip": "0x00000000000000000000000000000000",
28+
"version": 4,
29+
"withSignedTransaction": false
30+
},
31+
"message": "0x1f00e57215534123c30e120a4343b10b70a50b137f0a01000a030daba0beea0b83d000395cf6ff2800dcdc1302501b0000c0b4aaad09a73402aa1af5070000760e000003000000fe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d60657a99e930bfbd9946649eb16fb2862b128436c09edaa5f256880239047d8200",
32+
"signature": "0xf310d109594b834ed5d00e4a13d0cb1b4477f328660aabbb798eb20844ac239d7d49d12c2d4391997d71817cb1f18abf84ef5e0e37f45abed73135dd856b34d801"
33+
}

data/tx-10.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"payload": {
3+
"specVersion": "0x00000e76",
4+
"transactionVersion": "0x00000003",
5+
"address": "0xefb278e0c8efd11b397d846af27a970fe2bf8cb6",
6+
"assetId": null,
7+
"blockHash": "0xadfcc5da29c9c48840c6bb3363fcbe3c44d2eb975ec70afd0a08a8fed81cfbd7",
8+
"blockNumber": "0x00000000",
9+
"era": "0xfa1a",
10+
"genesisHash": "0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",
11+
"metadataHash": null,
12+
"method": "0x1f009f08993bcfafe9be586fdfecb0459158d67297a301000a030daba0beea0b83d000395cf6ff2800dcdc1302501b000080f64ae1c7022d15",
13+
"mode": 0,
14+
"nonce": "0x00000206",
15+
"signedExtensions": [
16+
"CheckNonZeroSender",
17+
"CheckSpecVersion",
18+
"CheckTxVersion",
19+
"CheckGenesis",
20+
"CheckMortality",
21+
"CheckNonce",
22+
"CheckWeight",
23+
"ChargeTransactionPayment",
24+
"CheckMetadataHash",
25+
"StorageWeightReclaim"
26+
],
27+
"tip": "0x00000000000000000000000000000000",
28+
"version": 4,
29+
"withSignedTransaction": false
30+
},
31+
"message": "0x1f009f08993bcfafe9be586fdfecb0459158d67297a301000a030daba0beea0b83d000395cf6ff2800dcdc1302501b000080f64ae1c7022d15fa1a19080000760e000003000000fe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76dadfcc5da29c9c48840c6bb3363fcbe3c44d2eb975ec70afd0a08a8fed81cfbd700",
32+
"signature": "0xd5de3a09f41f10d2dfbe19ea2033ff150bd4c9538b32b14f9128917d31560f731e118527446d42feb8c98b3ab152aa36759c4d96e4dbf50309bfad56416eb9c800"
33+
}

data/tx-11.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"payload": {
3+
"specVersion": "0x00000e76",
4+
"transactionVersion": "0x00000003",
5+
"address": "0xefb278e0c8efd11b397d846af27a970fe2bf8cb6",
6+
"assetId": null,
7+
"blockHash": "0x90d0404048b5fbf8bb6b751c5979d5c3d2c349d44c6805f23d95da778dff39f6",
8+
"blockNumber": "0x00000000",
9+
"era": "0x0a1b",
10+
"genesisHash": "0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",
11+
"metadataHash": null,
12+
"method": "0x1f00f100126e38ed941ba1918793bcc39d04610a044c01000a030daba0beea0b83d000395cf6ff2800dcdc1302501b000000ed95c28f055a2a",
13+
"mode": 0,
14+
"nonce": "0x00000207",
15+
"signedExtensions": [
16+
"CheckNonZeroSender",
17+
"CheckSpecVersion",
18+
"CheckTxVersion",
19+
"CheckGenesis",
20+
"CheckMortality",
21+
"CheckNonce",
22+
"CheckWeight",
23+
"ChargeTransactionPayment",
24+
"CheckMetadataHash",
25+
"StorageWeightReclaim"
26+
],
27+
"tip": "0x00000000000000000000000000000000",
28+
"version": 4,
29+
"withSignedTransaction": false
30+
},
31+
"message": "0x1f00f100126e38ed941ba1918793bcc39d04610a044c01000a030daba0beea0b83d000395cf6ff2800dcdc1302501b000000ed95c28f055a2a0a1b1d080000760e000003000000fe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d90d0404048b5fbf8bb6b751c5979d5c3d2c349d44c6805f23d95da778dff39f600",
32+
"signature": "0x66d0dcb935a59c181608a38182ce4cfb36a0461e5d606500430d7a5c01a42a273c4e8b30f81db1955d91c4a7eadde6eda9c87801f0207fbee330a55510dc8a8800"
33+
}

data/tx-12.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"payload": {
3+
"specVersion": "0x00000e76",
4+
"transactionVersion": "0x00000003",
5+
"address": "0xefb278e0c8efd11b397d846af27a970fe2bf8cb6",
6+
"assetId": null,
7+
"blockHash": "0x90d0404048b5fbf8bb6b751c5979d5c3d2c349d44c6805f23d95da778dff39f6",
8+
"blockNumber": "0x00000000",
9+
"era": "0x0a1b",
10+
"genesisHash": "0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",
11+
"metadataHash": null,
12+
"method": "0x1f0092a0ae743c9fa550a239f25dae712872fd85b52f01000a030daba0beea0b83d000395cf6ff2800dcdc1302501b0000149f75d82ac11d2c",
13+
"mode": 0,
14+
"nonce": "0x00000208",
15+
"signedExtensions": [
16+
"CheckNonZeroSender",
17+
"CheckSpecVersion",
18+
"CheckTxVersion",
19+
"CheckGenesis",
20+
"CheckMortality",
21+
"CheckNonce",
22+
"CheckWeight",
23+
"ChargeTransactionPayment",
24+
"CheckMetadataHash",
25+
"StorageWeightReclaim"
26+
],
27+
"tip": "0x00000000000000000000000000000000",
28+
"version": 4,
29+
"withSignedTransaction": false
30+
},
31+
"message": "0x1f0092a0ae743c9fa550a239f25dae712872fd85b52f01000a030daba0beea0b83d000395cf6ff2800dcdc1302501b0000149f75d82ac11d2c0a1b21080000760e000003000000fe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d90d0404048b5fbf8bb6b751c5979d5c3d2c349d44c6805f23d95da778dff39f600",
32+
"signature": "0x1de59b7b2015ab573712006ee42b5ad62f860aba6bd847c6a7ba95305fcdc0b201b9c531d7a4ead7997344ae3a1eb818a985c3e62b380c8b4ac4080986830d6a00"
33+
}

data/tx-13.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"payload": {
3+
"specVersion": "0x00000e76",
4+
"transactionVersion": "0x00000003",
5+
"address": "0xefb278e0c8efd11b397d846af27a970fe2bf8cb6",
6+
"assetId": null,
7+
"blockHash": "0x36677ae3857ed81b4632b682515409bb3d088b1ebf7bf062be7f98c90042b205",
8+
"blockNumber": "0x00000000",
9+
"era": "0x1a1b",
10+
"genesisHash": "0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",
11+
"metadataHash": null,
12+
"method": "0x1f00c75c5ed8e258ec5b37974bfaa98d45d40dac436c01000a030daba0beea0b83d000395cf6ff2800dcdc1302501b000070d57d10f149af2d",
13+
"mode": 0,
14+
"nonce": "0x00000209",
15+
"signedExtensions": [
16+
"CheckNonZeroSender",
17+
"CheckSpecVersion",
18+
"CheckTxVersion",
19+
"CheckGenesis",
20+
"CheckMortality",
21+
"CheckNonce",
22+
"CheckWeight",
23+
"ChargeTransactionPayment",
24+
"CheckMetadataHash",
25+
"StorageWeightReclaim"
26+
],
27+
"tip": "0x00000000000000000000000000000000",
28+
"version": 4,
29+
"withSignedTransaction": false
30+
},
31+
"message": "0x1f00c75c5ed8e258ec5b37974bfaa98d45d40dac436c01000a030daba0beea0b83d000395cf6ff2800dcdc1302501b000070d57d10f149af2d1a1b25080000760e000003000000fe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d36677ae3857ed81b4632b682515409bb3d088b1ebf7bf062be7f98c90042b20500",
32+
"signature": "0xa5ff04adeb8644e5c72ac1752e05e2899adfaf20d57c2a96258dc7f9d4ef66362a475de86b92f3d6894577ec7d0420bc0485fd7ed2ad6d1e0cc1017203a1144b01"
33+
}

data/tx-14.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"payload": {
3+
"specVersion": "0x00000e76",
4+
"transactionVersion": "0x00000003",
5+
"address": "0xefb278e0c8efd11b397d846af27a970fe2bf8cb6",
6+
"assetId": null,
7+
"blockHash": "0x695e034df270c14461facf940f79281416f8156ec0dd677ffea5d73f4ea05cda",
8+
"blockNumber": "0x00000000",
9+
"era": "0x2a1b",
10+
"genesisHash": "0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",
11+
"metadataHash": null,
12+
"method": "0x1f0072e02f23c0953cf00de519eb089d568a8f1e354001000a030daba0beea0b83d000395cf6ff2800dcdc1302501b00000011415e9ca33b4c",
13+
"mode": 0,
14+
"nonce": "0x0000020a",
15+
"signedExtensions": [
16+
"CheckNonZeroSender",
17+
"CheckSpecVersion",
18+
"CheckTxVersion",
19+
"CheckGenesis",
20+
"CheckMortality",
21+
"CheckNonce",
22+
"CheckWeight",
23+
"ChargeTransactionPayment",
24+
"CheckMetadataHash",
25+
"StorageWeightReclaim"
26+
],
27+
"tip": "0x00000000000000000000000000000000",
28+
"version": 4,
29+
"withSignedTransaction": false
30+
},
31+
"message": "0x1f0072e02f23c0953cf00de519eb089d568a8f1e354001000a030daba0beea0b83d000395cf6ff2800dcdc1302501b00000011415e9ca33b4c2a1b29080000760e000003000000fe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d695e034df270c14461facf940f79281416f8156ec0dd677ffea5d73f4ea05cda00",
32+
"signature": "0x06afcaf91c91843d64b55ca2fb17a7e38ba4822aa208912d131c1d17a3130e7367ed790b2de6b58e97d0c25ba1f4f7e6b3cd3577f9a15e123ecc5cddd354632e01"
33+
}

data/tx-15.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"payload": {
3+
"specVersion": "0x00000e76",
4+
"transactionVersion": "0x00000003",
5+
"address": "0xefb278e0c8efd11b397d846af27a970fe2bf8cb6",
6+
"assetId": null,
7+
"blockHash": "0x695e034df270c14461facf940f79281416f8156ec0dd677ffea5d73f4ea05cda",
8+
"blockNumber": "0x00000000",
9+
"era": "0x2a1b",
10+
"genesisHash": "0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",
11+
"metadataHash": null,
12+
"method": "0x1f009bb3539b0c72993da05b5cfd5849b2f3b819157801000a030daba0beea0b83d000395cf6ff2800dcdc1302501b000080d07666e70de169",
13+
"mode": 0,
14+
"nonce": "0x0000020b",
15+
"signedExtensions": [
16+
"CheckNonZeroSender",
17+
"CheckSpecVersion",
18+
"CheckTxVersion",
19+
"CheckGenesis",
20+
"CheckMortality",
21+
"CheckNonce",
22+
"CheckWeight",
23+
"ChargeTransactionPayment",
24+
"CheckMetadataHash",
25+
"StorageWeightReclaim"
26+
],
27+
"tip": "0x00000000000000000000000000000000",
28+
"version": 4,
29+
"withSignedTransaction": false
30+
},
31+
"message": "0x1f009bb3539b0c72993da05b5cfd5849b2f3b819157801000a030daba0beea0b83d000395cf6ff2800dcdc1302501b000080d07666e70de1692a1b2d080000760e000003000000fe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d695e034df270c14461facf940f79281416f8156ec0dd677ffea5d73f4ea05cda00",
32+
"signature": "0xbda1b7c9e3a497410a6eaa6856ae342c8146840a337f959f86d1301f36abcb751d837ddd65025280c79a30e4eda27aebb562318e0aa27ed284b2ddd810c79cfe00"
33+
}

data/tx-16.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"payload": {
3+
"specVersion": "0x00000e76",
4+
"transactionVersion": "0x00000003",
5+
"address": "0xefb278e0c8efd11b397d846af27a970fe2bf8cb6",
6+
"assetId": null,
7+
"blockHash": "0x7c9c3ee004bad91d5bd29f39154ab8301147a67c0fa39f3c1e7dc8ae667604a7",
8+
"blockNumber": "0x00000000",
9+
"era": "0x3a1b",
10+
"genesisHash": "0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",
11+
"metadataHash": null,
12+
"method": "0x1f00c539960d1a033d328986dbd92a52617c6881405301000a030daba0beea0b83d000395cf6ff2800dcdc1302501b000000c7c147af100e7f",
13+
"mode": 0,
14+
"nonce": "0x0000020c",
15+
"signedExtensions": [
16+
"CheckNonZeroSender",
17+
"CheckSpecVersion",
18+
"CheckTxVersion",
19+
"CheckGenesis",
20+
"CheckMortality",
21+
"CheckNonce",
22+
"CheckWeight",
23+
"ChargeTransactionPayment",
24+
"CheckMetadataHash",
25+
"StorageWeightReclaim"
26+
],
27+
"tip": "0x00000000000000000000000000000000",
28+
"version": 4,
29+
"withSignedTransaction": false
30+
},
31+
"message": "0x1f00c539960d1a033d328986dbd92a52617c6881405301000a030daba0beea0b83d000395cf6ff2800dcdc1302501b000000c7c147af100e7f3a1b31080000760e000003000000fe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d7c9c3ee004bad91d5bd29f39154ab8301147a67c0fa39f3c1e7dc8ae667604a700",
32+
"signature": "0xce0538fc021ebe64a3f0639b12d8962afca81706d3d28a2e599e3f2f26ccd5115ed29b4119e2efbcff91981b4effaf42d84690b043751d4ec9dd952bf09f928101"
33+
}

0 commit comments

Comments
 (0)