@cogcoin/client 1.1.7 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/README.md +1 -1
  2. package/dist/bitcoind/service.js +1 -1
  3. package/dist/cli/commands/mining-read.js +1 -1
  4. package/dist/cli/commands/wallet-mutation/anchor.d.ts +2 -0
  5. package/dist/cli/commands/wallet-mutation/anchor.js +33 -0
  6. package/dist/cli/commands/wallet-mutation/bitcoin-transfer.d.ts +2 -0
  7. package/dist/cli/commands/wallet-mutation/bitcoin-transfer.js +32 -0
  8. package/dist/cli/commands/wallet-mutation/cog.d.ts +2 -0
  9. package/dist/cli/commands/wallet-mutation/cog.js +131 -0
  10. package/dist/cli/commands/wallet-mutation/context.d.ts +3 -0
  11. package/dist/cli/commands/wallet-mutation/context.js +18 -0
  12. package/dist/cli/commands/wallet-mutation/domain-admin.d.ts +2 -0
  13. package/dist/cli/commands/wallet-mutation/domain-admin.js +173 -0
  14. package/dist/cli/commands/wallet-mutation/domain-market.d.ts +2 -0
  15. package/dist/cli/commands/wallet-mutation/domain-market.js +107 -0
  16. package/dist/cli/commands/wallet-mutation/field.d.ts +2 -0
  17. package/dist/cli/commands/wallet-mutation/field.js +125 -0
  18. package/dist/cli/commands/wallet-mutation/register.d.ts +2 -0
  19. package/dist/cli/commands/wallet-mutation/register.js +38 -0
  20. package/dist/cli/commands/wallet-mutation/registry.d.ts +3 -0
  21. package/dist/cli/commands/wallet-mutation/registry.js +39 -0
  22. package/dist/cli/commands/wallet-mutation/reputation.d.ts +2 -0
  23. package/dist/cli/commands/wallet-mutation/reputation.js +57 -0
  24. package/dist/cli/commands/wallet-mutation/types.d.ts +32 -0
  25. package/dist/cli/commands/wallet-mutation/types.js +1 -0
  26. package/dist/cli/commands/wallet-mutation.js +13 -765
  27. package/dist/cli/commands/wallet-read.js +4 -4
  28. package/dist/cli/mutation-success.d.ts +0 -2
  29. package/dist/cli/output/classify.d.ts +7 -0
  30. package/dist/cli/output/classify.js +94 -0
  31. package/dist/cli/output/render.d.ts +2 -0
  32. package/dist/cli/output/render.js +13 -0
  33. package/dist/cli/output/rules/cli-surface.d.ts +2 -0
  34. package/dist/cli/output/rules/cli-surface.js +110 -0
  35. package/dist/cli/output/rules/generic.d.ts +2 -0
  36. package/dist/cli/output/rules/generic.js +13 -0
  37. package/dist/cli/output/rules/index.d.ts +2 -0
  38. package/dist/cli/output/rules/index.js +24 -0
  39. package/dist/cli/output/rules/mining-update.d.ts +2 -0
  40. package/dist/cli/output/rules/mining-update.js +68 -0
  41. package/dist/cli/output/rules/services.d.ts +2 -0
  42. package/dist/cli/output/rules/services.js +110 -0
  43. package/dist/cli/output/rules/wallet-admin.d.ts +2 -0
  44. package/dist/cli/output/rules/wallet-admin.js +224 -0
  45. package/dist/cli/output/rules/wallet-mutations.d.ts +2 -0
  46. package/dist/cli/output/rules/wallet-mutations.js +274 -0
  47. package/dist/cli/output/types.d.ts +16 -0
  48. package/dist/cli/output/types.js +1 -0
  49. package/dist/cli/output.d.ts +2 -168
  50. package/dist/cli/output.js +6 -989
  51. package/dist/cli/pagination.d.ts +15 -0
  52. package/dist/cli/pagination.js +16 -0
  53. package/dist/cli/recommendations.d.ts +4 -0
  54. package/dist/cli/recommendations.js +108 -0
  55. package/dist/cli/wallet-format/availability.d.ts +5 -0
  56. package/dist/cli/wallet-format/availability.js +96 -0
  57. package/dist/cli/wallet-format/balance.d.ts +2 -0
  58. package/dist/cli/wallet-format/balance.js +162 -0
  59. package/dist/cli/wallet-format/domains.d.ts +8 -0
  60. package/dist/cli/wallet-format/domains.js +84 -0
  61. package/dist/cli/wallet-format/fields.d.ts +6 -0
  62. package/dist/cli/wallet-format/fields.js +61 -0
  63. package/dist/cli/wallet-format/identity.d.ts +5 -0
  64. package/dist/cli/wallet-format/identity.js +19 -0
  65. package/dist/cli/wallet-format/locks.d.ts +7 -0
  66. package/dist/cli/wallet-format/locks.js +52 -0
  67. package/dist/cli/wallet-format/overview.d.ts +2 -0
  68. package/dist/cli/wallet-format/overview.js +122 -0
  69. package/dist/cli/wallet-format/pending.d.ts +13 -0
  70. package/dist/cli/wallet-format/pending.js +101 -0
  71. package/dist/cli/wallet-format/shared.d.ts +7 -0
  72. package/dist/cli/wallet-format/shared.js +31 -0
  73. package/dist/cli/wallet-format/status.d.ts +3 -0
  74. package/dist/cli/wallet-format/status.js +27 -0
  75. package/dist/cli/wallet-format.d.ts +8 -30
  76. package/dist/cli/wallet-format.js +8 -830
  77. package/dist/cli/wallet-read-helpers.d.ts +6 -0
  78. package/dist/cli/wallet-read-helpers.js +17 -0
  79. package/dist/wallet/mining/candidate.d.ts +1 -1
  80. package/dist/wallet/mining/candidate.js +3 -3
  81. package/dist/wallet/mining/constants.d.ts +2 -2
  82. package/dist/wallet/mining/constants.js +2 -2
  83. package/dist/wallet/mining/engine-state.js +10 -0
  84. package/dist/wallet/mining/sentence-protocol.d.ts +2 -2
  85. package/dist/wallet/mining/sentences.js +8 -8
  86. package/dist/wallet/mining/visualizer-sync.js +79 -15
  87. package/dist/wallet/read/context.js +1 -1
  88. package/dist/wallet/reset/artifacts.d.ts +16 -0
  89. package/dist/wallet/reset/artifacts.js +141 -0
  90. package/dist/wallet/reset/execution.d.ts +38 -0
  91. package/dist/wallet/reset/execution.js +458 -0
  92. package/dist/wallet/reset/preflight.d.ts +7 -0
  93. package/dist/wallet/reset/preflight.js +116 -0
  94. package/dist/wallet/reset/preview.d.ts +2 -0
  95. package/dist/wallet/reset/preview.js +50 -0
  96. package/dist/wallet/reset/process-cleanup.d.ts +12 -0
  97. package/dist/wallet/reset/process-cleanup.js +179 -0
  98. package/dist/wallet/reset/types.d.ts +189 -0
  99. package/dist/wallet/reset/types.js +1 -0
  100. package/dist/wallet/reset.d.ts +4 -119
  101. package/dist/wallet/reset.js +4 -882
  102. package/dist/wallet/tx/anchor/confirm.d.ts +15 -0
  103. package/dist/wallet/tx/anchor/confirm.js +60 -0
  104. package/dist/wallet/tx/anchor/draft.d.ts +39 -0
  105. package/dist/wallet/tx/anchor/draft.js +167 -0
  106. package/dist/wallet/tx/anchor/index.d.ts +5 -0
  107. package/dist/wallet/tx/anchor/index.js +148 -0
  108. package/dist/wallet/tx/anchor/intent.d.ts +61 -0
  109. package/dist/wallet/tx/anchor/intent.js +101 -0
  110. package/dist/wallet/tx/anchor/plan.d.ts +3 -0
  111. package/dist/wallet/tx/anchor/plan.js +18 -0
  112. package/dist/wallet/tx/anchor/result.d.ts +25 -0
  113. package/dist/wallet/tx/anchor/result.js +20 -0
  114. package/dist/wallet/tx/anchor.d.ts +1 -39
  115. package/dist/wallet/tx/anchor.js +1 -494
  116. package/dist/wallet/tx/bitcoin-transfer/confirm.d.ts +7 -0
  117. package/dist/wallet/tx/bitcoin-transfer/confirm.js +11 -0
  118. package/dist/wallet/tx/bitcoin-transfer/index.d.ts +5 -0
  119. package/dist/wallet/tx/bitcoin-transfer/index.js +112 -0
  120. package/dist/wallet/tx/bitcoin-transfer/intent.d.ts +52 -0
  121. package/dist/wallet/tx/bitcoin-transfer/intent.js +74 -0
  122. package/dist/wallet/tx/bitcoin-transfer/plan.d.ts +5 -0
  123. package/dist/wallet/tx/bitcoin-transfer/plan.js +21 -0
  124. package/dist/wallet/tx/bitcoin-transfer/result.d.ts +19 -0
  125. package/dist/wallet/tx/bitcoin-transfer/result.js +16 -0
  126. package/dist/wallet/tx/bitcoin-transfer.d.ts +1 -35
  127. package/dist/wallet/tx/bitcoin-transfer.js +1 -200
  128. package/dist/wallet/tx/cog/confirm.d.ts +13 -0
  129. package/dist/wallet/tx/cog/confirm.js +59 -0
  130. package/dist/wallet/tx/cog/draft.d.ts +20 -0
  131. package/dist/wallet/tx/cog/draft.js +114 -0
  132. package/dist/wallet/tx/cog/index.d.ts +6 -0
  133. package/dist/wallet/tx/cog/index.js +117 -0
  134. package/dist/wallet/tx/cog/intent.d.ts +30 -0
  135. package/dist/wallet/tx/cog/intent.js +169 -0
  136. package/dist/wallet/tx/cog/plan.d.ts +19 -0
  137. package/dist/wallet/tx/cog/plan.js +65 -0
  138. package/dist/wallet/tx/cog/result.d.ts +27 -0
  139. package/dist/wallet/tx/cog/result.js +28 -0
  140. package/dist/wallet/tx/cog/types.d.ts +186 -0
  141. package/dist/wallet/tx/cog/types.js +2 -0
  142. package/dist/wallet/tx/cog/variants/claim.d.ts +3 -0
  143. package/dist/wallet/tx/cog/variants/claim.js +92 -0
  144. package/dist/wallet/tx/cog/variants/lock.d.ts +2 -0
  145. package/dist/wallet/tx/cog/variants/lock.js +102 -0
  146. package/dist/wallet/tx/cog/variants/send.d.ts +2 -0
  147. package/dist/wallet/tx/cog/variants/send.js +77 -0
  148. package/dist/wallet/tx/cog.d.ts +1 -96
  149. package/dist/wallet/tx/cog.js +1 -824
  150. package/dist/wallet/tx/common.d.ts +14 -199
  151. package/dist/wallet/tx/common.js +10 -493
  152. package/dist/wallet/tx/domain-admin/confirm.d.ts +17 -0
  153. package/dist/wallet/tx/domain-admin/confirm.js +58 -0
  154. package/dist/wallet/tx/domain-admin/draft.d.ts +20 -0
  155. package/dist/wallet/tx/domain-admin/draft.js +161 -0
  156. package/dist/wallet/tx/domain-admin/index.d.ts +9 -0
  157. package/dist/wallet/tx/domain-admin/index.js +150 -0
  158. package/dist/wallet/tx/domain-admin/intent.d.ts +12 -0
  159. package/dist/wallet/tx/domain-admin/intent.js +61 -0
  160. package/dist/wallet/tx/domain-admin/plan.d.ts +19 -0
  161. package/dist/wallet/tx/domain-admin/plan.js +64 -0
  162. package/dist/wallet/tx/domain-admin/result.d.ts +19 -0
  163. package/dist/wallet/tx/domain-admin/result.js +33 -0
  164. package/dist/wallet/tx/domain-admin/types.d.ts +162 -0
  165. package/dist/wallet/tx/domain-admin/types.js +1 -0
  166. package/dist/wallet/tx/domain-admin/variants/canonical.d.ts +2 -0
  167. package/dist/wallet/tx/domain-admin/variants/canonical.js +22 -0
  168. package/dist/wallet/tx/domain-admin/variants/delegate.d.ts +3 -0
  169. package/dist/wallet/tx/domain-admin/variants/delegate.js +60 -0
  170. package/dist/wallet/tx/domain-admin/variants/endpoint.d.ts +3 -0
  171. package/dist/wallet/tx/domain-admin/variants/endpoint.js +102 -0
  172. package/dist/wallet/tx/domain-admin/variants/miner.d.ts +3 -0
  173. package/dist/wallet/tx/domain-admin/variants/miner.js +59 -0
  174. package/dist/wallet/tx/domain-admin.d.ts +1 -107
  175. package/dist/wallet/tx/domain-admin.js +1 -729
  176. package/dist/wallet/tx/domain-market/confirm.d.ts +6 -0
  177. package/dist/wallet/tx/domain-market/confirm.js +52 -0
  178. package/dist/wallet/tx/domain-market/draft.d.ts +43 -0
  179. package/dist/wallet/tx/domain-market/draft.js +286 -0
  180. package/dist/wallet/tx/domain-market/index.d.ts +6 -0
  181. package/dist/wallet/tx/domain-market/index.js +145 -0
  182. package/dist/wallet/tx/domain-market/intent.d.ts +15 -0
  183. package/dist/wallet/tx/domain-market/intent.js +131 -0
  184. package/dist/wallet/tx/domain-market/plan.d.ts +31 -0
  185. package/dist/wallet/tx/domain-market/plan.js +98 -0
  186. package/dist/wallet/tx/domain-market/result.d.ts +45 -0
  187. package/dist/wallet/tx/domain-market/result.js +88 -0
  188. package/dist/wallet/tx/domain-market/types.d.ts +221 -0
  189. package/dist/wallet/tx/domain-market/types.js +1 -0
  190. package/dist/wallet/tx/domain-market/variants/buy.d.ts +2 -0
  191. package/dist/wallet/tx/domain-market/variants/buy.js +103 -0
  192. package/dist/wallet/tx/domain-market/variants/sell.d.ts +2 -0
  193. package/dist/wallet/tx/domain-market/variants/sell.js +91 -0
  194. package/dist/wallet/tx/domain-market/variants/transfer.d.ts +2 -0
  195. package/dist/wallet/tx/domain-market/variants/transfer.js +105 -0
  196. package/dist/wallet/tx/domain-market.d.ts +1 -116
  197. package/dist/wallet/tx/domain-market.js +1 -1078
  198. package/dist/wallet/tx/draft-build.d.ts +60 -0
  199. package/dist/wallet/tx/draft-build.js +127 -0
  200. package/dist/wallet/tx/executor.d.ts +6 -40
  201. package/dist/wallet/tx/executor.js +6 -100
  202. package/dist/wallet/tx/fee.d.ts +30 -0
  203. package/dist/wallet/tx/fee.js +98 -0
  204. package/dist/wallet/tx/field/confirm.d.ts +11 -0
  205. package/dist/wallet/tx/field/confirm.js +19 -0
  206. package/dist/wallet/tx/field/draft.d.ts +23 -0
  207. package/dist/wallet/tx/field/draft.js +202 -0
  208. package/dist/wallet/tx/field/index.d.ts +5 -0
  209. package/dist/wallet/tx/field/index.js +140 -0
  210. package/dist/wallet/tx/field/intent.d.ts +5 -0
  211. package/dist/wallet/tx/field/intent.js +50 -0
  212. package/dist/wallet/tx/field/plan.d.ts +20 -0
  213. package/dist/wallet/tx/field/plan.js +65 -0
  214. package/dist/wallet/tx/field/result.d.ts +29 -0
  215. package/dist/wallet/tx/field/result.js +103 -0
  216. package/dist/wallet/tx/field/types.d.ts +163 -0
  217. package/dist/wallet/tx/field/types.js +1 -0
  218. package/dist/wallet/tx/field/variants/clear.d.ts +2 -0
  219. package/dist/wallet/tx/field/variants/clear.js +60 -0
  220. package/dist/wallet/tx/field/variants/create.d.ts +2 -0
  221. package/dist/wallet/tx/field/variants/create.js +67 -0
  222. package/dist/wallet/tx/field/variants/set.d.ts +2 -0
  223. package/dist/wallet/tx/field/variants/set.js +195 -0
  224. package/dist/wallet/tx/field.d.ts +1 -95
  225. package/dist/wallet/tx/field.js +1 -920
  226. package/dist/wallet/tx/mining-preemption.d.ts +6 -0
  227. package/dist/wallet/tx/mining-preemption.js +7 -0
  228. package/dist/wallet/tx/primitives.d.ts +13 -0
  229. package/dist/wallet/tx/primitives.js +42 -0
  230. package/dist/wallet/tx/psbt-assert.d.ts +14 -0
  231. package/dist/wallet/tx/psbt-assert.js +39 -0
  232. package/dist/wallet/tx/publish.d.ts +37 -0
  233. package/dist/wallet/tx/publish.js +88 -0
  234. package/dist/wallet/tx/readiness.d.ts +7 -0
  235. package/dist/wallet/tx/readiness.js +61 -0
  236. package/dist/wallet/tx/reconcile.d.ts +24 -0
  237. package/dist/wallet/tx/reconcile.js +72 -0
  238. package/dist/wallet/tx/register/confirm.d.ts +6 -0
  239. package/dist/wallet/tx/register/confirm.js +66 -0
  240. package/dist/wallet/tx/register/draft.d.ts +42 -0
  241. package/dist/wallet/tx/register/draft.js +181 -0
  242. package/dist/wallet/tx/register/index.d.ts +6 -0
  243. package/dist/wallet/tx/register/index.js +158 -0
  244. package/dist/wallet/tx/register/intent.d.ts +74 -0
  245. package/dist/wallet/tx/register/intent.js +119 -0
  246. package/dist/wallet/tx/register/plan.d.ts +43 -0
  247. package/dist/wallet/tx/register/plan.js +168 -0
  248. package/dist/wallet/tx/register/result.d.ts +78 -0
  249. package/dist/wallet/tx/register/result.js +41 -0
  250. package/dist/wallet/tx/register.d.ts +1 -70
  251. package/dist/wallet/tx/register.js +1 -681
  252. package/dist/wallet/tx/reputation/confirm.d.ts +11 -0
  253. package/dist/wallet/tx/reputation/confirm.js +51 -0
  254. package/dist/wallet/tx/reputation/draft.d.ts +20 -0
  255. package/dist/wallet/tx/reputation/draft.js +130 -0
  256. package/dist/wallet/tx/reputation/index.d.ts +4 -0
  257. package/dist/wallet/tx/reputation/index.js +162 -0
  258. package/dist/wallet/tx/reputation/intent.d.ts +36 -0
  259. package/dist/wallet/tx/reputation/intent.js +157 -0
  260. package/dist/wallet/tx/reputation/plan.d.ts +19 -0
  261. package/dist/wallet/tx/reputation/plan.js +64 -0
  262. package/dist/wallet/tx/reputation/result.d.ts +21 -0
  263. package/dist/wallet/tx/reputation/result.js +31 -0
  264. package/dist/wallet/tx/reputation/types.d.ts +130 -0
  265. package/dist/wallet/tx/reputation/types.js +1 -0
  266. package/dist/wallet/tx/reputation.d.ts +1 -74
  267. package/dist/wallet/tx/reputation.js +1 -556
  268. package/dist/wallet/tx/signing.d.ts +18 -0
  269. package/dist/wallet/tx/signing.js +31 -0
  270. package/dist/wallet/tx/state-persist.d.ts +27 -0
  271. package/dist/wallet/tx/state-persist.js +54 -0
  272. package/dist/wallet/tx/types.d.ts +44 -0
  273. package/dist/wallet/tx/types.js +1 -0
  274. package/package.json +1 -1
  275. package/dist/cli/mining-json.d.ts +0 -20
  276. package/dist/cli/mining-json.js +0 -46
  277. package/dist/cli/mutation-json.d.ts +0 -325
  278. package/dist/cli/mutation-json.js +0 -269
  279. package/dist/cli/mutation-resolved-json.d.ts +0 -117
  280. package/dist/cli/mutation-resolved-json.js +0 -123
  281. package/dist/cli/preview-json.d.ts +0 -319
  282. package/dist/cli/preview-json.js +0 -254
  283. package/dist/cli/read-json.d.ts +0 -190
  284. package/dist/cli/read-json.js +0 -627
