@cogcoin/client 0.5.5 → 0.5.7
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.
- package/README.md +11 -2
- package/dist/bitcoind/bootstrap/chainstate.d.ts +2 -1
- package/dist/bitcoind/bootstrap/chainstate.js +4 -1
- package/dist/bitcoind/bootstrap/controller.d.ts +4 -1
- package/dist/bitcoind/bootstrap/controller.js +42 -5
- package/dist/bitcoind/bootstrap/getblock-archive.d.ts +39 -0
- package/dist/bitcoind/bootstrap/getblock-archive.js +548 -0
- package/dist/bitcoind/bootstrap/headers.d.ts +12 -0
- package/dist/bitcoind/bootstrap/headers.js +95 -10
- package/dist/bitcoind/bootstrap.d.ts +1 -0
- package/dist/bitcoind/bootstrap.js +1 -0
- package/dist/bitcoind/client/factory.js +91 -28
- package/dist/bitcoind/client/managed-client.d.ts +1 -1
- package/dist/bitcoind/client/managed-client.js +4 -3
- package/dist/bitcoind/client/sync-engine.js +55 -13
- package/dist/bitcoind/errors.js +18 -0
- package/dist/bitcoind/indexer-daemon-main.js +78 -0
- package/dist/bitcoind/indexer-daemon.d.ts +10 -1
- package/dist/bitcoind/indexer-daemon.js +44 -28
- package/dist/bitcoind/node.js +2 -0
- package/dist/bitcoind/processing-start-height.d.ts +7 -0
- package/dist/bitcoind/processing-start-height.js +9 -0
- package/dist/bitcoind/progress/constants.d.ts +1 -0
- package/dist/bitcoind/progress/constants.js +1 -0
- package/dist/bitcoind/progress/controller.d.ts +22 -0
- package/dist/bitcoind/progress/controller.js +49 -23
- package/dist/bitcoind/progress/formatting.js +29 -1
- package/dist/bitcoind/progress/render-policy.d.ts +35 -0
- package/dist/bitcoind/progress/render-policy.js +81 -0
- package/dist/bitcoind/retryable-rpc.d.ts +11 -0
- package/dist/bitcoind/retryable-rpc.js +30 -0
- package/dist/bitcoind/service-paths.js +2 -6
- package/dist/bitcoind/service.d.ts +21 -2
- package/dist/bitcoind/service.js +274 -122
- package/dist/bitcoind/testing.d.ts +2 -2
- package/dist/bitcoind/testing.js +2 -2
- package/dist/bitcoind/types.d.ts +36 -1
- package/dist/cli/commands/follow.js +11 -0
- package/dist/cli/commands/getblock-archive-restart.d.ts +5 -0
- package/dist/cli/commands/getblock-archive-restart.js +15 -0
- package/dist/cli/commands/mining-admin.js +4 -0
- package/dist/cli/commands/mining-read.js +8 -5
- package/dist/cli/commands/mining-runtime.js +4 -0
- package/dist/cli/commands/service-runtime.js +150 -134
- package/dist/cli/commands/status.js +2 -0
- package/dist/cli/commands/sync.js +11 -0
- package/dist/cli/commands/wallet-admin.js +106 -24
- package/dist/cli/commands/wallet-mutation.js +57 -4
- package/dist/cli/commands/wallet-read.js +2 -0
- package/dist/cli/context.js +8 -4
- package/dist/cli/mutation-command-groups.d.ts +2 -1
- package/dist/cli/mutation-command-groups.js +5 -0
- package/dist/cli/mutation-json.d.ts +18 -2
- package/dist/cli/mutation-json.js +49 -0
- package/dist/cli/mutation-success.d.ts +1 -0
- package/dist/cli/mutation-success.js +2 -2
- package/dist/cli/output.js +86 -1
- package/dist/cli/parse.d.ts +1 -1
- package/dist/cli/parse.js +133 -3
- package/dist/cli/preview-json.d.ts +10 -1
- package/dist/cli/preview-json.js +32 -0
- package/dist/cli/prompt.js +1 -1
- package/dist/cli/runner.js +4 -0
- package/dist/cli/types.d.ts +15 -5
- package/dist/cli/types.js +1 -1
- package/dist/cli/wallet-format.js +140 -14
- package/dist/wallet/lifecycle.d.ts +21 -1
- package/dist/wallet/lifecycle.js +252 -116
- package/dist/wallet/mining/visualizer.d.ts +11 -6
- package/dist/wallet/mining/visualizer.js +32 -15
- package/dist/wallet/read/context.js +10 -4
- package/dist/wallet/reset.d.ts +61 -2
- package/dist/wallet/reset.js +246 -89
- package/dist/wallet/root-resolution.d.ts +20 -0
- package/dist/wallet/root-resolution.js +37 -0
- package/dist/wallet/runtime.d.ts +13 -1
- package/dist/wallet/runtime.js +54 -11
- package/dist/wallet/state/crypto.d.ts +3 -0
- package/dist/wallet/state/crypto.js +3 -0
- package/dist/wallet/state/provider.d.ts +1 -0
- package/dist/wallet/state/provider.js +119 -3
- package/dist/wallet/state/seed-index.d.ts +43 -0
- package/dist/wallet/state/seed-index.js +151 -0
- package/dist/wallet/state/storage.d.ts +7 -1
- package/dist/wallet/state/storage.js +39 -0
- package/dist/wallet/tx/anchor.d.ts +22 -0
- package/dist/wallet/tx/anchor.js +215 -8
- package/dist/wallet/tx/index.d.ts +1 -1
- package/dist/wallet/tx/index.js +1 -1
- package/dist/wallet/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/wallet/tx/anchor.js
CHANGED
|
@@ -10,6 +10,7 @@ import { createDefaultWalletSecretProvider, } from "../state/provider.js";
|
|
|
10
10
|
import { serializeDomainAnchor, serializeDomainTransfer, validateDomainName, } from "../cogop/index.js";
|
|
11
11
|
import { openWalletReadContext } from "../read/index.js";
|
|
12
12
|
import { assertWalletMutationContextReady, buildWalletMutationTransaction, isAlreadyAcceptedError, isBroadcastUnknownError, pauseMiningForWalletMutation, saveWalletStatePreservingUnlock, unlockTemporaryBuilderLocks, } from "./common.js";
|
|
13
|
+
import { confirmYesNo } from "./confirm.js";
|
|
13
14
|
const ACTIVE_FAMILY_STATUSES = new Set([
|
|
14
15
|
"draft",
|
|
15
16
|
"broadcasting",
|
|
@@ -117,21 +118,62 @@ function findActiveAnchorFamilyByDomain(state, domainName) {
|
|
|
117
118
|
function findAnchorFamilyById(state, familyId) {
|
|
118
119
|
return state.proactiveFamilies.find((family) => family.familyId === familyId) ?? null;
|
|
119
120
|
}
|
|
120
|
-
function
|
|
121
|
+
function collectActivelyReservedDedicatedIndices(state) {
|
|
121
122
|
const reservedIndices = new Set();
|
|
122
123
|
for (const domain of state.domains) {
|
|
123
|
-
if (domain.dedicatedIndex !== null) {
|
|
124
|
+
if (domain.dedicatedIndex !== null && domain.localAnchorIntent !== "none") {
|
|
124
125
|
reservedIndices.add(domain.dedicatedIndex);
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
128
|
for (const family of state.proactiveFamilies) {
|
|
128
|
-
if (family.type === "anchor"
|
|
129
|
+
if (family.type === "anchor"
|
|
130
|
+
&& ACTIVE_FAMILY_STATUSES.has(family.status)
|
|
131
|
+
&& family.reservedDedicatedIndex !== null
|
|
132
|
+
&& family.reservedDedicatedIndex !== undefined) {
|
|
129
133
|
reservedIndices.add(family.reservedDedicatedIndex);
|
|
130
134
|
}
|
|
131
135
|
}
|
|
136
|
+
return reservedIndices;
|
|
137
|
+
}
|
|
138
|
+
function selectReusableDedicatedIdentityTarget(state) {
|
|
139
|
+
const reservedIndices = collectActivelyReservedDedicatedIndices(state);
|
|
140
|
+
const reusableIdentity = state.identities
|
|
141
|
+
.filter((identity) => identity.status === "dedicated"
|
|
142
|
+
&& identity.address !== null
|
|
143
|
+
&& identity.assignedDomainNames.length === 0
|
|
144
|
+
&& !reservedIndices.has(identity.index))
|
|
145
|
+
.sort((left, right) => left.index - right.index)[0];
|
|
146
|
+
if (reusableIdentity == null) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const material = deriveWalletIdentityMaterial(state.keys.accountXprv, reusableIdentity.index);
|
|
150
|
+
const reusableAddress = reusableIdentity.address;
|
|
151
|
+
if (reusableAddress === null) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
...material,
|
|
156
|
+
localIndex: reusableIdentity.index,
|
|
157
|
+
address: reusableAddress,
|
|
158
|
+
scriptPubKeyHex: reusableIdentity.scriptPubKeyHex,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function selectFreshDedicatedIdentityTarget(state) {
|
|
162
|
+
const unavailableIndices = new Set();
|
|
163
|
+
for (const identity of state.identities) {
|
|
164
|
+
unavailableIndices.add(identity.index);
|
|
165
|
+
}
|
|
166
|
+
for (const domain of state.domains) {
|
|
167
|
+
if (domain.dedicatedIndex !== null) {
|
|
168
|
+
unavailableIndices.add(domain.dedicatedIndex);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
for (const index of collectActivelyReservedDedicatedIndices(state)) {
|
|
172
|
+
unavailableIndices.add(index);
|
|
173
|
+
}
|
|
132
174
|
const startIndex = Math.max(1, state.nextDedicatedIndex);
|
|
133
175
|
for (let index = startIndex; index <= state.descriptor.rangeEnd; index += 1) {
|
|
134
|
-
if (
|
|
176
|
+
if (unavailableIndices.has(index)) {
|
|
135
177
|
continue;
|
|
136
178
|
}
|
|
137
179
|
const material = deriveWalletIdentityMaterial(state.keys.accountXprv, index);
|
|
@@ -142,6 +184,20 @@ function selectNextDedicatedIdentityTarget(state) {
|
|
|
142
184
|
}
|
|
143
185
|
throw new Error("wallet_anchor_no_fresh_dedicated_index");
|
|
144
186
|
}
|
|
187
|
+
function selectNextDedicatedIdentityTarget(state) {
|
|
188
|
+
return selectReusableDedicatedIdentityTarget(state) ?? selectFreshDedicatedIdentityTarget(state);
|
|
189
|
+
}
|
|
190
|
+
function deriveAnchorTargetIdentityForIndex(state, localIndex) {
|
|
191
|
+
const existingIdentity = state.identities.find((identity) => identity.index === localIndex
|
|
192
|
+
&& identity.address !== null) ?? null;
|
|
193
|
+
const material = deriveWalletIdentityMaterial(state.keys.accountXprv, localIndex);
|
|
194
|
+
return {
|
|
195
|
+
...material,
|
|
196
|
+
localIndex,
|
|
197
|
+
address: existingIdentity?.address ?? material.address,
|
|
198
|
+
scriptPubKeyHex: existingIdentity?.scriptPubKeyHex ?? material.scriptPubKeyHex,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
145
201
|
function encodeFoundingMessage(foundingMessageText) {
|
|
146
202
|
const trimmed = foundingMessageText?.trim() ?? "";
|
|
147
203
|
if (trimmed === "") {
|
|
@@ -190,6 +246,17 @@ async function confirmAnchor(prompter, operation) {
|
|
|
190
246
|
throw new Error("wallet_anchor_confirmation_rejected");
|
|
191
247
|
}
|
|
192
248
|
}
|
|
249
|
+
async function confirmAnchorClear(prompter, domainName, dedicatedIndex, assumeYes = false) {
|
|
250
|
+
const releaseLine = dedicatedIndex === null
|
|
251
|
+
? "This will cancel the local pending anchor reservation."
|
|
252
|
+
: `This will cancel the local pending anchor reservation and release dedicated index ${dedicatedIndex} for reuse.`;
|
|
253
|
+
await confirmYesNo(prompter, releaseLine, {
|
|
254
|
+
assumeYes,
|
|
255
|
+
errorCode: "wallet_anchor_clear_confirmation_rejected",
|
|
256
|
+
requiresTtyErrorCode: "wallet_anchor_clear_requires_tty",
|
|
257
|
+
prompt: `Clear pending anchor for "${domainName}"? [y/N]: `,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
193
260
|
function resolveAnchorOperation(context, domainName, foundingMessageText, foundingMessagePayloadHex) {
|
|
194
261
|
assertWalletMutationContextReady(context, "wallet_anchor");
|
|
195
262
|
const chainDomain = lookupDomain(context.snapshot.state, domainName);
|
|
@@ -231,6 +298,30 @@ function resolveAnchorOperation(context, domainName, foundingMessageText, foundi
|
|
|
231
298
|
hadListing: getListing(context.snapshot.state, chainDomain.domainId) !== null,
|
|
232
299
|
};
|
|
233
300
|
}
|
|
301
|
+
function releaseClearedAnchorReservationState(options) {
|
|
302
|
+
const family = findAnchorFamilyById(options.state, options.familyId);
|
|
303
|
+
const domains = options.state.domains.map((domain) => {
|
|
304
|
+
if (domain.name !== options.domainName) {
|
|
305
|
+
return domain;
|
|
306
|
+
}
|
|
307
|
+
return {
|
|
308
|
+
...domain,
|
|
309
|
+
dedicatedIndex: null,
|
|
310
|
+
localAnchorIntent: "none",
|
|
311
|
+
};
|
|
312
|
+
});
|
|
313
|
+
const nextState = {
|
|
314
|
+
...options.state,
|
|
315
|
+
domains,
|
|
316
|
+
};
|
|
317
|
+
if (family === null) {
|
|
318
|
+
return nextState;
|
|
319
|
+
}
|
|
320
|
+
return upsertProactiveFamily(nextState, {
|
|
321
|
+
...family,
|
|
322
|
+
lastUpdatedAtUnixMs: options.nowUnixMs,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
234
325
|
function createFamilyTransactionRecord() {
|
|
235
326
|
return {
|
|
236
327
|
status: "draft",
|
|
@@ -1020,10 +1111,7 @@ export async function anchorDomain(options) {
|
|
|
1020
1111
|
let workingState = operation.state;
|
|
1021
1112
|
if (existingFamily !== null) {
|
|
1022
1113
|
const existingReservedIndex = existingFamily.reservedDedicatedIndex ?? operation.targetIdentity.localIndex;
|
|
1023
|
-
const existingTargetIdentity =
|
|
1024
|
-
...deriveWalletIdentityMaterial(operation.state.keys.accountXprv, existingReservedIndex),
|
|
1025
|
-
localIndex: existingReservedIndex,
|
|
1026
|
-
};
|
|
1114
|
+
const existingTargetIdentity = deriveAnchorTargetIdentityForIndex(operation.state, existingReservedIndex);
|
|
1027
1115
|
const reconciled = await reconcileAnchorFamily({
|
|
1028
1116
|
state: operation.state,
|
|
1029
1117
|
family: existingFamily,
|
|
@@ -1209,3 +1297,122 @@ export async function anchorDomain(options) {
|
|
|
1209
1297
|
await controlLock.release();
|
|
1210
1298
|
}
|
|
1211
1299
|
}
|
|
1300
|
+
export async function clearPendingAnchor(options) {
|
|
1301
|
+
const provider = options.provider ?? createDefaultWalletSecretProvider();
|
|
1302
|
+
const nowUnixMs = options.nowUnixMs ?? Date.now();
|
|
1303
|
+
const paths = options.paths ?? resolveWalletRuntimePathsForTesting();
|
|
1304
|
+
const controlLock = await acquireFileLock(paths.walletControlLockPath, {
|
|
1305
|
+
purpose: "wallet-anchor-clear",
|
|
1306
|
+
walletRootId: null,
|
|
1307
|
+
});
|
|
1308
|
+
const normalizedDomainName = normalizeDomainName(options.domainName);
|
|
1309
|
+
try {
|
|
1310
|
+
const miningPreemption = await pauseMiningForWalletMutation({
|
|
1311
|
+
paths,
|
|
1312
|
+
reason: "wallet-anchor-clear",
|
|
1313
|
+
});
|
|
1314
|
+
const readContext = await (options.openReadContext ?? openWalletReadContext)({
|
|
1315
|
+
dataDir: options.dataDir,
|
|
1316
|
+
databasePath: options.databasePath,
|
|
1317
|
+
secretProvider: provider,
|
|
1318
|
+
walletControlLockHeld: true,
|
|
1319
|
+
paths,
|
|
1320
|
+
});
|
|
1321
|
+
try {
|
|
1322
|
+
assertWalletMutationContextReady(readContext, "wallet_anchor_clear");
|
|
1323
|
+
const domain = readContext.localState.state.domains.find((entry) => entry.name === normalizedDomainName) ?? null;
|
|
1324
|
+
if (domain === null) {
|
|
1325
|
+
throw new Error("wallet_anchor_clear_domain_not_found");
|
|
1326
|
+
}
|
|
1327
|
+
const family = findActiveAnchorFamilyByDomain(readContext.localState.state, normalizedDomainName);
|
|
1328
|
+
if (family === null) {
|
|
1329
|
+
if (domain.localAnchorIntent !== "none") {
|
|
1330
|
+
throw new Error("wallet_anchor_clear_inconsistent_state");
|
|
1331
|
+
}
|
|
1332
|
+
return {
|
|
1333
|
+
domainName: normalizedDomainName,
|
|
1334
|
+
cleared: false,
|
|
1335
|
+
previousFamilyStatus: null,
|
|
1336
|
+
previousFamilyStep: null,
|
|
1337
|
+
releasedDedicatedIndex: null,
|
|
1338
|
+
};
|
|
1339
|
+
}
|
|
1340
|
+
if (family.type !== "anchor") {
|
|
1341
|
+
throw new Error("wallet_anchor_clear_inconsistent_state");
|
|
1342
|
+
}
|
|
1343
|
+
if (family.status !== "draft" || family.currentStep !== "reserved") {
|
|
1344
|
+
throw new Error(`wallet_anchor_clear_not_clearable_${family.status}`);
|
|
1345
|
+
}
|
|
1346
|
+
if (domain.localAnchorIntent !== "reserved"
|
|
1347
|
+
|| domain.dedicatedIndex === null
|
|
1348
|
+
|| family.reservedDedicatedIndex === null
|
|
1349
|
+
|| domain.dedicatedIndex !== family.reservedDedicatedIndex
|
|
1350
|
+
|| family.tx1?.attemptedTxid !== null
|
|
1351
|
+
|| family.tx2?.attemptedTxid !== null) {
|
|
1352
|
+
throw new Error("wallet_anchor_clear_inconsistent_state");
|
|
1353
|
+
}
|
|
1354
|
+
await confirmAnchorClear(options.prompter, normalizedDomainName, family.reservedDedicatedIndex, options.assumeYes ?? false);
|
|
1355
|
+
const operation = resolveAnchorOperation(readContext, normalizedDomainName, family.foundingMessageText ?? null, family.foundingMessagePayloadHex ?? null);
|
|
1356
|
+
const targetIdentity = deriveAnchorTargetIdentityForIndex(readContext.localState.state, family.reservedDedicatedIndex);
|
|
1357
|
+
const node = await (options.attachService ?? attachOrStartManagedBitcoindService)({
|
|
1358
|
+
dataDir: options.dataDir,
|
|
1359
|
+
chain: "main",
|
|
1360
|
+
startHeight: 0,
|
|
1361
|
+
walletRootId: readContext.localState.state.walletRootId,
|
|
1362
|
+
});
|
|
1363
|
+
const rpc = (options.rpcFactory ?? createRpcClient)(node.rpc);
|
|
1364
|
+
const walletName = readContext.localState.state.managedCoreWallet.walletName;
|
|
1365
|
+
const reconciled = await reconcileAnchorFamily({
|
|
1366
|
+
state: readContext.localState.state,
|
|
1367
|
+
family,
|
|
1368
|
+
operation: {
|
|
1369
|
+
...operation,
|
|
1370
|
+
targetIdentity,
|
|
1371
|
+
},
|
|
1372
|
+
provider,
|
|
1373
|
+
nowUnixMs,
|
|
1374
|
+
paths,
|
|
1375
|
+
unlockUntilUnixMs: readContext.localState.unlockUntilUnixMs,
|
|
1376
|
+
rpc,
|
|
1377
|
+
walletName,
|
|
1378
|
+
});
|
|
1379
|
+
if (reconciled.resolution !== "not-seen") {
|
|
1380
|
+
throw new Error(reconciled.resolution === "repair-required"
|
|
1381
|
+
? "wallet_anchor_clear_not_clearable_repair_required"
|
|
1382
|
+
: `wallet_anchor_clear_not_clearable_${reconciled.resolution}`);
|
|
1383
|
+
}
|
|
1384
|
+
const releasedDedicatedIndex = family.reservedDedicatedIndex;
|
|
1385
|
+
const releasedState = releaseClearedAnchorReservationState({
|
|
1386
|
+
state: reconciled.state,
|
|
1387
|
+
familyId: family.familyId,
|
|
1388
|
+
domainName: normalizedDomainName,
|
|
1389
|
+
nowUnixMs,
|
|
1390
|
+
});
|
|
1391
|
+
await saveWalletStatePreservingUnlock({
|
|
1392
|
+
state: {
|
|
1393
|
+
...releasedState,
|
|
1394
|
+
stateRevision: releasedState.stateRevision + 1,
|
|
1395
|
+
lastWrittenAtUnixMs: nowUnixMs,
|
|
1396
|
+
},
|
|
1397
|
+
provider,
|
|
1398
|
+
unlockUntilUnixMs: readContext.localState.unlockUntilUnixMs,
|
|
1399
|
+
nowUnixMs,
|
|
1400
|
+
paths,
|
|
1401
|
+
});
|
|
1402
|
+
return {
|
|
1403
|
+
domainName: normalizedDomainName,
|
|
1404
|
+
cleared: true,
|
|
1405
|
+
previousFamilyStatus: family.status,
|
|
1406
|
+
previousFamilyStep: family.currentStep ?? null,
|
|
1407
|
+
releasedDedicatedIndex,
|
|
1408
|
+
};
|
|
1409
|
+
}
|
|
1410
|
+
finally {
|
|
1411
|
+
await readContext.close();
|
|
1412
|
+
await miningPreemption.release();
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
finally {
|
|
1416
|
+
await controlLock.release();
|
|
1417
|
+
}
|
|
1418
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { extractOpReturnPayloadFromScriptHex, registerDomain, type RegisterDomainResult, } from "./register.js";
|
|
2
2
|
export { buyDomain, parseCogAmountToCogtoshi, sellDomain, transferDomain, type DomainMarketMutationResult, } from "./domain-market.js";
|
|
3
3
|
export { claimCogLock, lockCogToDomain, reclaimCogLock, sendCog, type CogMutationResult, } from "./cog.js";
|
|
4
|
-
export { anchorDomain, type AnchorDomainResult, } from "./anchor.js";
|
|
4
|
+
export { anchorDomain, clearPendingAnchor, type AnchorDomainResult, type ClearPendingAnchorResult, } from "./anchor.js";
|
|
5
5
|
export { clearDomainDelegate, clearDomainEndpoint, clearDomainMiner, setDomainCanonical, setDomainDelegate, setDomainEndpoint, setDomainMiner, type DomainAdminMutationResult, } from "./domain-admin.js";
|
|
6
6
|
export { clearField, createField, setField, type ClearFieldOptions, type CreateFieldOptions, type FieldMutationResult, type FieldValueInputSource, type SetFieldOptions, } from "./field.js";
|
|
7
7
|
export { giveReputation, revokeReputation, type GiveReputationOptions, type ReputationMutationResult, type RevokeReputationOptions, } from "./reputation.js";
|
package/dist/wallet/tx/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { extractOpReturnPayloadFromScriptHex, registerDomain, } from "./register.js";
|
|
2
2
|
export { buyDomain, parseCogAmountToCogtoshi, sellDomain, transferDomain, } from "./domain-market.js";
|
|
3
3
|
export { claimCogLock, lockCogToDomain, reclaimCogLock, sendCog, } from "./cog.js";
|
|
4
|
-
export { anchorDomain, } from "./anchor.js";
|
|
4
|
+
export { anchorDomain, clearPendingAnchor, } from "./anchor.js";
|
|
5
5
|
export { clearDomainDelegate, clearDomainEndpoint, clearDomainMiner, setDomainCanonical, setDomainDelegate, setDomainEndpoint, setDomainMiner, } from "./domain-admin.js";
|
|
6
6
|
export { clearField, createField, setField, } from "./field.js";
|
|
7
7
|
export { giveReputation, revokeReputation, } from "./reputation.js";
|
package/dist/wallet/types.d.ts
CHANGED
package/package.json
CHANGED