@keetanetwork/anchor 0.0.52 → 0.0.58

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 (70) hide show
  1. package/lib/asset.d.ts +18 -4
  2. package/lib/asset.d.ts.map +1 -1
  3. package/lib/asset.js +18 -0
  4. package/lib/asset.js.map +1 -1
  5. package/lib/chaining-graph.cli.d.ts +2 -0
  6. package/lib/chaining-graph.cli.d.ts.map +1 -0
  7. package/lib/chaining-graph.cli.js +257 -0
  8. package/lib/chaining-graph.cli.js.map +1 -0
  9. package/lib/chaining.d.ts +247 -0
  10. package/lib/chaining.d.ts.map +1 -0
  11. package/lib/chaining.js +1187 -0
  12. package/lib/chaining.js.map +1 -0
  13. package/lib/metadata.types.d.ts +28 -0
  14. package/lib/metadata.types.d.ts.map +1 -0
  15. package/lib/metadata.types.generated.d.ts +3 -0
  16. package/lib/metadata.types.generated.d.ts.map +1 -0
  17. package/lib/metadata.types.generated.js +15 -0
  18. package/lib/metadata.types.generated.js.map +1 -0
  19. package/lib/metadata.types.js +50 -0
  20. package/lib/metadata.types.js.map +1 -0
  21. package/lib/resolver.d.ts +15 -19
  22. package/lib/resolver.d.ts.map +1 -1
  23. package/lib/resolver.js +1101 -469
  24. package/lib/resolver.js.map +1 -1
  25. package/npm-shrinkwrap.json +2 -2
  26. package/package.json +1 -1
  27. package/services/asset-movement/client.d.ts +12 -5
  28. package/services/asset-movement/client.d.ts.map +1 -1
  29. package/services/asset-movement/client.js +190 -9
  30. package/services/asset-movement/client.js.map +1 -1
  31. package/services/asset-movement/common.d.ts +119 -60
  32. package/services/asset-movement/common.d.ts.map +1 -1
  33. package/services/asset-movement/common.generated.d.ts +48 -0
  34. package/services/asset-movement/common.generated.d.ts.map +1 -0
  35. package/services/asset-movement/common.generated.js +37425 -0
  36. package/services/asset-movement/common.generated.js.map +1 -0
  37. package/services/asset-movement/common.js +22 -35368
  38. package/services/asset-movement/common.js.map +1 -1
  39. package/services/asset-movement/lib/location.d.ts +10 -1
  40. package/services/asset-movement/lib/location.d.ts.map +1 -1
  41. package/services/asset-movement/lib/location.generated.d.ts +2 -1
  42. package/services/asset-movement/lib/location.generated.d.ts.map +1 -1
  43. package/services/asset-movement/lib/location.generated.js +23 -0
  44. package/services/asset-movement/lib/location.generated.js.map +1 -1
  45. package/services/asset-movement/lib/location.js +3 -0
  46. package/services/asset-movement/lib/location.js.map +1 -1
  47. package/services/asset-movement/server.d.ts +17 -6
  48. package/services/asset-movement/server.d.ts.map +1 -1
  49. package/services/asset-movement/server.js +47 -2
  50. package/services/asset-movement/server.js.map +1 -1
  51. package/services/fx/client.d.ts +3 -2
  52. package/services/fx/client.d.ts.map +1 -1
  53. package/services/fx/client.js +8 -3
  54. package/services/fx/client.js.map +1 -1
  55. package/services/fx/server.d.ts +2 -1
  56. package/services/fx/server.d.ts.map +1 -1
  57. package/services/fx/server.js +3 -0
  58. package/services/fx/server.js.map +1 -1
  59. package/services/storage/clients/contacts.generated.js +142 -90
  60. package/services/storage/clients/contacts.generated.js.map +1 -1
  61. package/services/storage/common.d.ts +61 -16
  62. package/services/storage/common.d.ts.map +1 -1
  63. package/services/storage/common.js.map +1 -1
  64. package/services/storage/server.d.ts.map +1 -1
  65. package/services/storage/server.js +35 -22
  66. package/services/storage/server.js.map +1 -1
  67. package/services/storage/test-utils.d.ts +7 -2
  68. package/services/storage/test-utils.d.ts.map +1 -1
  69. package/services/storage/test-utils.js +22 -4
  70. package/services/storage/test-utils.js.map +1 -1