@@ -0,0 +1,162 @@
1
+ import type { lookupDomain } from "@cogcoin/indexer/queries";
2
+ import type { RpcTransaction } from "../../../bitcoind/types.js";
3
+ import type { WalletPrompter } from "../../lifecycle.js";
4
+ import type { WalletReadContext } from "../../read/index.js";
5
+ import type { WalletRuntimePaths } from "../../runtime.js";
6
+ import type { WalletSecretProvider } from "../../state/provider.js";
7
+ import type { PendingMutationRecord, WalletStateV1 } from "../../types.js";
8
+ import type { BuiltWalletMutationTransaction, FixedWalletInput, MutationSender, WalletMutationFeeSummary, WalletMutationRpcClient } from "../common.js";
9
+ export type DomainAdminKind = "endpoint" | "delegate" | "miner" | "canonical";
10
+ export interface DomainAdminRpcClient extends WalletMutationRpcClient {
11
+ getBlockchainInfo(): Promise<{
12
+ blocks: number;
13
+ }>;
14
+ sendRawTransaction(hex: string): Promise<string>;
15
+ getRawTransaction(txid: string, verbose?: boolean): Promise<RpcTransaction>;
16
+ }
17
+ export interface DomainAdminPlan {
18
+ sender: MutationSender;
19
+ changeAddress: string;
20
+ fixedInputs: FixedWalletInput[];
21
+ outputs: unknown[];
22
+ changePosition: number;
23
+ expectedOpReturnScriptHex: string;
24
+ allowedFundingScriptPubKeyHex: string;
25
+ eligibleFundingOutpointKeys: Set<string>;
26
+ errorPrefix: string;
27
+ }
28
+ export type ReadyWalletReadContext = WalletReadContext & {
29
+ localState: {
30
+ availability: "ready";
31
+ state: WalletStateV1;
32
+ };
33
+ snapshot: NonNullable<WalletReadContext["snapshot"]>;
34
+ model: NonNullable<WalletReadContext["model"]>;
35
+ };
36
+ export interface DomainAdminOperation {
37
+ readContext: ReadyWalletReadContext;
38
+ state: WalletStateV1;
39
+ sender: MutationSender;
40
+ senderSelector: string;
41
+ chainDomain: NonNullable<ReturnType<typeof lookupDomain>>;
42
+ }
43
+ export interface StandaloneDomainAdminOperation extends DomainAdminOperation {
44
+ normalizedDomainName: string;
45
+ resolvedSender: DomainAdminResolvedSenderSummary;
46
+ payload: PreparedDomainAdminPayload;
47
+ }
48
+ export interface BuiltDomainAdminTransaction extends BuiltWalletMutationTransaction {
49
+ }
50
+ export interface DomainAdminResolvedSenderSummary {
51
+ selector: string;
52
+ localIndex: number;
53
+ scriptPubKeyHex: string;
54
+ address: string;
55
+ }
56
+ export interface DomainAdminResolvedTargetSummary {
57
+ scriptPubKeyHex: string;
58
+ address: string | null;
59
+ opaque: boolean;
60
+ }
61
+ export type DomainAdminResolvedEffect = {
62
+ kind: "endpoint-set";
63
+ byteLength: number;
64
+ } | {
65
+ kind: "endpoint-clear";
66
+ } | {
67
+ kind: "delegate-set";
68
+ } | {
69
+ kind: "delegate-clear";
70
+ } | {
71
+ kind: "miner-set";
72
+ } | {
73
+ kind: "miner-clear";
74
+ } | {
75
+ kind: "canonicalize-owner";
76
+ };
77
+ export interface DomainAdminResolvedSummary {
78
+ sender: DomainAdminResolvedSenderSummary;
79
+ target: DomainAdminResolvedTargetSummary | null;
80
+ effect: DomainAdminResolvedEffect;
81
+ }
82
+ export interface DomainAdminMutationResult {
83
+ kind: DomainAdminKind;
84
+ domainName: string;
85
+ txid: string;
86
+ status: "live" | "confirmed";
87
+ reusedExisting: boolean;
88
+ recipientScriptPubKeyHex?: string | null;
89
+ endpointValueHex?: string | null;
90
+ resolved?: DomainAdminResolvedSummary | null;
91
+ fees: WalletMutationFeeSummary;
92
+ }
93
+ export interface PreparedDomainAdminPayload {
94
+ opReturnData: Uint8Array;
95
+ recipientScriptPubKeyHex?: string | null;
96
+ endpointValueHex?: string | null;
97
+ resolvedTarget: DomainAdminResolvedTargetSummary | null;
98
+ resolvedEffect: DomainAdminResolvedEffect;
99
+ }
100
+ interface DomainAdminBaseOptions {
101
+ domainName: string;
102
+ feeRateSatVb?: number | null;
103
+ dataDir: string;
104
+ databasePath: string;
105
+ provider?: WalletSecretProvider;
106
+ prompter: WalletPrompter;
107
+ assumeYes?: boolean;
108
+ nowUnixMs?: number;
109
+ paths?: WalletRuntimePaths;
110
+ openReadContext?: typeof import("../../read/index.js").openWalletReadContext;
111
+ attachService?: typeof import("../../../bitcoind/service.js").attachOrStartManagedBitcoindService;
112
+ rpcFactory?: (config: Parameters<typeof import("../../../bitcoind/node.js").createRpcClient>[0]) => DomainAdminRpcClient;
113
+ }
114
+ export interface SetDomainEndpointOptions extends DomainAdminBaseOptions {
115
+ source: {
116
+ kind: "text";
117
+ value: string;
118
+ } | {
119
+ kind: "json";
120
+ value: string;
121
+ } | {
122
+ kind: "bytes";
123
+ value: string;
124
+ };
125
+ }
126
+ export interface ClearDomainEndpointOptions extends DomainAdminBaseOptions {
127
+ }
128
+ export interface SetDomainDelegateOptions extends DomainAdminBaseOptions {
129
+ target: string;
130
+ }
131
+ export interface ClearDomainDelegateOptions extends DomainAdminBaseOptions {
132
+ }
133
+ export interface SetDomainMinerOptions extends DomainAdminBaseOptions {
134
+ target: string;
135
+ }
136
+ export interface ClearDomainMinerOptions extends DomainAdminBaseOptions {
137
+ }
138
+ export interface SetDomainCanonicalOptions extends DomainAdminBaseOptions {
139
+ }
140
+ export interface DomainAdminDraftMutationOptions {
141
+ kind: DomainAdminKind;
142
+ domainName: string;
143
+ sender: MutationSender;
144
+ intentFingerprintHex: string;
145
+ nowUnixMs: number;
146
+ feeSelection: {
147
+ feeRateSatVb: number;
148
+ source: "custom-satvb" | "estimated-next-block-plus-one" | "fallback-default";
149
+ };
150
+ recipientScriptPubKeyHex?: string | null;
151
+ endpointValueHex?: string | null;
152
+ existing?: PendingMutationRecord | null;
153
+ }
154
+ export interface DomainAdminVariant {
155
+ kind: DomainAdminKind;
156
+ errorPrefix: string;
157
+ requireRoot?: boolean;
158
+ intentParts(operation: DomainAdminOperation): Array<string | number | bigint>;
159
+ createPayload(operation: DomainAdminOperation): Promise<PreparedDomainAdminPayload>;
160
+ confirm(operation: DomainAdminOperation): Promise<void>;
161
+ }
162
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { DomainAdminVariant, SetDomainCanonicalOptions } from "../types.js";
2
+ export declare function createCanonicalVariant(options: SetDomainCanonicalOptions): DomainAdminVariant;
@@ -0,0 +1,22 @@
1
+ import { serializeSetCanonical } from "../../../cogop/index.js";
2
+ import { confirmCanonicalMutation } from "../confirm.js";
3
+ import { createResolvedDomainAdminSenderSummary } from "../intent.js";
4
+ export function createCanonicalVariant(options) {
5
+ return {
6
+ kind: "canonical",
7
+ errorPrefix: "wallet_domain_canonical",
8
+ intentParts(operation) {
9
+ return [operation.chainDomain.name, operation.sender.scriptPubKeyHex];
10
+ },
11
+ async createPayload(operation) {
12
+ return {
13
+ opReturnData: serializeSetCanonical(operation.chainDomain.domainId).opReturnData,
14
+ resolvedTarget: null,
15
+ resolvedEffect: { kind: "canonicalize-owner" },
16
+ };
17
+ },
18
+ async confirm(operation) {
19
+ await confirmCanonicalMutation(options.prompter, operation.chainDomain.name, createResolvedDomainAdminSenderSummary(operation.sender, operation.senderSelector), options.assumeYes);
20
+ },
21
+ };
22
+ }
@@ -0,0 +1,3 @@
1
+ import type { ClearDomainDelegateOptions, DomainAdminVariant, SetDomainDelegateOptions } from "../types.js";
2
+ export declare function createSetDelegateVariant(options: SetDomainDelegateOptions): DomainAdminVariant;
3
+ export declare function createClearDelegateVariant(options: ClearDomainDelegateOptions): DomainAdminVariant;
@@ -0,0 +1,60 @@
1
+ import { serializeSetDelegate } from "../../../cogop/index.js";
2
+ import { confirmTargetMutation } from "../confirm.js";
3
+ import { createResolvedDomainAdminSenderSummary, createResolvedDomainAdminTargetSummary, } from "../intent.js";
4
+ import { normalizeBtcTarget } from "../../targets.js";
5
+ export function createSetDelegateVariant(options) {
6
+ const target = normalizeBtcTarget(options.target);
7
+ return {
8
+ kind: "delegate",
9
+ errorPrefix: "wallet_domain_delegate",
10
+ intentParts(operation) {
11
+ return [operation.chainDomain.name, target.scriptPubKeyHex];
12
+ },
13
+ async createPayload(operation) {
14
+ if (target.scriptPubKeyHex === operation.sender.scriptPubKeyHex) {
15
+ throw new Error("wallet_domain_delegate_self_target");
16
+ }
17
+ return {
18
+ opReturnData: serializeSetDelegate(operation.chainDomain.domainId, Buffer.from(target.scriptPubKeyHex, "hex")).opReturnData,
19
+ recipientScriptPubKeyHex: target.scriptPubKeyHex,
20
+ resolvedTarget: createResolvedDomainAdminTargetSummary(target),
21
+ resolvedEffect: { kind: "delegate-set" },
22
+ };
23
+ },
24
+ async confirm(operation) {
25
+ await confirmTargetMutation(options.prompter, {
26
+ kind: "delegate",
27
+ domainName: operation.chainDomain.name,
28
+ target,
29
+ sender: createResolvedDomainAdminSenderSummary(operation.sender, operation.senderSelector),
30
+ assumeYes: options.assumeYes,
31
+ });
32
+ },
33
+ };
34
+ }
35
+ export function createClearDelegateVariant(options) {
36
+ return {
37
+ kind: "delegate",
38
+ errorPrefix: "wallet_domain_delegate",
39
+ intentParts(operation) {
40
+ return [operation.chainDomain.name, "clear"];
41
+ },
42
+ async createPayload(operation) {
43
+ return {
44
+ opReturnData: serializeSetDelegate(operation.chainDomain.domainId).opReturnData,
45
+ recipientScriptPubKeyHex: null,
46
+ resolvedTarget: null,
47
+ resolvedEffect: { kind: "delegate-clear" },
48
+ };
49
+ },
50
+ async confirm(operation) {
51
+ await confirmTargetMutation(options.prompter, {
52
+ kind: "delegate",
53
+ domainName: operation.chainDomain.name,
54
+ target: null,
55
+ sender: createResolvedDomainAdminSenderSummary(operation.sender, operation.senderSelector),
56
+ assumeYes: options.assumeYes,
57
+ });
58
+ },
59
+ };
60
+ }
@@ -0,0 +1,3 @@
1
+ import type { ClearDomainEndpointOptions, DomainAdminVariant, SetDomainEndpointOptions } from "../types.js";
2
+ export declare function createSetEndpointVariant(options: SetDomainEndpointOptions): Promise<DomainAdminVariant>;
3
+ export declare function createClearEndpointVariant(options: ClearDomainEndpointOptions): DomainAdminVariant;
@@ -0,0 +1,102 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { resolve as resolvePath } from "node:path";
3
+ import { serializeSetEndpoint } from "../../../cogop/index.js";
4
+ import { confirmEndpointMutation, } from "../confirm.js";
5
+ import { createResolvedDomainAdminSenderSummary, } from "../intent.js";
6
+ async function loadEndpointPayload(source) {
7
+ if (source.kind === "text") {
8
+ const value = source.value;
9
+ if (value.length === 0) {
10
+ throw new Error("wallet_domain_endpoint_payload_missing");
11
+ }
12
+ return new TextEncoder().encode(value);
13
+ }
14
+ if (source.kind === "json") {
15
+ const value = source.value.trim();
16
+ if (value.length === 0) {
17
+ throw new Error("wallet_domain_endpoint_payload_missing");
18
+ }
19
+ try {
20
+ JSON.parse(value);
21
+ }
22
+ catch {
23
+ throw new Error("wallet_domain_endpoint_invalid_json");
24
+ }
25
+ return new TextEncoder().encode(value);
26
+ }
27
+ if (source.value.startsWith("hex:")) {
28
+ const hex = source.value.slice(4);
29
+ if (!/^[0-9a-f]+$/.test(hex) || hex.length % 2 !== 0) {
30
+ throw new Error("wallet_domain_endpoint_invalid_bytes");
31
+ }
32
+ if (hex.length === 0) {
33
+ throw new Error("wallet_domain_endpoint_payload_missing");
34
+ }
35
+ return Buffer.from(hex, "hex");
36
+ }
37
+ if (!source.value.startsWith("@")) {
38
+ throw new Error("wallet_domain_endpoint_invalid_bytes");
39
+ }
40
+ const filePath = source.value.slice(1);
41
+ if (filePath.trim() === "") {
42
+ throw new Error("wallet_domain_endpoint_invalid_bytes");
43
+ }
44
+ const payload = await readFile(resolvePath(process.cwd(), filePath));
45
+ if (payload.length === 0) {
46
+ throw new Error("wallet_domain_endpoint_payload_missing");
47
+ }
48
+ return payload;
49
+ }
50
+ export async function createSetEndpointVariant(options) {
51
+ const payloadBytes = await loadEndpointPayload(options.source);
52
+ return {
53
+ kind: "endpoint",
54
+ errorPrefix: "wallet_domain_endpoint",
55
+ intentParts(operation) {
56
+ return [operation.chainDomain.name, Buffer.from(payloadBytes).toString("hex")];
57
+ },
58
+ async createPayload(operation) {
59
+ return {
60
+ opReturnData: serializeSetEndpoint(operation.chainDomain.domainId, payloadBytes).opReturnData,
61
+ endpointValueHex: Buffer.from(payloadBytes).toString("hex"),
62
+ resolvedTarget: null,
63
+ resolvedEffect: {
64
+ kind: "endpoint-set",
65
+ byteLength: payloadBytes.length,
66
+ },
67
+ };
68
+ },
69
+ async confirm(operation) {
70
+ await confirmEndpointMutation(options.prompter, operation.chainDomain.name, payloadBytes, {
71
+ clear: false,
72
+ sender: createResolvedDomainAdminSenderSummary(operation.sender, operation.senderSelector),
73
+ sourceKind: options.source.kind,
74
+ assumeYes: options.assumeYes,
75
+ });
76
+ },
77
+ };
78
+ }
79
+ export function createClearEndpointVariant(options) {
80
+ return {
81
+ kind: "endpoint",
82
+ errorPrefix: "wallet_domain_endpoint",
83
+ intentParts(operation) {
84
+ return [operation.chainDomain.name, "clear"];
85
+ },
86
+ async createPayload(operation) {
87
+ return {
88
+ opReturnData: serializeSetEndpoint(operation.chainDomain.domainId).opReturnData,
89
+ endpointValueHex: "",
90
+ resolvedTarget: null,
91
+ resolvedEffect: { kind: "endpoint-clear" },
92
+ };
93
+ },
94
+ async confirm(operation) {
95
+ await confirmEndpointMutation(options.prompter, operation.chainDomain.name, new Uint8Array(), {
96
+ clear: true,
97
+ sender: createResolvedDomainAdminSenderSummary(operation.sender, operation.senderSelector),
98
+ assumeYes: options.assumeYes,
99
+ });
100
+ },
101
+ };
102
+ }
@@ -0,0 +1,3 @@
1
+ import type { ClearDomainMinerOptions, DomainAdminVariant, SetDomainMinerOptions } from "../types.js";
2
+ export declare function createSetMinerVariant(options: SetDomainMinerOptions): DomainAdminVariant;
3
+ export declare function createClearMinerVariant(options: ClearDomainMinerOptions): DomainAdminVariant;
@@ -0,0 +1,59 @@
1
+ import { serializeSetMiner } from "../../../cogop/index.js";
2
+ import { confirmTargetMutation } from "../confirm.js";
3
+ import { createResolvedDomainAdminSenderSummary, createResolvedDomainAdminTargetSummary, } from "../intent.js";
4
+ import { normalizeBtcTarget } from "../../targets.js";
5
+ export function createSetMinerVariant(options) {
6
+ const target = normalizeBtcTarget(options.target);
7
+ return {
8
+ kind: "miner",
9
+ errorPrefix: "wallet_domain_miner",
10
+ requireRoot: true,
11
+ intentParts(operation) {
12
+ return [operation.chainDomain.name, target.scriptPubKeyHex];
13
+ },
14
+ async createPayload(operation) {
15
+ return {
16
+ opReturnData: serializeSetMiner(operation.chainDomain.domainId, Buffer.from(target.scriptPubKeyHex, "hex")).opReturnData,
17
+ recipientScriptPubKeyHex: target.scriptPubKeyHex,
18
+ resolvedTarget: createResolvedDomainAdminTargetSummary(target),
19
+ resolvedEffect: { kind: "miner-set" },
20
+ };
21
+ },
22
+ async confirm(operation) {
23
+ await confirmTargetMutation(options.prompter, {
24
+ kind: "miner",
25
+ domainName: operation.chainDomain.name,
26
+ target,
27
+ sender: createResolvedDomainAdminSenderSummary(operation.sender, operation.senderSelector),
28
+ assumeYes: options.assumeYes,
29
+ });
30
+ },
31
+ };
32
+ }
33
+ export function createClearMinerVariant(options) {
34
+ return {
35
+ kind: "miner",
36
+ errorPrefix: "wallet_domain_miner",
37
+ requireRoot: true,
38
+ intentParts(operation) {
39
+ return [operation.chainDomain.name, "clear"];
40
+ },
41
+ async createPayload(operation) {
42
+ return {
43
+ opReturnData: serializeSetMiner(operation.chainDomain.domainId).opReturnData,
44
+ recipientScriptPubKeyHex: null,
45
+ resolvedTarget: null,
46
+ resolvedEffect: { kind: "miner-clear" },
47
+ };
48
+ },
49
+ async confirm(operation) {
50
+ await confirmTargetMutation(options.prompter, {
51
+ kind: "miner",
52
+ domainName: operation.chainDomain.name,
53
+ target: null,
54
+ sender: createResolvedDomainAdminSenderSummary(operation.sender, operation.senderSelector),
55
+ assumeYes: options.assumeYes,
56
+ });
57
+ },
58
+ };
59
+ }
@@ -1,107 +1 @@
1
- import { attachOrStartManagedBitcoindService } from "../../bitcoind/service.js";
2
- import { createRpcClient } from "../../bitcoind/node.js";
3
- import type { RpcTransaction } from "../../bitcoind/types.js";
4
- import type { WalletPrompter } from "../lifecycle.js";
5
- import { type WalletRuntimePaths } from "../runtime.js";
6
- import { type WalletSecretProvider } from "../state/provider.js";
7
- import { openWalletReadContext } from "../read/index.js";
8
- import { type WalletMutationFeeSummary, type WalletMutationRpcClient } from "./common.js";
9
- type DomainAdminKind = "endpoint" | "delegate" | "miner" | "canonical";
10
- interface DomainAdminRpcClient extends WalletMutationRpcClient {
11
- getBlockchainInfo(): Promise<{
12
- blocks: number;
13
- }>;
14
- sendRawTransaction(hex: string): Promise<string>;
15
- getRawTransaction(txid: string, verbose?: boolean): Promise<RpcTransaction>;
16
- }
17
- export interface DomainAdminResolvedSenderSummary {
18
- selector: string;
19
- localIndex: number;
20
- scriptPubKeyHex: string;
21
- address: string;
22
- }
23
- export interface DomainAdminResolvedTargetSummary {
24
- scriptPubKeyHex: string;
25
- address: string | null;
26
- opaque: boolean;
27
- }
28
- export type DomainAdminResolvedEffect = {
29
- kind: "endpoint-set";
30
- byteLength: number;
31
- } | {
32
- kind: "endpoint-clear";
33
- } | {
34
- kind: "delegate-set";
35
- } | {
36
- kind: "delegate-clear";
37
- } | {
38
- kind: "miner-set";
39
- } | {
40
- kind: "miner-clear";
41
- } | {
42
- kind: "canonicalize-owner";
43
- };
44
- export interface DomainAdminResolvedSummary {
45
- sender: DomainAdminResolvedSenderSummary;
46
- target: DomainAdminResolvedTargetSummary | null;
47
- effect: DomainAdminResolvedEffect;
48
- }
49
- export interface DomainAdminMutationResult {
50
- kind: DomainAdminKind;
51
- domainName: string;
52
- txid: string;
53
- status: "live" | "confirmed";
54
- reusedExisting: boolean;
55
- recipientScriptPubKeyHex?: string | null;
56
- endpointValueHex?: string | null;
57
- resolved?: DomainAdminResolvedSummary | null;
58
- fees: WalletMutationFeeSummary;
59
- }
60
- interface DomainAdminBaseOptions {
61
- domainName: string;
62
- feeRateSatVb?: number | null;
63
- dataDir: string;
64
- databasePath: string;
65
- provider?: WalletSecretProvider;
66
- prompter: WalletPrompter;
67
- assumeYes?: boolean;
68
- nowUnixMs?: number;
69
- paths?: WalletRuntimePaths;
70
- openReadContext?: typeof openWalletReadContext;
71
- attachService?: typeof attachOrStartManagedBitcoindService;
72
- rpcFactory?: (config: Parameters<typeof createRpcClient>[0]) => DomainAdminRpcClient;
73
- }
74
- export interface SetDomainEndpointOptions extends DomainAdminBaseOptions {
75
- source: {
76
- kind: "text";
77
- value: string;
78
- } | {
79
- kind: "json";
80
- value: string;
81
- } | {
82
- kind: "bytes";
83
- value: string;
84
- };
85
- }
86
- export interface ClearDomainEndpointOptions extends DomainAdminBaseOptions {
87
- }
88
- export interface SetDomainDelegateOptions extends DomainAdminBaseOptions {
89
- target: string;
90
- }
91
- export interface ClearDomainDelegateOptions extends DomainAdminBaseOptions {
92
- }
93
- export interface SetDomainMinerOptions extends DomainAdminBaseOptions {
94
- target: string;
95
- }
96
- export interface ClearDomainMinerOptions extends DomainAdminBaseOptions {
97
- }
98
- export interface SetDomainCanonicalOptions extends DomainAdminBaseOptions {
99
- }
100
- export declare function setDomainEndpoint(options: SetDomainEndpointOptions): Promise<DomainAdminMutationResult>;
101
- export declare function clearDomainEndpoint(options: ClearDomainEndpointOptions): Promise<DomainAdminMutationResult>;
102
- export declare function setDomainDelegate(options: SetDomainDelegateOptions): Promise<DomainAdminMutationResult>;
103
- export declare function clearDomainDelegate(options: ClearDomainDelegateOptions): Promise<DomainAdminMutationResult>;
104
- export declare function setDomainMiner(options: SetDomainMinerOptions): Promise<DomainAdminMutationResult>;
105
- export declare function clearDomainMiner(options: ClearDomainMinerOptions): Promise<DomainAdminMutationResult>;
106
- export declare function setDomainCanonical(options: SetDomainCanonicalOptions): Promise<DomainAdminMutationResult>;
107
- export {};
1
+ export * from "./domain-admin/index.js";