@cogcoin/client 1.1.8 → 1.1.10

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 (295) hide show
  1. package/README.md +1 -1
  2. package/dist/bitcoind/managed-bitcoind-service-config.d.ts +13 -0
  3. package/dist/bitcoind/managed-bitcoind-service-config.js +165 -0
  4. package/dist/bitcoind/managed-bitcoind-service-lifecycle.d.ts +28 -0
  5. package/dist/bitcoind/managed-bitcoind-service-lifecycle.js +290 -0
  6. package/dist/bitcoind/managed-bitcoind-service-process.d.ts +8 -0
  7. package/dist/bitcoind/managed-bitcoind-service-process.js +48 -0
  8. package/dist/bitcoind/managed-bitcoind-service-replica.d.ts +8 -0
  9. package/dist/bitcoind/managed-bitcoind-service-replica.js +142 -0
  10. package/dist/bitcoind/managed-bitcoind-service-status.d.ts +42 -0
  11. package/dist/bitcoind/managed-bitcoind-service-status.js +178 -0
  12. package/dist/bitcoind/managed-bitcoind-service-types.d.ts +36 -0
  13. package/dist/bitcoind/managed-bitcoind-service-types.js +1 -0
  14. package/dist/bitcoind/service.d.ts +7 -63
  15. package/dist/bitcoind/service.js +7 -797
  16. package/dist/cli/commands/mining-read.js +1 -1
  17. package/dist/cli/commands/wallet-mutation/anchor.d.ts +2 -0
  18. package/dist/cli/commands/wallet-mutation/anchor.js +33 -0
  19. package/dist/cli/commands/wallet-mutation/bitcoin-transfer.d.ts +2 -0
  20. package/dist/cli/commands/wallet-mutation/bitcoin-transfer.js +32 -0
  21. package/dist/cli/commands/wallet-mutation/cog.d.ts +2 -0
  22. package/dist/cli/commands/wallet-mutation/cog.js +131 -0
  23. package/dist/cli/commands/wallet-mutation/context.d.ts +3 -0
  24. package/dist/cli/commands/wallet-mutation/context.js +18 -0
  25. package/dist/cli/commands/wallet-mutation/domain-admin.d.ts +2 -0
  26. package/dist/cli/commands/wallet-mutation/domain-admin.js +173 -0
  27. package/dist/cli/commands/wallet-mutation/domain-market.d.ts +2 -0
  28. package/dist/cli/commands/wallet-mutation/domain-market.js +107 -0
  29. package/dist/cli/commands/wallet-mutation/field.d.ts +2 -0
  30. package/dist/cli/commands/wallet-mutation/field.js +125 -0
  31. package/dist/cli/commands/wallet-mutation/register.d.ts +2 -0
  32. package/dist/cli/commands/wallet-mutation/register.js +38 -0
  33. package/dist/cli/commands/wallet-mutation/registry.d.ts +3 -0
  34. package/dist/cli/commands/wallet-mutation/registry.js +39 -0
  35. package/dist/cli/commands/wallet-mutation/reputation.d.ts +2 -0
  36. package/dist/cli/commands/wallet-mutation/reputation.js +57 -0
  37. package/dist/cli/commands/wallet-mutation/types.d.ts +32 -0
  38. package/dist/cli/commands/wallet-mutation/types.js +1 -0
  39. package/dist/cli/commands/wallet-mutation.js +13 -765
  40. package/dist/cli/commands/wallet-read.js +4 -4
  41. package/dist/cli/mutation-success.d.ts +0 -2
  42. package/dist/cli/output/classify.d.ts +7 -0
  43. package/dist/cli/output/classify.js +94 -0
  44. package/dist/cli/output/render.d.ts +2 -0
  45. package/dist/cli/output/render.js +13 -0
  46. package/dist/cli/output/rules/cli-surface.d.ts +2 -0
  47. package/dist/cli/output/rules/cli-surface.js +110 -0
  48. package/dist/cli/output/rules/generic.d.ts +2 -0
  49. package/dist/cli/output/rules/generic.js +13 -0
  50. package/dist/cli/output/rules/index.d.ts +2 -0
  51. package/dist/cli/output/rules/index.js +24 -0
  52. package/dist/cli/output/rules/mining-update.d.ts +2 -0
  53. package/dist/cli/output/rules/mining-update.js +68 -0
  54. package/dist/cli/output/rules/services.d.ts +2 -0
  55. package/dist/cli/output/rules/services.js +110 -0
  56. package/dist/cli/output/rules/wallet-admin.d.ts +2 -0
  57. package/dist/cli/output/rules/wallet-admin.js +224 -0
  58. package/dist/cli/output/rules/wallet-mutations.d.ts +2 -0
  59. package/dist/cli/output/rules/wallet-mutations.js +274 -0
  60. package/dist/cli/output/types.d.ts +16 -0
  61. package/dist/cli/output/types.js +1 -0
  62. package/dist/cli/output.d.ts +2 -168
  63. package/dist/cli/output.js +6 -989
  64. package/dist/cli/pagination.d.ts +15 -0
  65. package/dist/cli/pagination.js +16 -0
  66. package/dist/cli/recommendations.d.ts +4 -0
  67. package/dist/cli/recommendations.js +108 -0
  68. package/dist/cli/wallet-format/availability.d.ts +5 -0
  69. package/dist/cli/wallet-format/availability.js +96 -0
  70. package/dist/cli/wallet-format/balance.d.ts +2 -0
  71. package/dist/cli/wallet-format/balance.js +162 -0
  72. package/dist/cli/wallet-format/domains.d.ts +8 -0
  73. package/dist/cli/wallet-format/domains.js +84 -0
  74. package/dist/cli/wallet-format/fields.d.ts +6 -0
  75. package/dist/cli/wallet-format/fields.js +61 -0
  76. package/dist/cli/wallet-format/identity.d.ts +5 -0
  77. package/dist/cli/wallet-format/identity.js +19 -0
  78. package/dist/cli/wallet-format/locks.d.ts +7 -0
  79. package/dist/cli/wallet-format/locks.js +52 -0
  80. package/dist/cli/wallet-format/overview.d.ts +2 -0
  81. package/dist/cli/wallet-format/overview.js +122 -0
  82. package/dist/cli/wallet-format/pending.d.ts +13 -0
  83. package/dist/cli/wallet-format/pending.js +101 -0
  84. package/dist/cli/wallet-format/shared.d.ts +7 -0
  85. package/dist/cli/wallet-format/shared.js +31 -0
  86. package/dist/cli/wallet-format/status.d.ts +3 -0
  87. package/dist/cli/wallet-format/status.js +27 -0
  88. package/dist/cli/wallet-format.d.ts +8 -30
  89. package/dist/cli/wallet-format.js +8 -830
  90. package/dist/cli/wallet-read-helpers.d.ts +6 -0
  91. package/dist/cli/wallet-read-helpers.js +17 -0
  92. package/dist/wallet/mining/candidate.d.ts +1 -1
  93. package/dist/wallet/mining/candidate.js +3 -3
  94. package/dist/wallet/mining/constants.d.ts +2 -2
  95. package/dist/wallet/mining/constants.js +2 -2
  96. package/dist/wallet/mining/engine-types.d.ts +1 -0
  97. package/dist/wallet/mining/engine-types.js +9 -1
  98. package/dist/wallet/mining/publish.js +3 -6
  99. package/dist/wallet/mining/runner.js +30 -18
  100. package/dist/wallet/mining/sentence-protocol.d.ts +2 -2
  101. package/dist/wallet/mining/sentences.js +8 -8
  102. package/dist/wallet/mining/visualizer.js +7 -6
  103. package/dist/wallet/read/context.d.ts +4 -10
  104. package/dist/wallet/read/context.js +4 -227
  105. package/dist/wallet/read/local-state.d.ts +28 -0
  106. package/dist/wallet/read/local-state.js +233 -0
  107. package/dist/wallet/read/managed-bitcoind.d.ts +30 -0
  108. package/dist/wallet/read/managed-bitcoind.js +138 -0
  109. package/dist/wallet/read/managed-indexer.d.ts +23 -0
  110. package/dist/wallet/read/managed-indexer.js +87 -0
  111. package/dist/wallet/read/managed-services.d.ts +6 -21
  112. package/dist/wallet/read/managed-services.js +23 -196
  113. package/dist/wallet/tx/anchor/confirm.d.ts +15 -0
  114. package/dist/wallet/tx/anchor/confirm.js +60 -0
  115. package/dist/wallet/tx/anchor/draft.d.ts +39 -0
  116. package/dist/wallet/tx/anchor/draft.js +167 -0
  117. package/dist/wallet/tx/anchor/index.d.ts +5 -0
  118. package/dist/wallet/tx/anchor/index.js +148 -0
  119. package/dist/wallet/tx/anchor/intent.d.ts +61 -0
  120. package/dist/wallet/tx/anchor/intent.js +101 -0
  121. package/dist/wallet/tx/anchor/plan.d.ts +3 -0
  122. package/dist/wallet/tx/anchor/plan.js +18 -0
  123. package/dist/wallet/tx/anchor/result.d.ts +25 -0
  124. package/dist/wallet/tx/anchor/result.js +20 -0
  125. package/dist/wallet/tx/anchor.d.ts +1 -39
  126. package/dist/wallet/tx/anchor.js +1 -494
  127. package/dist/wallet/tx/bitcoin-transfer/confirm.d.ts +7 -0
  128. package/dist/wallet/tx/bitcoin-transfer/confirm.js +11 -0
  129. package/dist/wallet/tx/bitcoin-transfer/index.d.ts +5 -0
  130. package/dist/wallet/tx/bitcoin-transfer/index.js +112 -0
  131. package/dist/wallet/tx/bitcoin-transfer/intent.d.ts +52 -0
  132. package/dist/wallet/tx/bitcoin-transfer/intent.js +74 -0
  133. package/dist/wallet/tx/bitcoin-transfer/plan.d.ts +5 -0
  134. package/dist/wallet/tx/bitcoin-transfer/plan.js +21 -0
  135. package/dist/wallet/tx/bitcoin-transfer/result.d.ts +19 -0
  136. package/dist/wallet/tx/bitcoin-transfer/result.js +16 -0
  137. package/dist/wallet/tx/bitcoin-transfer.d.ts +1 -35
  138. package/dist/wallet/tx/bitcoin-transfer.js +1 -200
  139. package/dist/wallet/tx/cog/confirm.d.ts +13 -0
  140. package/dist/wallet/tx/cog/confirm.js +59 -0
  141. package/dist/wallet/tx/cog/draft.d.ts +20 -0
  142. package/dist/wallet/tx/cog/draft.js +114 -0
  143. package/dist/wallet/tx/cog/index.d.ts +6 -0
  144. package/dist/wallet/tx/cog/index.js +117 -0
  145. package/dist/wallet/tx/cog/intent.d.ts +30 -0
  146. package/dist/wallet/tx/cog/intent.js +169 -0
  147. package/dist/wallet/tx/cog/plan.d.ts +19 -0
  148. package/dist/wallet/tx/cog/plan.js +65 -0
  149. package/dist/wallet/tx/cog/result.d.ts +27 -0
  150. package/dist/wallet/tx/cog/result.js +28 -0
  151. package/dist/wallet/tx/cog/types.d.ts +186 -0
  152. package/dist/wallet/tx/cog/types.js +2 -0
  153. package/dist/wallet/tx/cog/variants/claim.d.ts +3 -0
  154. package/dist/wallet/tx/cog/variants/claim.js +92 -0
  155. package/dist/wallet/tx/cog/variants/lock.d.ts +2 -0
  156. package/dist/wallet/tx/cog/variants/lock.js +102 -0
  157. package/dist/wallet/tx/cog/variants/send.d.ts +2 -0
  158. package/dist/wallet/tx/cog/variants/send.js +77 -0
  159. package/dist/wallet/tx/cog.d.ts +1 -96
  160. package/dist/wallet/tx/cog.js +1 -824
  161. package/dist/wallet/tx/common.d.ts +14 -199
  162. package/dist/wallet/tx/common.js +10 -493
  163. package/dist/wallet/tx/domain-admin/confirm.d.ts +17 -0
  164. package/dist/wallet/tx/domain-admin/confirm.js +58 -0
  165. package/dist/wallet/tx/domain-admin/draft.d.ts +20 -0
  166. package/dist/wallet/tx/domain-admin/draft.js +161 -0
  167. package/dist/wallet/tx/domain-admin/index.d.ts +9 -0
  168. package/dist/wallet/tx/domain-admin/index.js +150 -0
  169. package/dist/wallet/tx/domain-admin/intent.d.ts +12 -0
  170. package/dist/wallet/tx/domain-admin/intent.js +61 -0
  171. package/dist/wallet/tx/domain-admin/plan.d.ts +19 -0
  172. package/dist/wallet/tx/domain-admin/plan.js +64 -0
  173. package/dist/wallet/tx/domain-admin/result.d.ts +19 -0
  174. package/dist/wallet/tx/domain-admin/result.js +33 -0
  175. package/dist/wallet/tx/domain-admin/types.d.ts +162 -0
  176. package/dist/wallet/tx/domain-admin/types.js +1 -0
  177. package/dist/wallet/tx/domain-admin/variants/canonical.d.ts +2 -0
  178. package/dist/wallet/tx/domain-admin/variants/canonical.js +22 -0
  179. package/dist/wallet/tx/domain-admin/variants/delegate.d.ts +3 -0
  180. package/dist/wallet/tx/domain-admin/variants/delegate.js +60 -0
  181. package/dist/wallet/tx/domain-admin/variants/endpoint.d.ts +3 -0
  182. package/dist/wallet/tx/domain-admin/variants/endpoint.js +102 -0
  183. package/dist/wallet/tx/domain-admin/variants/miner.d.ts +3 -0
  184. package/dist/wallet/tx/domain-admin/variants/miner.js +59 -0
  185. package/dist/wallet/tx/domain-admin.d.ts +1 -107
  186. package/dist/wallet/tx/domain-admin.js +1 -729
  187. package/dist/wallet/tx/domain-market/confirm.d.ts +6 -0
  188. package/dist/wallet/tx/domain-market/confirm.js +52 -0
  189. package/dist/wallet/tx/domain-market/draft.d.ts +43 -0
  190. package/dist/wallet/tx/domain-market/draft.js +286 -0
  191. package/dist/wallet/tx/domain-market/index.d.ts +6 -0
  192. package/dist/wallet/tx/domain-market/index.js +145 -0
  193. package/dist/wallet/tx/domain-market/intent.d.ts +15 -0
  194. package/dist/wallet/tx/domain-market/intent.js +131 -0
  195. package/dist/wallet/tx/domain-market/plan.d.ts +31 -0
  196. package/dist/wallet/tx/domain-market/plan.js +98 -0
  197. package/dist/wallet/tx/domain-market/result.d.ts +45 -0
  198. package/dist/wallet/tx/domain-market/result.js +88 -0
  199. package/dist/wallet/tx/domain-market/types.d.ts +221 -0
  200. package/dist/wallet/tx/domain-market/types.js +1 -0
  201. package/dist/wallet/tx/domain-market/variants/buy.d.ts +2 -0
  202. package/dist/wallet/tx/domain-market/variants/buy.js +103 -0
  203. package/dist/wallet/tx/domain-market/variants/sell.d.ts +2 -0
  204. package/dist/wallet/tx/domain-market/variants/sell.js +91 -0
  205. package/dist/wallet/tx/domain-market/variants/transfer.d.ts +2 -0
  206. package/dist/wallet/tx/domain-market/variants/transfer.js +105 -0
  207. package/dist/wallet/tx/domain-market.d.ts +1 -116
  208. package/dist/wallet/tx/domain-market.js +1 -1078
  209. package/dist/wallet/tx/draft-build.d.ts +60 -0
  210. package/dist/wallet/tx/draft-build.js +127 -0
  211. package/dist/wallet/tx/executor.d.ts +6 -40
  212. package/dist/wallet/tx/executor.js +6 -100
  213. package/dist/wallet/tx/fee.d.ts +30 -0
  214. package/dist/wallet/tx/fee.js +98 -0
  215. package/dist/wallet/tx/field/confirm.d.ts +11 -0
  216. package/dist/wallet/tx/field/confirm.js +19 -0
  217. package/dist/wallet/tx/field/draft.d.ts +23 -0
  218. package/dist/wallet/tx/field/draft.js +202 -0
  219. package/dist/wallet/tx/field/index.d.ts +5 -0
  220. package/dist/wallet/tx/field/index.js +140 -0
  221. package/dist/wallet/tx/field/intent.d.ts +5 -0
  222. package/dist/wallet/tx/field/intent.js +50 -0
  223. package/dist/wallet/tx/field/plan.d.ts +20 -0
  224. package/dist/wallet/tx/field/plan.js +65 -0
  225. package/dist/wallet/tx/field/result.d.ts +29 -0
  226. package/dist/wallet/tx/field/result.js +103 -0
  227. package/dist/wallet/tx/field/types.d.ts +163 -0
  228. package/dist/wallet/tx/field/types.js +1 -0
  229. package/dist/wallet/tx/field/variants/clear.d.ts +2 -0
  230. package/dist/wallet/tx/field/variants/clear.js +60 -0
  231. package/dist/wallet/tx/field/variants/create.d.ts +2 -0
  232. package/dist/wallet/tx/field/variants/create.js +67 -0
  233. package/dist/wallet/tx/field/variants/set.d.ts +2 -0
  234. package/dist/wallet/tx/field/variants/set.js +195 -0
  235. package/dist/wallet/tx/field.d.ts +1 -95
  236. package/dist/wallet/tx/field.js +1 -920
  237. package/dist/wallet/tx/mining-preemption.d.ts +6 -0
  238. package/dist/wallet/tx/mining-preemption.js +7 -0
  239. package/dist/wallet/tx/primitives.d.ts +13 -0
  240. package/dist/wallet/tx/primitives.js +42 -0
  241. package/dist/wallet/tx/psbt-assert.d.ts +14 -0
  242. package/dist/wallet/tx/psbt-assert.js +39 -0
  243. package/dist/wallet/tx/publish.d.ts +37 -0
  244. package/dist/wallet/tx/publish.js +88 -0
  245. package/dist/wallet/tx/readiness.d.ts +7 -0
  246. package/dist/wallet/tx/readiness.js +61 -0
  247. package/dist/wallet/tx/reconcile.d.ts +24 -0
  248. package/dist/wallet/tx/reconcile.js +72 -0
  249. package/dist/wallet/tx/register/confirm.d.ts +6 -0
  250. package/dist/wallet/tx/register/confirm.js +66 -0
  251. package/dist/wallet/tx/register/draft.d.ts +42 -0
  252. package/dist/wallet/tx/register/draft.js +181 -0
  253. package/dist/wallet/tx/register/index.d.ts +6 -0
  254. package/dist/wallet/tx/register/index.js +158 -0
  255. package/dist/wallet/tx/register/intent.d.ts +74 -0
  256. package/dist/wallet/tx/register/intent.js +119 -0
  257. package/dist/wallet/tx/register/plan.d.ts +43 -0
  258. package/dist/wallet/tx/register/plan.js +168 -0
  259. package/dist/wallet/tx/register/result.d.ts +78 -0
  260. package/dist/wallet/tx/register/result.js +41 -0
  261. package/dist/wallet/tx/register.d.ts +1 -70
  262. package/dist/wallet/tx/register.js +1 -681
  263. package/dist/wallet/tx/reputation/confirm.d.ts +11 -0
  264. package/dist/wallet/tx/reputation/confirm.js +51 -0
  265. package/dist/wallet/tx/reputation/draft.d.ts +20 -0
  266. package/dist/wallet/tx/reputation/draft.js +130 -0
  267. package/dist/wallet/tx/reputation/index.d.ts +4 -0
  268. package/dist/wallet/tx/reputation/index.js +162 -0
  269. package/dist/wallet/tx/reputation/intent.d.ts +36 -0
  270. package/dist/wallet/tx/reputation/intent.js +157 -0
  271. package/dist/wallet/tx/reputation/plan.d.ts +19 -0
  272. package/dist/wallet/tx/reputation/plan.js +64 -0
  273. package/dist/wallet/tx/reputation/result.d.ts +21 -0
  274. package/dist/wallet/tx/reputation/result.js +31 -0
  275. package/dist/wallet/tx/reputation/types.d.ts +130 -0
  276. package/dist/wallet/tx/reputation/types.js +1 -0
  277. package/dist/wallet/tx/reputation.d.ts +1 -74
  278. package/dist/wallet/tx/reputation.js +1 -556
  279. package/dist/wallet/tx/signing.d.ts +18 -0
  280. package/dist/wallet/tx/signing.js +31 -0
  281. package/dist/wallet/tx/state-persist.d.ts +27 -0
  282. package/dist/wallet/tx/state-persist.js +54 -0
  283. package/dist/wallet/tx/types.d.ts +44 -0
  284. package/dist/wallet/tx/types.js +1 -0
  285. package/package.json +1 -1
  286. package/dist/cli/mining-json.d.ts +0 -20
  287. package/dist/cli/mining-json.js +0 -46
  288. package/dist/cli/mutation-json.d.ts +0 -325
  289. package/dist/cli/mutation-json.js +0 -269
  290. package/dist/cli/mutation-resolved-json.d.ts +0 -117
  291. package/dist/cli/mutation-resolved-json.js +0 -123
  292. package/dist/cli/preview-json.d.ts +0 -319
  293. package/dist/cli/preview-json.js +0 -254
  294. package/dist/cli/read-json.d.ts +0 -190
  295. 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";