@@ -0,0 +1,247 @@
1
+ import type { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';
2
+ import { KeetaNet } from "../client/index.js";
3
+ import type { AssetLocationLike, AssetTransferInstructions, PickChainLocation, Rail, RecipientResolved } from "../services/asset-movement/common.js";
4
+ import type { Resolver } from "./index.js";
5
+ import type { ISOCurrencyCode } from '@keetanetwork/currency-info';
6
+ import type { Account, GenericAccount, TokenAddress } from '@keetanetwork/keetanet-client/lib/account.js';
7
+ import KeetaFXAnchorClient from '../services/fx/client.js';
8
+ import KeetaAssetMovementAnchorClient from '../services/asset-movement/client.js';
9
+ import type { ExternalChainAsset } from './asset.js';
10
+ import type { Logger } from './log/index.js';
11
+ import type { BlockHash } from '@keetanetwork/keetanet-client/lib/block/index.js';
12
+ type FXQuoteOrEstimate = NonNullable<Awaited<ReturnType<KeetaFXAnchorClient['getQuotesOrEstimates']>>>[number];
13
+ type AssetMovementProvider = NonNullable<Awaited<ReturnType<KeetaAssetMovementAnchorClient['getProvidersForTransfer']>>>[number];
14
+ type AssetMovementTransfer = Awaited<ReturnType<AssetMovementProvider['initiateTransfer']>>;
15
+ type FXExchange = Awaited<ReturnType<FXQuoteOrEstimate['createExchange']>>;
16
+ interface ChainStepResolutionBase<Type extends 'fx' | 'assetMovement' | 'keetaSend'> {
17
+ type: Type;
18
+ valueIn: bigint;
19
+ valueOut: bigint;
20
+ step: Type extends 'keetaSend' ? null : Extract<GraphNodeLike, {
21
+ type: Type;
22
+ }>;
23
+ }
24
+ interface ChainStepResolutionFX extends ChainStepResolutionBase<'fx'> {
25
+ type: 'fx';
26
+ result: FXQuoteOrEstimate;
27
+ }
28
+ type SendingToType = 'SELF' | 'NEXT_STEP' | 'FINAL_DESTINATION';
29
+ interface ChainStepResolutionAssetMovement extends ChainStepResolutionBase<'assetMovement'> {
30
+ usingInstruction: AssetTransferInstructions;
31
+ sendingTo: SendingToType;
32
+ transfer: AssetMovementTransfer;
33
+ }
34
+ interface ChainStepResolutionKeetaSend extends ChainStepResolutionBase<'keetaSend'> {
35
+ usingInstruction: Extract<AssetTransferInstructions, {
36
+ type: 'KEETA_SEND';
37
+ }>;
38
+ }
39
+ export type ChainStepResolution = ChainStepResolutionFX | ChainStepResolutionAssetMovement | ChainStepResolutionKeetaSend;
40
+ type AnchorChainingPathComputedPlan = {
41
+ steps: ChainStepResolution[];
42
+ totalValueIn: bigint;
43
+ totalValueOut: bigint;
44
+ };
45
+ type ExecutedStepFX = {
46
+ type: 'fx';
47
+ plan: ChainStepResolutionFX;
48
+ exchange: FXExchange;
49
+ };
50
+ type ExecutedStepAssetMovement = {
51
+ type: 'assetMovement';
52
+ plan: ChainStepResolutionAssetMovement;
53
+ };
54
+ type ExecutedStepKeetaSend = {
55
+ type: 'keetaSend';
56
+ plan: ChainStepResolutionKeetaSend;
57
+ };
58
+ export type ExecutedStep = ExecutedStepFX | ExecutedStepAssetMovement | ExecutedStepKeetaSend;
59
+ export type AnchorChainingPathExecuteResult = {
60
+ steps: ExecutedStep[];
61
+ };
62
+ export type AnchorChainingPathExecuteOptions = {
63
+ requireSendAuth?: boolean;
64
+ };
65
+ export type AnchorChainingPathState = {
66
+ status: 'idle';
67
+ } | {
68
+ status: 'executing';
69
+ completedSteps: ExecutedStep[];
70
+ currentStepIndex: number;
71
+ } | {
72
+ status: 'completed';
73
+ result: AnchorChainingPathExecuteResult;
74
+ } | {
75
+ status: 'failed';
76
+ error: Error;
77
+ completedSteps: ExecutedStep[];
78
+ failedAtStepIndex: number;
79
+ };
80
+ interface StepNeededActionEventPayloadBase<ActionType, ActionPayload, CompletedPayload extends readonly unknown[] = []> {
81
+ type: ActionType;
82
+ markCompleted: (...args: CompletedPayload) => void;
83
+ markFailed: (error?: unknown) => void;
84
+ action: ActionPayload;
85
+ }
86
+ interface StepNeededActionEventAssetMovement extends StepNeededActionEventPayloadBase<'assetMovementUserExecutionRequired', {
87
+ assetMovementTransfer: AssetMovementTransfer;
88
+ }, []> {
89
+ }
90
+ interface StepNeededActionEventKeetaSend extends StepNeededActionEventPayloadBase<'keetaSendAuthRequired', {
91
+ sendToAddress: GenericAccount;
92
+ value: bigint;
93
+ token: TokenAddress;
94
+ external?: string;
95
+ }, [{
96
+ sent: boolean | BlockHash;
97
+ }]> {
98
+ }
99
+ type StepNeededActionEventPayload = StepNeededActionEventKeetaSend | StepNeededActionEventAssetMovement;
100
+ type AnchorChainingPathEventMap = {
101
+ stateChange: [state: AnchorChainingPathState];
102
+ stepExecuted: [step: ExecutedStep, index: number];
103
+ completed: [result: AnchorChainingPathExecuteResult];
104
+ failed: [error: Error, completedSteps: ExecutedStep[], failedAtStepIndex: number];
105
+ stepNeedsAction: [StepNeededActionEventPayload];
106
+ };
107
+ interface AnchorChainingAssetAndLocation<AssetType extends AnchorChainingAsset = AnchorChainingAsset, Location extends AssetLocationLike = AssetLocationLike> {
108
+ asset: AssetType;
109
+ location: Location;
110
+ rail: Rail;
111
+ value?: bigint;
112
+ }
113
+ interface AnchorChainingDestination extends AnchorChainingAssetAndLocation {
114
+ recipient: RecipientResolved;
115
+ }
116
+ interface AnchorChainingPathInput {
117
+ source: AnchorChainingAssetAndLocation;
118
+ destination: AnchorChainingDestination;
119
+ }
120
+ export interface AnchorChainingConfig {
121
+ client: KeetaNet.UserClient;
122
+ resolver?: Resolver;
123
+ signer?: InstanceType<typeof KeetaNetLib.Account>;
124
+ account?: InstanceType<typeof KeetaNetLib.Account>;
125
+ logger?: Logger;
126
+ }
127
+ interface BaseGraphNodeLike<Type extends 'fx' | 'assetMovement', AssetType extends AnchorChainingAsset> {
128
+ type: Type;
129
+ providerID: string;
130
+ from: AnchorChainingAssetAndLocation<AssetType>;
131
+ to: AnchorChainingAssetAndLocation<AssetType>;
132
+ }
133
+ interface FXGraphNode extends BaseGraphNodeLike<'fx', Exclude<AnchorChainingAsset, ExternalChainAsset>> {
134
+ }
135
+ interface AssetMovementGraphNode extends BaseGraphNodeLike<'assetMovement', AnchorChainingAsset> {
136
+ }
137
+ export type GraphNodeLike = FXGraphNode | AssetMovementGraphNode;
138
+ type KeetaLocationLike = Extract<AssetLocationLike, `chain:keeta:${bigint}`> | PickChainLocation<'keeta'>;
139
+ interface KeetaSendStepLike {
140
+ type: 'keetaSend';
141
+ providerID?: null;
142
+ from: AnchorChainingAssetAndLocation<AnchorChainingAsset, KeetaLocationLike>;
143
+ to: AnchorChainingAssetAndLocation<AnchorChainingAsset, KeetaLocationLike>;
144
+ }
145
+ export type AnchorChainingStepLike = GraphNodeLike | KeetaSendStepLike;
146
+ export type AnchorChainingAsset = TokenAddress | ISOCurrencyCode | ExternalChainAsset;
147
+ export type AnchorChainingListAssetsSideFilter = {
148
+ location?: AssetLocationLike;
149
+ asset?: AnchorChainingAsset;
150
+ rail?: Rail;
151
+ };
152
+ type AnchorChainingListAssetsShared = {
153
+ maxStepCount?: number;
154
+ onlyAllowFXLike?: boolean;
155
+ };
156
+ export type AnchorChainingListAssetsFilter = ({
157
+ from: AnchorChainingListAssetsSideFilter;
158
+ to?: never;
159
+ } & AnchorChainingListAssetsShared) | ({
160
+ to: AnchorChainingListAssetsSideFilter;
161
+ from?: never;
162
+ } & AnchorChainingListAssetsShared) | ({
163
+ from?: never;
164
+ to?: never;
165
+ } & AnchorChainingListAssetsShared);
166
+ export type AnchorChainingResolveAssetsFilter = {
167
+ from?: AnchorChainingListAssetsSideFilter;
168
+ to?: AnchorChainingListAssetsSideFilter;
169
+ maxStepCount?: number;
170
+ onlyAllowFXLike?: boolean;
171
+ };
172
+ export interface AnchorChainingResolveAssetsResult {
173
+ from: AnchorChainingAssetInfo[];
174
+ to: AnchorChainingAssetInfo[];
175
+ }
176
+ export interface AnchorChainingAssetInfo {
177
+ asset: AnchorChainingAsset;
178
+ location: AssetLocationLike;
179
+ rails: {
180
+ inbound: Rail[];
181
+ outbound: Rail[];
182
+ };
183
+ distance: {
184
+ pathLength: number;
185
+ } | null;
186
+ }
187
+ type GetAccountForActionPayload = {
188
+ type: 'assetMovement';
189
+ providerMethod: 'initiateTransfer';
190
+ provider: AssetMovementProvider;
191
+ };
192
+ interface AnchorChainingAccountOverrides {
193
+ account?: Account | undefined | ((providerMethodPayload: GetAccountForActionPayload) => Promise<Account> | Account);
194
+ }
195
+ declare class AnchorGraph {
196
+ #private;
197
+ client: KeetaNet.UserClient;
198
+ resolver: Resolver;
199
+ logger?: Logger | undefined;
200
+ constructor(args: {
201
+ client: KeetaNet.UserClient;
202
+ resolver: Resolver;
203
+ logger?: Logger | undefined;
204
+ });
205
+ computeGraphNodes(): Promise<GraphNodeLike[]>;
206
+ findPaths(input: AnchorChainingPathInput): Promise<GraphNodeLike[][]>;
207
+ resolveAssets(filter?: AnchorChainingResolveAssetsFilter): Promise<AnchorChainingResolveAssetsResult>;
208
+ listAssets(filter?: AnchorChainingListAssetsFilter): Promise<AnchorChainingAssetInfo[]>;
209
+ }
210
+ interface ComputePlanOptions {
211
+ overrides?: AnchorChainingAccountOverrides;
212
+ }
213
+ export declare class AnchorChainingPath {
214
+ readonly request: AnchorChainingPathInput;
215
+ readonly path: AnchorChainingStepLike[];
216
+ readonly parent: AnchorChaining;
217
+ constructor(input: {
218
+ request: AnchorChainingPathInput;
219
+ path: AnchorChainingStepLike[];
220
+ parent: AnchorChaining;
221
+ });
222
+ protected getAccountForAction(action: GetAccountForActionPayload, overrides?: AnchorChainingAccountOverrides): Promise<Account | undefined>;
223
+ }
224
+ export declare class AnchorChainingPlan extends AnchorChainingPath {
225
+ #private;
226
+ private constructor();
227
+ get plan(): AnchorChainingPathComputedPlan;
228
+ static create(path: AnchorChainingPath, options?: ComputePlanOptions): Promise<AnchorChainingPlan>;
229
+ get state(): AnchorChainingPathState;
230
+ on<E extends keyof AnchorChainingPathEventMap>(event: E, listener: (...args: AnchorChainingPathEventMap[E]) => void): void;
231
+ off<E extends keyof AnchorChainingPathEventMap>(event: E, listener: (...args: AnchorChainingPathEventMap[E]) => void): void;
232
+ get logger(): Logger | undefined;
233
+ execute(options?: {
234
+ requireSendAuth?: boolean;
235
+ }): Promise<AnchorChainingPathExecuteResult>;
236
+ }
237
+ export declare class AnchorChaining {
238
+ private client;
239
+ private resolver;
240
+ readonly graph: AnchorGraph;
241
+ private logger?;
242
+ constructor(config: AnchorChainingConfig);
243
+ getPaths(input: AnchorChainingPathInput): Promise<AnchorChainingPath[] | null>;
244
+ getPlans(input: AnchorChainingPathInput, options?: ComputePlanOptions): Promise<AnchorChainingPlan[] | null>;
245
+ }
246
+ export {};
247
+ //# sourceMappingURL=chaining.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chaining.d.ts","sourceRoot":"","sources":["../../src/lib/chaining.ts"],"names":[],"mappings":"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"}