@originals/sdk 1.2.0 → 1.4.2
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/package.json +1 -1
- package/src/did/DIDManager.ts +1 -1
- package/src/did/WebVHManager.ts +11 -2
- package/src/examples/create-module-original.ts +435 -0
- package/src/examples/full-lifecycle-flow.ts +514 -0
- package/src/examples/run.ts +59 -4
- package/src/index.ts +69 -3
- package/src/kinds/KindRegistry.ts +290 -0
- package/src/kinds/index.ts +74 -0
- package/src/kinds/types.ts +470 -0
- package/src/kinds/validators/AgentValidator.ts +257 -0
- package/src/kinds/validators/AppValidator.ts +211 -0
- package/src/kinds/validators/DatasetValidator.ts +242 -0
- package/src/kinds/validators/DocumentValidator.ts +311 -0
- package/src/kinds/validators/MediaValidator.ts +269 -0
- package/src/kinds/validators/ModuleValidator.ts +225 -0
- package/src/kinds/validators/base.ts +276 -0
- package/src/kinds/validators/index.ts +12 -0
- package/src/lifecycle/LifecycleManager.ts +909 -1
- package/src/resources/ResourceManager.ts +655 -0
- package/src/resources/index.ts +21 -0
- package/src/resources/types.ts +202 -0
- package/src/types/common.ts +1 -1
- package/src/vc/CredentialManager.ts +647 -2
- package/tests/integration/createTypedOriginal.test.ts +379 -0
- package/tests/performance/BatchOperations.perf.test.ts +2 -2
- package/tests/unit/kinds/KindRegistry.test.ts +329 -0
- package/tests/unit/kinds/types.test.ts +409 -0
- package/tests/unit/kinds/validators.test.ts +651 -0
- package/tests/unit/lifecycle/LifecycleManager.cleanapi.test.ts +441 -0
- package/tests/unit/resources/ResourceManager.test.ts +740 -0
- package/tests/unit/vc/CredentialManager.helpers.test.ts +527 -0
- package/.turbo/turbo-build.log +0 -1
- package/dist/adapters/FeeOracleMock.d.ts +0 -6
- package/dist/adapters/FeeOracleMock.js +0 -8
- package/dist/adapters/index.d.ts +0 -4
- package/dist/adapters/index.js +0 -4
- package/dist/adapters/providers/OrdHttpProvider.d.ts +0 -56
- package/dist/adapters/providers/OrdHttpProvider.js +0 -110
- package/dist/adapters/providers/OrdMockProvider.d.ts +0 -70
- package/dist/adapters/providers/OrdMockProvider.js +0 -75
- package/dist/adapters/types.d.ts +0 -71
- package/dist/adapters/types.js +0 -1
- package/dist/bitcoin/BitcoinManager.d.ts +0 -15
- package/dist/bitcoin/BitcoinManager.js +0 -262
- package/dist/bitcoin/BroadcastClient.d.ts +0 -30
- package/dist/bitcoin/BroadcastClient.js +0 -35
- package/dist/bitcoin/OrdinalsClient.d.ts +0 -21
- package/dist/bitcoin/OrdinalsClient.js +0 -105
- package/dist/bitcoin/PSBTBuilder.d.ts +0 -24
- package/dist/bitcoin/PSBTBuilder.js +0 -80
- package/dist/bitcoin/fee-calculation.d.ts +0 -14
- package/dist/bitcoin/fee-calculation.js +0 -31
- package/dist/bitcoin/providers/OrdNodeProvider.d.ts +0 -38
- package/dist/bitcoin/providers/OrdNodeProvider.js +0 -67
- package/dist/bitcoin/providers/OrdinalsProvider.d.ts +0 -33
- package/dist/bitcoin/providers/OrdinalsProvider.js +0 -50
- package/dist/bitcoin/providers/types.d.ts +0 -63
- package/dist/bitcoin/providers/types.js +0 -1
- package/dist/bitcoin/transactions/commit.d.ts +0 -89
- package/dist/bitcoin/transactions/commit.js +0 -311
- package/dist/bitcoin/transactions/index.d.ts +0 -7
- package/dist/bitcoin/transactions/index.js +0 -8
- package/dist/bitcoin/transfer.d.ts +0 -9
- package/dist/bitcoin/transfer.js +0 -26
- package/dist/bitcoin/utxo-selection.d.ts +0 -78
- package/dist/bitcoin/utxo-selection.js +0 -237
- package/dist/bitcoin/utxo.d.ts +0 -26
- package/dist/bitcoin/utxo.js +0 -78
- package/dist/contexts/credentials-v1.json +0 -195
- package/dist/contexts/credentials-v2-examples.json +0 -5
- package/dist/contexts/credentials-v2.json +0 -301
- package/dist/contexts/credentials.json +0 -195
- package/dist/contexts/data-integrity-v2.json +0 -81
- package/dist/contexts/dids.json +0 -57
- package/dist/contexts/ed255192020.json +0 -93
- package/dist/contexts/ordinals-plus.json +0 -23
- package/dist/contexts/originals.json +0 -22
- package/dist/core/OriginalsSDK.d.ts +0 -158
- package/dist/core/OriginalsSDK.js +0 -274
- package/dist/crypto/Multikey.d.ts +0 -30
- package/dist/crypto/Multikey.js +0 -149
- package/dist/crypto/Signer.d.ts +0 -21
- package/dist/crypto/Signer.js +0 -196
- package/dist/crypto/noble-init.d.ts +0 -18
- package/dist/crypto/noble-init.js +0 -106
- package/dist/did/BtcoDidResolver.d.ts +0 -57
- package/dist/did/BtcoDidResolver.js +0 -166
- package/dist/did/DIDManager.d.ts +0 -101
- package/dist/did/DIDManager.js +0 -493
- package/dist/did/Ed25519Verifier.d.ts +0 -30
- package/dist/did/Ed25519Verifier.js +0 -59
- package/dist/did/KeyManager.d.ts +0 -17
- package/dist/did/KeyManager.js +0 -207
- package/dist/did/WebVHManager.d.ts +0 -100
- package/dist/did/WebVHManager.js +0 -304
- package/dist/did/createBtcoDidDocument.d.ts +0 -10
- package/dist/did/createBtcoDidDocument.js +0 -42
- package/dist/did/providers/OrdinalsClientProviderAdapter.d.ts +0 -23
- package/dist/did/providers/OrdinalsClientProviderAdapter.js +0 -51
- package/dist/events/EventEmitter.d.ts +0 -115
- package/dist/events/EventEmitter.js +0 -198
- package/dist/events/index.d.ts +0 -7
- package/dist/events/index.js +0 -6
- package/dist/events/types.d.ts +0 -286
- package/dist/events/types.js +0 -9
- package/dist/examples/basic-usage.d.ts +0 -3
- package/dist/examples/basic-usage.js +0 -62
- package/dist/examples/run.d.ts +0 -1
- package/dist/examples/run.js +0 -4
- package/dist/index.d.ts +0 -39
- package/dist/index.js +0 -47
- package/dist/lifecycle/BatchOperations.d.ts +0 -147
- package/dist/lifecycle/BatchOperations.js +0 -251
- package/dist/lifecycle/LifecycleManager.d.ts +0 -116
- package/dist/lifecycle/LifecycleManager.js +0 -971
- package/dist/lifecycle/OriginalsAsset.d.ts +0 -164
- package/dist/lifecycle/OriginalsAsset.js +0 -380
- package/dist/lifecycle/ProvenanceQuery.d.ts +0 -126
- package/dist/lifecycle/ProvenanceQuery.js +0 -220
- package/dist/lifecycle/ResourceVersioning.d.ts +0 -73
- package/dist/lifecycle/ResourceVersioning.js +0 -127
- package/dist/migration/MigrationManager.d.ts +0 -86
- package/dist/migration/MigrationManager.js +0 -412
- package/dist/migration/audit/AuditLogger.d.ts +0 -51
- package/dist/migration/audit/AuditLogger.js +0 -156
- package/dist/migration/checkpoint/CheckpointManager.d.ts +0 -31
- package/dist/migration/checkpoint/CheckpointManager.js +0 -96
- package/dist/migration/checkpoint/CheckpointStorage.d.ts +0 -26
- package/dist/migration/checkpoint/CheckpointStorage.js +0 -89
- package/dist/migration/index.d.ts +0 -22
- package/dist/migration/index.js +0 -27
- package/dist/migration/operations/BaseMigration.d.ts +0 -48
- package/dist/migration/operations/BaseMigration.js +0 -83
- package/dist/migration/operations/PeerToBtcoMigration.d.ts +0 -25
- package/dist/migration/operations/PeerToBtcoMigration.js +0 -67
- package/dist/migration/operations/PeerToWebvhMigration.d.ts +0 -19
- package/dist/migration/operations/PeerToWebvhMigration.js +0 -46
- package/dist/migration/operations/WebvhToBtcoMigration.d.ts +0 -25
- package/dist/migration/operations/WebvhToBtcoMigration.js +0 -67
- package/dist/migration/rollback/RollbackManager.d.ts +0 -29
- package/dist/migration/rollback/RollbackManager.js +0 -146
- package/dist/migration/state/StateMachine.d.ts +0 -25
- package/dist/migration/state/StateMachine.js +0 -76
- package/dist/migration/state/StateTracker.d.ts +0 -36
- package/dist/migration/state/StateTracker.js +0 -123
- package/dist/migration/types.d.ts +0 -306
- package/dist/migration/types.js +0 -33
- package/dist/migration/validation/BitcoinValidator.d.ts +0 -13
- package/dist/migration/validation/BitcoinValidator.js +0 -83
- package/dist/migration/validation/CredentialValidator.d.ts +0 -13
- package/dist/migration/validation/CredentialValidator.js +0 -46
- package/dist/migration/validation/DIDCompatibilityValidator.d.ts +0 -16
- package/dist/migration/validation/DIDCompatibilityValidator.js +0 -127
- package/dist/migration/validation/LifecycleValidator.d.ts +0 -10
- package/dist/migration/validation/LifecycleValidator.js +0 -52
- package/dist/migration/validation/StorageValidator.d.ts +0 -10
- package/dist/migration/validation/StorageValidator.js +0 -65
- package/dist/migration/validation/ValidationPipeline.d.ts +0 -29
- package/dist/migration/validation/ValidationPipeline.js +0 -180
- package/dist/storage/LocalStorageAdapter.d.ts +0 -11
- package/dist/storage/LocalStorageAdapter.js +0 -53
- package/dist/storage/MemoryStorageAdapter.d.ts +0 -6
- package/dist/storage/MemoryStorageAdapter.js +0 -21
- package/dist/storage/StorageAdapter.d.ts +0 -16
- package/dist/storage/StorageAdapter.js +0 -1
- package/dist/storage/index.d.ts +0 -2
- package/dist/storage/index.js +0 -2
- package/dist/types/bitcoin.d.ts +0 -84
- package/dist/types/bitcoin.js +0 -1
- package/dist/types/common.d.ts +0 -82
- package/dist/types/common.js +0 -1
- package/dist/types/credentials.d.ts +0 -75
- package/dist/types/credentials.js +0 -1
- package/dist/types/did.d.ts +0 -26
- package/dist/types/did.js +0 -1
- package/dist/types/index.d.ts +0 -5
- package/dist/types/index.js +0 -5
- package/dist/types/network.d.ts +0 -78
- package/dist/types/network.js +0 -145
- package/dist/utils/EventLogger.d.ts +0 -71
- package/dist/utils/EventLogger.js +0 -232
- package/dist/utils/Logger.d.ts +0 -106
- package/dist/utils/Logger.js +0 -257
- package/dist/utils/MetricsCollector.d.ts +0 -110
- package/dist/utils/MetricsCollector.js +0 -264
- package/dist/utils/bitcoin-address.d.ts +0 -38
- package/dist/utils/bitcoin-address.js +0 -113
- package/dist/utils/cbor.d.ts +0 -2
- package/dist/utils/cbor.js +0 -9
- package/dist/utils/encoding.d.ts +0 -37
- package/dist/utils/encoding.js +0 -120
- package/dist/utils/hash.d.ts +0 -1
- package/dist/utils/hash.js +0 -5
- package/dist/utils/retry.d.ts +0 -10
- package/dist/utils/retry.js +0 -35
- package/dist/utils/satoshi-validation.d.ts +0 -60
- package/dist/utils/satoshi-validation.js +0 -156
- package/dist/utils/serialization.d.ts +0 -14
- package/dist/utils/serialization.js +0 -76
- package/dist/utils/telemetry.d.ts +0 -17
- package/dist/utils/telemetry.js +0 -24
- package/dist/utils/validation.d.ts +0 -5
- package/dist/utils/validation.js +0 -98
- package/dist/vc/CredentialManager.d.ts +0 -22
- package/dist/vc/CredentialManager.js +0 -227
- package/dist/vc/Issuer.d.ts +0 -27
- package/dist/vc/Issuer.js +0 -70
- package/dist/vc/Verifier.d.ts +0 -16
- package/dist/vc/Verifier.js +0 -50
- package/dist/vc/cryptosuites/bbs.d.ts +0 -44
- package/dist/vc/cryptosuites/bbs.js +0 -213
- package/dist/vc/cryptosuites/bbsSimple.d.ts +0 -9
- package/dist/vc/cryptosuites/bbsSimple.js +0 -12
- package/dist/vc/cryptosuites/eddsa.d.ts +0 -30
- package/dist/vc/cryptosuites/eddsa.js +0 -81
- package/dist/vc/documentLoader.d.ts +0 -16
- package/dist/vc/documentLoader.js +0 -59
- package/dist/vc/proofs/data-integrity.d.ts +0 -21
- package/dist/vc/proofs/data-integrity.js +0 -15
- package/dist/vc/utils/jsonld.d.ts +0 -2
- package/dist/vc/utils/jsonld.js +0 -15
- package/test/logs/did_webvh_QmNTn9Kkp8dQ75WrF9xqJ2kuDp9QhKc3aPiERRMj8XoTBN_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmNu4MNr8Lr5txx5gYNhuhZDchXsZEu3hJXKYuphpWTPDp_example_com_users_etc_passwd.jsonl +0 -1
- package/test/logs/did_webvh_QmR9MrGZACzjKETA8SBRNCKG11HxU85c4bVR2qN5eDCfsD_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmUc5suaqRM2P4nrXxZwqYMfqzhdMqjuL7oJaJbEpCQVCd_example_com_users_etc_passwd.jsonl +0 -1
- package/test/logs/did_webvh_QmUkiB2RCV2VZ1RTXsCebWN25Eiy9TLvpzDWAJNjhgvB4X_example_com_etc_passwd.jsonl +0 -1
- package/test/logs/did_webvh_QmUoRTe8UMwpAQXZSAW7pjAgZK1tq2X3C6Kfxq3UXGcaGy_example_com_secret.jsonl +0 -1
- package/test/logs/did_webvh_QmWWot3chx1t6KwTmcE5i2FeDZ5JMkQw3qXycsKDVmJ9Be_example_com_users_alice.jsonl +0 -1
- package/test/logs/did_webvh_QmWvVgALL5kjZdpgR7KZay7J8UiiUr834kkRmWeFAxjAuC_example_com_users_etc_passwd.jsonl +0 -1
- package/test/logs/did_webvh_QmWwaRQHUZAFcKihFC6xR6tRTTrQhHPTku6azf1egWbpy1_example_com_users_alice.jsonl +0 -1
- package/test/logs/did_webvh_QmXJLtkz23r7AozbtXsZMKWnVU6rd38CkVtjdWuATU3Yp6_example_com_users_alice123_profile.jsonl +0 -1
- package/test/logs/did_webvh_QmYsce448po14oDE1wXbyaP6wY9HQgHSKLwdezn1k577SF_example_com_my_org_user_name_test_123.jsonl +0 -1
- package/test/logs/did_webvh_QmZBeNzzqajxdfwcDUPZ4P8C5YSXyRztrAwmPiKuKUxmAK_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmZhJsqxizwVbRtqCUkmE6XQunSxtxMt3gbTYadVBNAaEq_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmZk7NHU2D57RzzbMq4tWW9gBa9AqtVTWfiRM6RFdwGVj2_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmZshSXp9w8ovH62zGGBS1b5pGGPsuYiu1VQ935sga2hWF_example_com_level1_level2.jsonl +0 -1
- package/test/logs/did_webvh_QmbWAmw7HQL7vKJyCsctZihXf1rmT4sGvggKCPKWcUWjw1_example_com.jsonl +0 -1
- package/test/logs/did_webvh_QmbdLUMbYs3juR39TLB6hhrFWLcNg45ybUzeBJCS1MhCh1_example_com_C_Windows_System32.jsonl +0 -1
- package/test/logs/did_webvh_QmcaQ1Ma4gkSbae85aCm8Mv4rvdT2Sb2RR3JzYwrm5XBq8_example_com_etc_passwd.jsonl +0 -1
- package/test/logs/did_webvh_QmcbA7WQhsBqZSoDpKJHjV8Q5o53h8vmgJhQfo6rqTY5ho_example_com.jsonl +0 -1
- package/test/logs/did_webvh_Qmdy8uWr2gkUJrXsThynAug3DASTWwb3onEj89LKmMGZYB_example_com.jsonl +0 -1
- package/tests/e2e/README.md +0 -97
- package/tests/e2e/example.spec.ts +0 -78
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { AssetResource, DIDDocument, VerifiableCredential, LayerType } from '../types';
|
|
2
|
-
import { CredentialManager } from '../vc/CredentialManager';
|
|
3
|
-
import { DIDManager } from '../did/DIDManager';
|
|
4
|
-
import { ProvenanceQuery, Migration, Transfer } from './ProvenanceQuery';
|
|
5
|
-
import type { EventHandler, EventTypeMap } from '../events/types';
|
|
6
|
-
import { ResourceHistory } from './ResourceVersioning';
|
|
7
|
-
export interface ProvenanceChain {
|
|
8
|
-
createdAt: string;
|
|
9
|
-
creator: string;
|
|
10
|
-
txid?: string;
|
|
11
|
-
migrations: Array<{
|
|
12
|
-
from: LayerType;
|
|
13
|
-
to: LayerType;
|
|
14
|
-
timestamp: string;
|
|
15
|
-
transactionId?: string;
|
|
16
|
-
inscriptionId?: string;
|
|
17
|
-
satoshi?: string;
|
|
18
|
-
commitTxId?: string;
|
|
19
|
-
revealTxId?: string;
|
|
20
|
-
feeRate?: number;
|
|
21
|
-
}>;
|
|
22
|
-
transfers: Array<{
|
|
23
|
-
from: string;
|
|
24
|
-
to: string;
|
|
25
|
-
timestamp: string;
|
|
26
|
-
transactionId: string;
|
|
27
|
-
}>;
|
|
28
|
-
resourceUpdates: Array<{
|
|
29
|
-
resourceId: string;
|
|
30
|
-
fromVersion: number;
|
|
31
|
-
toVersion: number;
|
|
32
|
-
fromHash: string;
|
|
33
|
-
toHash: string;
|
|
34
|
-
timestamp: string;
|
|
35
|
-
changes?: string;
|
|
36
|
-
}>;
|
|
37
|
-
}
|
|
38
|
-
export declare class OriginalsAsset {
|
|
39
|
-
readonly id: string;
|
|
40
|
-
readonly resources: AssetResource[];
|
|
41
|
-
readonly did: DIDDocument;
|
|
42
|
-
readonly credentials: VerifiableCredential[];
|
|
43
|
-
currentLayer: LayerType;
|
|
44
|
-
bindings?: Record<string, string>;
|
|
45
|
-
private provenance;
|
|
46
|
-
private eventEmitter;
|
|
47
|
-
private versionManager;
|
|
48
|
-
constructor(resources: AssetResource[], did: DIDDocument, credentials: VerifiableCredential[]);
|
|
49
|
-
migrate(toLayer: LayerType, details?: {
|
|
50
|
-
transactionId?: string;
|
|
51
|
-
inscriptionId?: string;
|
|
52
|
-
satoshi?: string;
|
|
53
|
-
commitTxId?: string;
|
|
54
|
-
revealTxId?: string;
|
|
55
|
-
feeRate?: number;
|
|
56
|
-
}): Promise<void>;
|
|
57
|
-
getProvenance(): ProvenanceChain;
|
|
58
|
-
recordTransfer(from: string, to: string, transactionId: string): Promise<void>;
|
|
59
|
-
/**
|
|
60
|
-
* Query provenance with fluent API
|
|
61
|
-
*/
|
|
62
|
-
queryProvenance(): ProvenanceQuery;
|
|
63
|
-
/**
|
|
64
|
-
* Get all migrations to a specific layer
|
|
65
|
-
*/
|
|
66
|
-
getMigrationsToLayer(layer: LayerType): Migration[];
|
|
67
|
-
/**
|
|
68
|
-
* Get all transfers from an address
|
|
69
|
-
*/
|
|
70
|
-
getTransfersFrom(address: string): Transfer[];
|
|
71
|
-
/**
|
|
72
|
-
* Get all transfers to an address
|
|
73
|
-
*/
|
|
74
|
-
getTransfersTo(address: string): Transfer[];
|
|
75
|
-
/**
|
|
76
|
-
* Get provenance summary
|
|
77
|
-
*/
|
|
78
|
-
getProvenanceSummary(): {
|
|
79
|
-
created: string;
|
|
80
|
-
creator: string;
|
|
81
|
-
currentLayer: LayerType;
|
|
82
|
-
migrationCount: number;
|
|
83
|
-
transferCount: number;
|
|
84
|
-
lastActivity: string;
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* Find migration or transfer by transaction ID
|
|
88
|
-
*/
|
|
89
|
-
findByTransactionId(txId: string): Migration | Transfer | null;
|
|
90
|
-
/**
|
|
91
|
-
* Find migration by inscription ID
|
|
92
|
-
*/
|
|
93
|
-
findByInscriptionId(inscriptionId: string): Migration | null;
|
|
94
|
-
verify(deps?: {
|
|
95
|
-
didManager?: DIDManager;
|
|
96
|
-
credentialManager?: CredentialManager;
|
|
97
|
-
fetch?: (url: string) => Promise<{
|
|
98
|
-
arrayBuffer: () => Promise<ArrayBuffer>;
|
|
99
|
-
}>;
|
|
100
|
-
}): Promise<boolean>;
|
|
101
|
-
/**
|
|
102
|
-
* Subscribe to an event
|
|
103
|
-
*
|
|
104
|
-
* @param eventType - The type of event to listen for
|
|
105
|
-
* @param handler - The handler function to call when the event is emitted
|
|
106
|
-
* @returns A function to unsubscribe the handler
|
|
107
|
-
*/
|
|
108
|
-
on<K extends keyof EventTypeMap>(eventType: K, handler: EventHandler<EventTypeMap[K]>): () => void;
|
|
109
|
-
/**
|
|
110
|
-
* Subscribe to an event for a single emission
|
|
111
|
-
*
|
|
112
|
-
* @param eventType - The type of event to listen for
|
|
113
|
-
* @param handler - The handler function to call when the event is emitted (only once)
|
|
114
|
-
* @returns A function to unsubscribe the handler
|
|
115
|
-
*/
|
|
116
|
-
once<K extends keyof EventTypeMap>(eventType: K, handler: EventHandler<EventTypeMap[K]>): () => void;
|
|
117
|
-
/**
|
|
118
|
-
* Unsubscribe from an event
|
|
119
|
-
*
|
|
120
|
-
* @param eventType - The type of event to stop listening for
|
|
121
|
-
* @param handler - The handler function to remove
|
|
122
|
-
*/
|
|
123
|
-
off<K extends keyof EventTypeMap>(eventType: K, handler: EventHandler<EventTypeMap[K]>): void;
|
|
124
|
-
/**
|
|
125
|
-
* Internal method for LifecycleManager to emit events
|
|
126
|
-
* This allows type-safe event emission without exposing the internal EventEmitter
|
|
127
|
-
*
|
|
128
|
-
* @internal
|
|
129
|
-
* @param event - The event to emit
|
|
130
|
-
*/
|
|
131
|
-
_internalEmit<K extends keyof EventTypeMap>(event: EventTypeMap[K]): Promise<void>;
|
|
132
|
-
/**
|
|
133
|
-
* Add a new version of a resource (immutable versioning).
|
|
134
|
-
* Creates a new AssetResource with incremented version number and links it to the previous version.
|
|
135
|
-
*
|
|
136
|
-
* @param resourceId - The logical resource ID
|
|
137
|
-
* @param newContent - The new content (string or Buffer)
|
|
138
|
-
* @param contentType - The content type
|
|
139
|
-
* @param changes - Optional description of changes
|
|
140
|
-
* @returns The newly created AssetResource
|
|
141
|
-
* @throws Error if content is unchanged or resource not found
|
|
142
|
-
*/
|
|
143
|
-
addResourceVersion(resourceId: string, newContent: string | Buffer, contentType: string, changes?: string): AssetResource;
|
|
144
|
-
/**
|
|
145
|
-
* Get a specific version of a resource
|
|
146
|
-
* @param resourceId - The logical resource ID
|
|
147
|
-
* @param version - The version number (1-indexed)
|
|
148
|
-
* @returns The AssetResource for that version, or null if not found
|
|
149
|
-
*/
|
|
150
|
-
getResourceVersion(resourceId: string, version: number): AssetResource | null;
|
|
151
|
-
/**
|
|
152
|
-
* Get all versions of a resource
|
|
153
|
-
* @param resourceId - The logical resource ID
|
|
154
|
-
* @returns Array of all AssetResource versions, sorted by version number
|
|
155
|
-
*/
|
|
156
|
-
getAllVersions(resourceId: string): AssetResource[];
|
|
157
|
-
/**
|
|
158
|
-
* Get the version history for a resource
|
|
159
|
-
* @param resourceId - The logical resource ID
|
|
160
|
-
* @returns ResourceHistory or null if resource not found
|
|
161
|
-
*/
|
|
162
|
-
getResourceHistory(resourceId: string): ResourceHistory | null;
|
|
163
|
-
private determineCurrentLayer;
|
|
164
|
-
}
|
|
@@ -1,380 +0,0 @@
|
|
|
1
|
-
import { validateDIDDocument, validateCredential, hashResource } from '../utils/validation';
|
|
2
|
-
import { CredentialManager } from '../vc/CredentialManager';
|
|
3
|
-
import { ProvenanceQuery } from './ProvenanceQuery';
|
|
4
|
-
import { EventEmitter } from '../events/EventEmitter';
|
|
5
|
-
import { ResourceVersionManager } from './ResourceVersioning';
|
|
6
|
-
export class OriginalsAsset {
|
|
7
|
-
constructor(resources, did, credentials) {
|
|
8
|
-
this.id = did.id;
|
|
9
|
-
this.resources = resources;
|
|
10
|
-
this.did = did;
|
|
11
|
-
this.credentials = credentials;
|
|
12
|
-
this.currentLayer = this.determineCurrentLayer(did.id);
|
|
13
|
-
this.provenance = {
|
|
14
|
-
createdAt: new Date().toISOString(),
|
|
15
|
-
creator: did.id,
|
|
16
|
-
migrations: [],
|
|
17
|
-
transfers: [],
|
|
18
|
-
resourceUpdates: []
|
|
19
|
-
};
|
|
20
|
-
this.eventEmitter = new EventEmitter();
|
|
21
|
-
this.versionManager = new ResourceVersionManager();
|
|
22
|
-
// Initialize version manager with existing resources
|
|
23
|
-
// Group resources by ID and sort each group by version to handle unsorted persisted data
|
|
24
|
-
const resourcesByIdMap = new Map();
|
|
25
|
-
for (const resource of resources) {
|
|
26
|
-
const existing = resourcesByIdMap.get(resource.id) || [];
|
|
27
|
-
existing.push(resource);
|
|
28
|
-
resourcesByIdMap.set(resource.id, existing);
|
|
29
|
-
}
|
|
30
|
-
// Process each resource ID's versions in sorted order
|
|
31
|
-
for (const [resourceId, resourceVersions] of resourcesByIdMap.entries()) {
|
|
32
|
-
// Sort by version number (ascending)
|
|
33
|
-
const sorted = resourceVersions.sort((a, b) => {
|
|
34
|
-
const versionA = a.version || 1;
|
|
35
|
-
const versionB = b.version || 1;
|
|
36
|
-
return versionA - versionB;
|
|
37
|
-
});
|
|
38
|
-
// Add versions in correct order to version manager
|
|
39
|
-
for (const resource of sorted) {
|
|
40
|
-
this.versionManager.addVersion(resource.id, resource.hash, resource.contentType, resource.previousVersionHash);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
async migrate(toLayer, details) {
|
|
45
|
-
// Handle migration between layers
|
|
46
|
-
const validTransitions = {
|
|
47
|
-
'did:peer': ['did:webvh', 'did:btco'],
|
|
48
|
-
'did:webvh': ['did:btco'],
|
|
49
|
-
'did:btco': [] // No further migrations possible
|
|
50
|
-
};
|
|
51
|
-
if (!validTransitions[this.currentLayer].includes(toLayer)) {
|
|
52
|
-
throw new Error(`Invalid migration from ${this.currentLayer} to ${toLayer}`);
|
|
53
|
-
}
|
|
54
|
-
const fromLayer = this.currentLayer;
|
|
55
|
-
this.provenance.migrations.push({
|
|
56
|
-
from: fromLayer,
|
|
57
|
-
to: toLayer,
|
|
58
|
-
timestamp: new Date().toISOString(),
|
|
59
|
-
transactionId: details?.transactionId,
|
|
60
|
-
inscriptionId: details?.inscriptionId,
|
|
61
|
-
satoshi: details?.satoshi,
|
|
62
|
-
commitTxId: details?.commitTxId,
|
|
63
|
-
revealTxId: details?.revealTxId,
|
|
64
|
-
feeRate: details?.feeRate
|
|
65
|
-
});
|
|
66
|
-
if (details?.transactionId) {
|
|
67
|
-
this.provenance.txid = details.transactionId;
|
|
68
|
-
}
|
|
69
|
-
this.currentLayer = toLayer;
|
|
70
|
-
// Emit migration event and await handlers
|
|
71
|
-
await this.eventEmitter.emit({
|
|
72
|
-
type: 'asset:migrated',
|
|
73
|
-
timestamp: new Date().toISOString(),
|
|
74
|
-
asset: {
|
|
75
|
-
id: this.id,
|
|
76
|
-
fromLayer,
|
|
77
|
-
toLayer
|
|
78
|
-
},
|
|
79
|
-
details
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
getProvenance() {
|
|
83
|
-
return this.provenance;
|
|
84
|
-
}
|
|
85
|
-
async recordTransfer(from, to, transactionId) {
|
|
86
|
-
this.provenance.transfers.push({
|
|
87
|
-
from,
|
|
88
|
-
to,
|
|
89
|
-
timestamp: new Date().toISOString(),
|
|
90
|
-
transactionId
|
|
91
|
-
});
|
|
92
|
-
this.provenance.txid = transactionId;
|
|
93
|
-
// Emit transfer event and await handlers
|
|
94
|
-
await this.eventEmitter.emit({
|
|
95
|
-
type: 'asset:transferred',
|
|
96
|
-
timestamp: new Date().toISOString(),
|
|
97
|
-
asset: {
|
|
98
|
-
id: this.id,
|
|
99
|
-
layer: this.currentLayer
|
|
100
|
-
},
|
|
101
|
-
from,
|
|
102
|
-
to,
|
|
103
|
-
transactionId
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Query provenance with fluent API
|
|
108
|
-
*/
|
|
109
|
-
queryProvenance() {
|
|
110
|
-
return new ProvenanceQuery(this.provenance);
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Get all migrations to a specific layer
|
|
114
|
-
*/
|
|
115
|
-
getMigrationsToLayer(layer) {
|
|
116
|
-
return this.provenance.migrations.filter(m => m.to === layer);
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Get all transfers from an address
|
|
120
|
-
*/
|
|
121
|
-
getTransfersFrom(address) {
|
|
122
|
-
return this.provenance.transfers.filter(t => t.from === address);
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Get all transfers to an address
|
|
126
|
-
*/
|
|
127
|
-
getTransfersTo(address) {
|
|
128
|
-
return this.provenance.transfers.filter(t => t.to === address);
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Get provenance summary
|
|
132
|
-
*/
|
|
133
|
-
getProvenanceSummary() {
|
|
134
|
-
const lastMigration = this.provenance.migrations[this.provenance.migrations.length - 1];
|
|
135
|
-
const lastTransfer = this.provenance.transfers[this.provenance.transfers.length - 1];
|
|
136
|
-
return {
|
|
137
|
-
created: this.provenance.createdAt,
|
|
138
|
-
creator: this.id,
|
|
139
|
-
currentLayer: this.currentLayer,
|
|
140
|
-
migrationCount: this.provenance.migrations.length,
|
|
141
|
-
transferCount: this.provenance.transfers.length,
|
|
142
|
-
lastActivity: lastTransfer?.timestamp || lastMigration?.timestamp || this.provenance.createdAt
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Find migration or transfer by transaction ID
|
|
147
|
-
*/
|
|
148
|
-
findByTransactionId(txId) {
|
|
149
|
-
const migration = this.provenance.migrations.find(m => m.transactionId === txId);
|
|
150
|
-
if (migration)
|
|
151
|
-
return migration;
|
|
152
|
-
const transfer = this.provenance.transfers.find(t => t.transactionId === txId);
|
|
153
|
-
return transfer || null;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Find migration by inscription ID
|
|
157
|
-
*/
|
|
158
|
-
findByInscriptionId(inscriptionId) {
|
|
159
|
-
return this.provenance.migrations.find(m => m.inscriptionId === inscriptionId) || null;
|
|
160
|
-
}
|
|
161
|
-
async verify(deps) {
|
|
162
|
-
try {
|
|
163
|
-
// 1) DID Document validation (structure + supported method via validateDID)
|
|
164
|
-
if (!validateDIDDocument(this.did)) {
|
|
165
|
-
return false;
|
|
166
|
-
}
|
|
167
|
-
// 2) Resources integrity
|
|
168
|
-
for (const res of this.resources) {
|
|
169
|
-
if (!res || typeof res.id !== 'string' || typeof res.type !== 'string' || typeof res.contentType !== 'string') {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
if (typeof res.hash !== 'string' || !/[0-9a-f]+/i.test(res.hash)) {
|
|
173
|
-
return false;
|
|
174
|
-
}
|
|
175
|
-
// If inline content is present, verify by hashing it
|
|
176
|
-
if (typeof res.content === 'string') {
|
|
177
|
-
const data = Buffer.from(res.content, 'utf8');
|
|
178
|
-
const computed = hashResource(data);
|
|
179
|
-
const expected = (res.hash || '').toLowerCase();
|
|
180
|
-
if (computed.toLowerCase() !== expected) {
|
|
181
|
-
return false;
|
|
182
|
-
}
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
// If URL present and fetch is provided, attempt to fetch and hash
|
|
186
|
-
if (typeof res.url === 'string' && deps?.fetch) {
|
|
187
|
-
try {
|
|
188
|
-
const response = await deps.fetch(res.url);
|
|
189
|
-
const buf = Buffer.from(await response.arrayBuffer());
|
|
190
|
-
const computed = hashResource(buf);
|
|
191
|
-
const expected = (res.hash || '').toLowerCase();
|
|
192
|
-
if (computed.toLowerCase() !== expected) {
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
catch {
|
|
197
|
-
// On fetch error, treat as unverifiable but do not fail the entire asset
|
|
198
|
-
// Fall back to structural validation only
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
// 3) Credentials validation
|
|
203
|
-
for (const cred of this.credentials) {
|
|
204
|
-
if (!validateCredential(cred)) {
|
|
205
|
-
return false;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
// If a credentialManager with didManager is provided, verify each credential cryptographically
|
|
209
|
-
if (deps?.credentialManager && deps.credentialManager instanceof CredentialManager && deps?.didManager) {
|
|
210
|
-
for (const cred of this.credentials) {
|
|
211
|
-
const ok = await deps.credentialManager.verifyCredential(cred);
|
|
212
|
-
if (!ok)
|
|
213
|
-
return false;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
return true;
|
|
217
|
-
}
|
|
218
|
-
catch {
|
|
219
|
-
return false;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Subscribe to an event
|
|
224
|
-
*
|
|
225
|
-
* @param eventType - The type of event to listen for
|
|
226
|
-
* @param handler - The handler function to call when the event is emitted
|
|
227
|
-
* @returns A function to unsubscribe the handler
|
|
228
|
-
*/
|
|
229
|
-
on(eventType, handler) {
|
|
230
|
-
return this.eventEmitter.on(eventType, handler);
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Subscribe to an event for a single emission
|
|
234
|
-
*
|
|
235
|
-
* @param eventType - The type of event to listen for
|
|
236
|
-
* @param handler - The handler function to call when the event is emitted (only once)
|
|
237
|
-
* @returns A function to unsubscribe the handler
|
|
238
|
-
*/
|
|
239
|
-
once(eventType, handler) {
|
|
240
|
-
return this.eventEmitter.once(eventType, handler);
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Unsubscribe from an event
|
|
244
|
-
*
|
|
245
|
-
* @param eventType - The type of event to stop listening for
|
|
246
|
-
* @param handler - The handler function to remove
|
|
247
|
-
*/
|
|
248
|
-
off(eventType, handler) {
|
|
249
|
-
this.eventEmitter.off(eventType, handler);
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* Internal method for LifecycleManager to emit events
|
|
253
|
-
* This allows type-safe event emission without exposing the internal EventEmitter
|
|
254
|
-
*
|
|
255
|
-
* @internal
|
|
256
|
-
* @param event - The event to emit
|
|
257
|
-
*/
|
|
258
|
-
_internalEmit(event) {
|
|
259
|
-
return this.eventEmitter.emit(event);
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Add a new version of a resource (immutable versioning).
|
|
263
|
-
* Creates a new AssetResource with incremented version number and links it to the previous version.
|
|
264
|
-
*
|
|
265
|
-
* @param resourceId - The logical resource ID
|
|
266
|
-
* @param newContent - The new content (string or Buffer)
|
|
267
|
-
* @param contentType - The content type
|
|
268
|
-
* @param changes - Optional description of changes
|
|
269
|
-
* @returns The newly created AssetResource
|
|
270
|
-
* @throws Error if content is unchanged or resource not found
|
|
271
|
-
*/
|
|
272
|
-
addResourceVersion(resourceId, newContent, contentType, changes) {
|
|
273
|
-
// Find the current version of the resource by id
|
|
274
|
-
const currentResources = this.resources.filter(r => r.id === resourceId);
|
|
275
|
-
if (currentResources.length === 0) {
|
|
276
|
-
throw new Error(`Resource with id ${resourceId} not found`);
|
|
277
|
-
}
|
|
278
|
-
// Get the latest version
|
|
279
|
-
const currentResource = currentResources.sort((a, b) => {
|
|
280
|
-
const versionA = a.version || 1;
|
|
281
|
-
const versionB = b.version || 1;
|
|
282
|
-
return versionB - versionA;
|
|
283
|
-
})[0];
|
|
284
|
-
// Compute new hash
|
|
285
|
-
const contentBuffer = typeof newContent === 'string'
|
|
286
|
-
? Buffer.from(newContent, 'utf-8')
|
|
287
|
-
: newContent;
|
|
288
|
-
const newHash = hashResource(contentBuffer);
|
|
289
|
-
// Check if content has actually changed
|
|
290
|
-
if (newHash === currentResource.hash) {
|
|
291
|
-
throw new Error('Content unchanged - new version would be identical to current version');
|
|
292
|
-
}
|
|
293
|
-
// Create new resource version
|
|
294
|
-
const newVersion = (currentResource.version || 1) + 1;
|
|
295
|
-
const newResource = {
|
|
296
|
-
id: resourceId,
|
|
297
|
-
type: currentResource.type,
|
|
298
|
-
content: typeof newContent === 'string' ? newContent : undefined,
|
|
299
|
-
contentType,
|
|
300
|
-
hash: newHash,
|
|
301
|
-
size: contentBuffer.length,
|
|
302
|
-
version: newVersion,
|
|
303
|
-
previousVersionHash: currentResource.hash,
|
|
304
|
-
createdAt: new Date().toISOString()
|
|
305
|
-
};
|
|
306
|
-
// Add to resources array (immutable - don't modify old resource)
|
|
307
|
-
this.resources.push(newResource);
|
|
308
|
-
// Track in version manager
|
|
309
|
-
this.versionManager.addVersion(resourceId, newHash, contentType, currentResource.hash, changes);
|
|
310
|
-
// Update provenance
|
|
311
|
-
const timestamp = new Date().toISOString();
|
|
312
|
-
this.provenance.resourceUpdates.push({
|
|
313
|
-
resourceId,
|
|
314
|
-
fromVersion: currentResource.version || 1,
|
|
315
|
-
toVersion: newVersion,
|
|
316
|
-
fromHash: currentResource.hash,
|
|
317
|
-
toHash: newHash,
|
|
318
|
-
timestamp,
|
|
319
|
-
changes
|
|
320
|
-
});
|
|
321
|
-
// Emit version-created event
|
|
322
|
-
const event = {
|
|
323
|
-
type: 'resource:version:created',
|
|
324
|
-
timestamp,
|
|
325
|
-
asset: {
|
|
326
|
-
id: this.id
|
|
327
|
-
},
|
|
328
|
-
resource: {
|
|
329
|
-
id: resourceId,
|
|
330
|
-
fromVersion: currentResource.version || 1,
|
|
331
|
-
toVersion: newVersion,
|
|
332
|
-
fromHash: currentResource.hash,
|
|
333
|
-
toHash: newHash
|
|
334
|
-
},
|
|
335
|
-
changes
|
|
336
|
-
};
|
|
337
|
-
// Emit asynchronously (don't block)
|
|
338
|
-
queueMicrotask(() => {
|
|
339
|
-
this.eventEmitter.emit(event);
|
|
340
|
-
});
|
|
341
|
-
return newResource;
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* Get a specific version of a resource
|
|
345
|
-
* @param resourceId - The logical resource ID
|
|
346
|
-
* @param version - The version number (1-indexed)
|
|
347
|
-
* @returns The AssetResource for that version, or null if not found
|
|
348
|
-
*/
|
|
349
|
-
getResourceVersion(resourceId, version) {
|
|
350
|
-
const resource = this.resources.find(r => r.id === resourceId && (r.version || 1) === version);
|
|
351
|
-
return resource || null;
|
|
352
|
-
}
|
|
353
|
-
/**
|
|
354
|
-
* Get all versions of a resource
|
|
355
|
-
* @param resourceId - The logical resource ID
|
|
356
|
-
* @returns Array of all AssetResource versions, sorted by version number
|
|
357
|
-
*/
|
|
358
|
-
getAllVersions(resourceId) {
|
|
359
|
-
return this.resources
|
|
360
|
-
.filter(r => r.id === resourceId)
|
|
361
|
-
.sort((a, b) => (a.version || 1) - (b.version || 1));
|
|
362
|
-
}
|
|
363
|
-
/**
|
|
364
|
-
* Get the version history for a resource
|
|
365
|
-
* @param resourceId - The logical resource ID
|
|
366
|
-
* @returns ResourceHistory or null if resource not found
|
|
367
|
-
*/
|
|
368
|
-
getResourceHistory(resourceId) {
|
|
369
|
-
return this.versionManager.getHistory(resourceId);
|
|
370
|
-
}
|
|
371
|
-
determineCurrentLayer(didId) {
|
|
372
|
-
if (didId.startsWith('did:peer:'))
|
|
373
|
-
return 'did:peer';
|
|
374
|
-
if (didId.startsWith('did:webvh:'))
|
|
375
|
-
return 'did:webvh';
|
|
376
|
-
if (didId.startsWith('did:btco:'))
|
|
377
|
-
return 'did:btco';
|
|
378
|
-
throw new Error('Unknown DID method');
|
|
379
|
-
}
|
|
380
|
-
}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { ProvenanceChain } from './OriginalsAsset';
|
|
2
|
-
import { LayerType } from '../types';
|
|
3
|
-
export type Migration = ProvenanceChain['migrations'][number];
|
|
4
|
-
export type Transfer = ProvenanceChain['transfers'][number];
|
|
5
|
-
/**
|
|
6
|
-
* Base query class for provenance inspection
|
|
7
|
-
*/
|
|
8
|
-
export declare class ProvenanceQuery {
|
|
9
|
-
protected provenance: ProvenanceChain;
|
|
10
|
-
protected afterDate?: Date;
|
|
11
|
-
protected beforeDate?: Date;
|
|
12
|
-
constructor(provenance: ProvenanceChain);
|
|
13
|
-
/**
|
|
14
|
-
* Query migrations
|
|
15
|
-
*/
|
|
16
|
-
migrations(): MigrationQuery;
|
|
17
|
-
/**
|
|
18
|
-
* Query transfers
|
|
19
|
-
*/
|
|
20
|
-
transfers(): TransferQuery;
|
|
21
|
-
/**
|
|
22
|
-
* Filter by date range - after a specific date
|
|
23
|
-
*/
|
|
24
|
-
after(date: Date | string): this;
|
|
25
|
-
/**
|
|
26
|
-
* Filter by date range - before a specific date
|
|
27
|
-
*/
|
|
28
|
-
before(date: Date | string): this;
|
|
29
|
-
/**
|
|
30
|
-
* Filter by date range - between two dates
|
|
31
|
-
*/
|
|
32
|
-
between(start: Date | string, end: Date | string): this;
|
|
33
|
-
/**
|
|
34
|
-
* Get count of results
|
|
35
|
-
*/
|
|
36
|
-
count(): number;
|
|
37
|
-
/**
|
|
38
|
-
* Get first result
|
|
39
|
-
*/
|
|
40
|
-
first(): Migration | Transfer | null;
|
|
41
|
-
/**
|
|
42
|
-
* Get last result
|
|
43
|
-
*/
|
|
44
|
-
last(): Migration | Transfer | null;
|
|
45
|
-
/**
|
|
46
|
-
* Get all results
|
|
47
|
-
*/
|
|
48
|
-
all(): Array<Migration | Transfer>;
|
|
49
|
-
/**
|
|
50
|
-
* Apply date filters to items
|
|
51
|
-
*/
|
|
52
|
-
protected applyDateFilters<T extends {
|
|
53
|
-
timestamp: string;
|
|
54
|
-
}>(items: T[]): T[];
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Query class for migrations
|
|
58
|
-
*/
|
|
59
|
-
export declare class MigrationQuery extends ProvenanceQuery {
|
|
60
|
-
private fromLayerFilter?;
|
|
61
|
-
private toLayerFilter?;
|
|
62
|
-
private transactionIdFilter?;
|
|
63
|
-
private inscriptionIdFilter?;
|
|
64
|
-
constructor(provenance: ProvenanceChain, afterDate?: Date, beforeDate?: Date);
|
|
65
|
-
/**
|
|
66
|
-
* Filter by source layer
|
|
67
|
-
*/
|
|
68
|
-
fromLayer(layer: LayerType): this;
|
|
69
|
-
/**
|
|
70
|
-
* Filter by destination layer
|
|
71
|
-
*/
|
|
72
|
-
toLayer(layer: LayerType): this;
|
|
73
|
-
/**
|
|
74
|
-
* Filter by transaction ID
|
|
75
|
-
*/
|
|
76
|
-
withTransaction(txId: string): this;
|
|
77
|
-
/**
|
|
78
|
-
* Filter by inscription ID
|
|
79
|
-
*/
|
|
80
|
-
withInscription(inscriptionId: string): this;
|
|
81
|
-
/**
|
|
82
|
-
* Get all filtered migrations
|
|
83
|
-
*/
|
|
84
|
-
all(): Migration[];
|
|
85
|
-
/**
|
|
86
|
-
* Override migrations to return this (method chaining)
|
|
87
|
-
*/
|
|
88
|
-
migrations(): MigrationQuery;
|
|
89
|
-
/**
|
|
90
|
-
* Override transfers to create new TransferQuery with date filters
|
|
91
|
-
*/
|
|
92
|
-
transfers(): TransferQuery;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Query class for transfers
|
|
96
|
-
*/
|
|
97
|
-
export declare class TransferQuery extends ProvenanceQuery {
|
|
98
|
-
private fromAddressFilter?;
|
|
99
|
-
private toAddressFilter?;
|
|
100
|
-
private transactionIdFilter?;
|
|
101
|
-
constructor(provenance: ProvenanceChain, afterDate?: Date, beforeDate?: Date);
|
|
102
|
-
/**
|
|
103
|
-
* Filter by source address
|
|
104
|
-
*/
|
|
105
|
-
from(address: string): this;
|
|
106
|
-
/**
|
|
107
|
-
* Filter by destination address
|
|
108
|
-
*/
|
|
109
|
-
to(address: string): this;
|
|
110
|
-
/**
|
|
111
|
-
* Filter by transaction ID
|
|
112
|
-
*/
|
|
113
|
-
withTransaction(txId: string): this;
|
|
114
|
-
/**
|
|
115
|
-
* Get all filtered transfers
|
|
116
|
-
*/
|
|
117
|
-
all(): Transfer[];
|
|
118
|
-
/**
|
|
119
|
-
* Override transfers to return this (method chaining)
|
|
120
|
-
*/
|
|
121
|
-
transfers(): TransferQuery;
|
|
122
|
-
/**
|
|
123
|
-
* Override migrations to create new MigrationQuery with date filters
|
|
124
|
-
*/
|
|
125
|
-
migrations(): MigrationQuery;
|
|
126
|
-
}
|