@settlemint/dalp-cli 3.0.7-main.28619722466 → 3.0.7-main.28642122124
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/dist/dalp.js +168 -8
- package/package.json +1 -1
package/dist/dalp.js
CHANGED
|
@@ -133591,6 +133591,23 @@ var InvitationV2InviteWithRolesOutputSchema = exports_external.object({
|
|
|
133591
133591
|
onChainRoles: exports_external.array(systemAccessControlRole),
|
|
133592
133592
|
expiresAt: timestamp()
|
|
133593
133593
|
});
|
|
133594
|
+
var InvitationV2ResendWithRolesInputSchema = exports_external.object({
|
|
133595
|
+
invitationId: exports_external.string().min(1, "invitationId is required"),
|
|
133596
|
+
walletVerification: UserVerificationSchema.optional()
|
|
133597
|
+
});
|
|
133598
|
+
var InvitationV2ResendWithRolesOutputSchema = exports_external.object({
|
|
133599
|
+
id: exports_external.string(),
|
|
133600
|
+
email: exports_external.string(),
|
|
133601
|
+
role: exports_external.string(),
|
|
133602
|
+
status: exports_external.enum(["pending", "accepted", "rejected", "canceled"]),
|
|
133603
|
+
expiresAt: timestamp()
|
|
133604
|
+
});
|
|
133605
|
+
var InvitationV2HasOnChainRolesParamsSchema = exports_external.object({
|
|
133606
|
+
invitationId: exports_external.string().min(1, "invitationId is required")
|
|
133607
|
+
});
|
|
133608
|
+
var InvitationV2HasOnChainRolesOutputSchema = exports_external.object({
|
|
133609
|
+
hasOnChainRoles: exports_external.boolean()
|
|
133610
|
+
});
|
|
133594
133611
|
var TAGS30 = [V2_TAG.invitation];
|
|
133595
133612
|
var deploy = v2Contract.route({
|
|
133596
133613
|
method: "POST",
|
|
@@ -133634,13 +133651,29 @@ var inviteWithRoles = v2Contract.route({
|
|
|
133634
133651
|
successDescription: "Invitation created with the selected on-chain roles recorded and authorized.",
|
|
133635
133652
|
tags: [...TAGS30]
|
|
133636
133653
|
}).input(v2Input.body(InvitationV2InviteWithRolesInputSchema)).output(InvitationV2InviteWithRolesOutputSchema);
|
|
133654
|
+
var resendWithRoles = v2Contract.route({
|
|
133655
|
+
method: "POST",
|
|
133656
|
+
path: "/role-invitation-resends",
|
|
133657
|
+
description: "Re-issue a role-bearing invitation with its original on-chain roles preserved, gated on the inviter's wallet verification (PIN / OTP / OIDC-MFA). The roles are sourced server-side from the existing invitation (tenant-scoped, keyed by invitationId) — the client supplies only the invitation id and a PIN, never the roles. The standard resend path drops the invite-time roles; this route preserves them. Role-less invitations use the standard resend path instead.",
|
|
133658
|
+
successDescription: "Invitation re-issued with the original on-chain roles recorded and re-authorized.",
|
|
133659
|
+
tags: [...TAGS30]
|
|
133660
|
+
}).input(v2Input.body(InvitationV2ResendWithRolesInputSchema)).output(InvitationV2ResendWithRolesOutputSchema);
|
|
133661
|
+
var hasOnChainRoles = v2Contract.route({
|
|
133662
|
+
method: "GET",
|
|
133663
|
+
path: "/role-invitations/{invitationId}/has-roles",
|
|
133664
|
+
description: "Report whether an invitation carries at least one authorized on-chain role (existence, not authority). The resend dialog reads this to decide the PIN-gated vs no-PIN resend path. Returns only the derived boolean — never the role list, which stays server-only.",
|
|
133665
|
+
successDescription: "Derived boolean indicating whether the invitation carries on-chain roles.",
|
|
133666
|
+
tags: [...TAGS30]
|
|
133667
|
+
}).input(v2Input.params(InvitationV2HasOnChainRolesParamsSchema)).output(InvitationV2HasOnChainRolesOutputSchema);
|
|
133637
133668
|
var invitationV2Contract = {
|
|
133638
133669
|
deploy,
|
|
133639
133670
|
accept,
|
|
133640
133671
|
deployStream,
|
|
133641
133672
|
deployStatus,
|
|
133642
133673
|
retry,
|
|
133643
|
-
inviteWithRoles
|
|
133674
|
+
inviteWithRoles,
|
|
133675
|
+
resendWithRoles,
|
|
133676
|
+
hasOnChainRoles
|
|
133644
133677
|
};
|
|
133645
133678
|
var Bytes32HashSchema = exports_external.string().regex(/^0x[0-9a-fA-F]{64}$/, "Expected a 0x-prefixed bytes32 hex string");
|
|
133646
133679
|
var MetadataV2ReadInputSchema = exports_external.object({
|
|
@@ -133895,6 +133928,92 @@ var AssumableParticipantsV2ListInputSchema = AssumableParticipantsCollectionInpu
|
|
|
133895
133928
|
}
|
|
133896
133929
|
});
|
|
133897
133930
|
var AssumableParticipantsV2ListOutputSchema = createPaginatedResponse(AssumableParticipantSchema);
|
|
133931
|
+
var HoldingWalletTypeSchema = exports_external.enum(["eoa", "smart"]).meta({
|
|
133932
|
+
description: "Account type holding this balance: `smart` (smart account) or `eoa` (key account)."
|
|
133933
|
+
});
|
|
133934
|
+
var HoldingTransferVerdictSchema = exports_external.enum(["transferable", "restricted"]).meta({
|
|
133935
|
+
description: "Transfer verdict evaluated against the holding participant's identity, independent of the viewer. `restricted` gates the Transfer action."
|
|
133936
|
+
});
|
|
133937
|
+
var HoldingAssetClassSchema = exports_external.object({
|
|
133938
|
+
id: exports_external.string().meta({ description: "Asset class definition id.", examples: ["cls_equity"] }),
|
|
133939
|
+
slug: exports_external.string().meta({ description: "Asset class slug used for grouping.", examples: ["equity", "cash"] }),
|
|
133940
|
+
name: exports_external.string().meta({ description: "Human-readable asset class name.", examples: ["Equity", "Cash"] })
|
|
133941
|
+
}).meta({ description: "Asset class the token belongs to." });
|
|
133942
|
+
var HoldingTokenSchema = exports_external.object({
|
|
133943
|
+
id: ethereumAddress.meta({
|
|
133944
|
+
description: "The token contract address.",
|
|
133945
|
+
examples: ["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]
|
|
133946
|
+
}),
|
|
133947
|
+
name: exports_external.string().meta({ description: "The token name.", examples: ["Acme Series A"] }),
|
|
133948
|
+
symbol: assetSymbol().meta({ description: "The token symbol.", examples: ["ACME", "USDC"] }),
|
|
133949
|
+
type: assetType().or(exports_external.string().min(1)).meta({
|
|
133950
|
+
description: "Asset type — known system types or custom template slugs. Drives the asset detail route.",
|
|
133951
|
+
examples: ["equity", "bond", "custom-deposit"]
|
|
133952
|
+
}),
|
|
133953
|
+
isExternal: exports_external.boolean().meta({
|
|
133954
|
+
description: "True when the token is registered through the ExternalTokenRegistry rather than deployed by a system factory.",
|
|
133955
|
+
examples: [false, true]
|
|
133956
|
+
}),
|
|
133957
|
+
decimals: decimals().meta({ description: "The number of decimal places.", examples: [18, 6] })
|
|
133958
|
+
});
|
|
133959
|
+
var ParticipantHoldingV2ItemSchema = exports_external.object({
|
|
133960
|
+
id: exports_external.string().meta({
|
|
133961
|
+
description: "Stable row identifier — the token address and wallet address joined.",
|
|
133962
|
+
examples: ["0x71c7…976f:0x8ba1…ba72"]
|
|
133963
|
+
}),
|
|
133964
|
+
token: HoldingTokenSchema.meta({ description: "The token details.", examples: [] }),
|
|
133965
|
+
assetClass: HoldingAssetClassSchema.nullable().meta({
|
|
133966
|
+
description: "The token's asset class. Null for external tokens (no template) — rendered under External tokens.",
|
|
133967
|
+
examples: [null]
|
|
133968
|
+
}),
|
|
133969
|
+
walletAddress: ethereumAddress.meta({
|
|
133970
|
+
description: "The participant wallet address that holds this balance.",
|
|
133971
|
+
examples: ["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]
|
|
133972
|
+
}),
|
|
133973
|
+
walletType: HoldingWalletTypeSchema,
|
|
133974
|
+
balance: bigDecimal().meta({ description: "The total balance amount (scaled by decimals).", examples: ["250"] }),
|
|
133975
|
+
frozen: bigDecimal().meta({ description: "The frozen balance amount.", examples: ["0", "50"] }),
|
|
133976
|
+
available: bigDecimal().meta({
|
|
133977
|
+
description: "The available balance amount (total minus frozen; zero when the whole address is frozen).",
|
|
133978
|
+
examples: ["250", "200"]
|
|
133979
|
+
}),
|
|
133980
|
+
valueInBaseCurrency: bigDecimal().nullable().meta({
|
|
133981
|
+
description: "Available balance multiplied by the token's resolved base-currency price. Null when no FX/price path is available.",
|
|
133982
|
+
examples: ["5.00", null]
|
|
133983
|
+
}),
|
|
133984
|
+
priceInBaseCurrencyReliable: exports_external.boolean().meta({
|
|
133985
|
+
description: "Whether the FX chain used to populate the base-currency price was fully reliable. False when no price is available or a hop fell back to a stale rate.",
|
|
133986
|
+
examples: [true, false]
|
|
133987
|
+
}),
|
|
133988
|
+
transferVerdict: HoldingTransferVerdictSchema,
|
|
133989
|
+
restrictionReason: exports_external.string().nullable().meta({
|
|
133990
|
+
description: "Reason a row is restricted (e.g. `frozen`, `identity pending`). Null for transferable rows; the UI renders a generic reason when a restricted row carries no specific reason.",
|
|
133991
|
+
examples: ["frozen", "identity pending", null]
|
|
133992
|
+
})
|
|
133993
|
+
});
|
|
133994
|
+
var ParticipantHoldingsParamsSchema = exports_external.object({
|
|
133995
|
+
participantId: exports_external.string().min(1).meta({
|
|
133996
|
+
description: "Identifier of the participant whose holdings are being listed."
|
|
133997
|
+
})
|
|
133998
|
+
});
|
|
133999
|
+
var PARTICIPANT_HOLDINGS_COLLECTION_FIELDS = {
|
|
134000
|
+
tokenAddress: addressField(),
|
|
134001
|
+
tokenName: textField(),
|
|
134002
|
+
tokenSymbol: textField(),
|
|
134003
|
+
walletAddress: addressField(),
|
|
134004
|
+
walletType: enumField(["eoa", "smart"], { sortable: false }),
|
|
134005
|
+
balance: bigintField({ filterable: false })
|
|
134006
|
+
};
|
|
134007
|
+
var ParticipantHoldingsV2ListInputSchema = createCollectionInputSchema(PARTICIPANT_HOLDINGS_COLLECTION_FIELDS, {
|
|
134008
|
+
defaultSort: "-balance",
|
|
134009
|
+
globalSearch: true
|
|
134010
|
+
});
|
|
134011
|
+
var ParticipantHoldingsV2ListOutputSchema = createPaginatedResponse(ParticipantHoldingV2ItemSchema, {
|
|
134012
|
+
balancesAsOf: timestamp().nullable().meta({
|
|
134013
|
+
description: "The most recent indexed `updatedAt` across the returned holdings — the freshness stamp shown on the tab. Null when the participant holds nothing.",
|
|
134014
|
+
examples: ["2026-06-24T14:32:00.000Z", null]
|
|
134015
|
+
})
|
|
134016
|
+
});
|
|
133898
134017
|
var ParticipantAddressPurposeSchema = exports_external.enum(["transfer", "identity", "participant"]);
|
|
133899
134018
|
var ParticipantKindSchema = exports_external.enum([
|
|
133900
134019
|
"person",
|
|
@@ -133989,6 +134108,13 @@ var activityStats = v2Contract.route({
|
|
|
133989
134108
|
successDescription: "Activity statistics retrieved successfully.",
|
|
133990
134109
|
tags: [V2_TAG.participants]
|
|
133991
134110
|
}).input(v2Input.paramsQuery(ParticipantActivityParamsSchema, ActivityStatsInputSchema.omit({ accountAddress: true }))).output(createSingleResponse(ActivityStatsOutputSchema));
|
|
134111
|
+
var holdings = v2Contract.route({
|
|
134112
|
+
method: "GET",
|
|
134113
|
+
path: "/participants/{participantId}/holdings",
|
|
134114
|
+
description: "List a participant's real indexed holdings (one row per token × wallet) with asset class, available/frozen balances, base-currency value, a per-row transfer verdict, and a `balancesAsOf` freshness stamp. Powers the participant detail Holdings tab.",
|
|
134115
|
+
successDescription: "Paginated array of participant holdings with asset class, balances, value, and transfer verdict; `meta.balancesAsOf` carries the freshness stamp.",
|
|
134116
|
+
tags: [V2_TAG.participants]
|
|
134117
|
+
}).input(v2Input.paramsQuery(ParticipantHoldingsParamsSchema, ParticipantHoldingsV2ListInputSchema)).output(ParticipantHoldingsV2ListOutputSchema);
|
|
133992
134118
|
var assumableList = v2Contract.route({
|
|
133993
134119
|
method: "GET",
|
|
133994
134120
|
path: "/participants/assumable",
|
|
@@ -134001,6 +134127,7 @@ var participantsV2Contract = {
|
|
|
134001
134127
|
assumableList,
|
|
134002
134128
|
addressKinds,
|
|
134003
134129
|
smartWalletRead,
|
|
134130
|
+
holdings,
|
|
134004
134131
|
activityList,
|
|
134005
134132
|
activityStats,
|
|
134006
134133
|
complianceEligibility: complianceEligibilityV2Contract
|
|
@@ -140561,7 +140688,7 @@ var events2 = v2Contract.route({
|
|
|
140561
140688
|
examples: ["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]
|
|
140562
140689
|
})
|
|
140563
140690
|
}), TokenEventsV2InputSchema)).output(TokenEventsV2OutputSchema);
|
|
140564
|
-
var
|
|
140691
|
+
var holdings2 = v2Contract.route({
|
|
140565
140692
|
method: "GET",
|
|
140566
140693
|
path: "/tokens/{tokenAddress}/holdings",
|
|
140567
140694
|
description: "List every asset the specified token holds a balance in (its treasury). Supports JSON:API pagination, sorting, filtering, and faceted counts.",
|
|
@@ -140808,7 +140935,7 @@ var tokenV2ReadsContract = {
|
|
|
140808
140935
|
holders,
|
|
140809
140936
|
actions,
|
|
140810
140937
|
events: events2,
|
|
140811
|
-
holdings,
|
|
140938
|
+
holdings: holdings2,
|
|
140812
140939
|
compliance,
|
|
140813
140940
|
conversionFeatureProbe,
|
|
140814
140941
|
aumFeeAccruedEstimate,
|
|
@@ -143354,7 +143481,7 @@ function normalizeDalpBaseUrl(url2) {
|
|
|
143354
143481
|
}
|
|
143355
143482
|
var package_default = {
|
|
143356
143483
|
name: "@settlemint/dalp-sdk",
|
|
143357
|
-
version: "3.0.7-main.
|
|
143484
|
+
version: "3.0.7-main.28642122124",
|
|
143358
143485
|
private: false,
|
|
143359
143486
|
description: "Fully typed SDK for the DALP tokenization platform API",
|
|
143360
143487
|
homepage: "https://settlemint.com",
|
|
@@ -143511,6 +143638,10 @@ function createDalpClient(config3) {
|
|
|
143511
143638
|
if (idempotencyKey) {
|
|
143512
143639
|
secured["Idempotency-Key"] = idempotencyKey;
|
|
143513
143640
|
}
|
|
143641
|
+
const perCallIdempotencyKey = options.context?.idempotencyKey;
|
|
143642
|
+
if (perCallIdempotencyKey) {
|
|
143643
|
+
secured["Idempotency-Key"] = perCallIdempotencyKey;
|
|
143644
|
+
}
|
|
143514
143645
|
if (organizationId) {
|
|
143515
143646
|
secured["x-organization-id"] = organizationId;
|
|
143516
143647
|
}
|
|
@@ -143525,9 +143656,18 @@ function createDalpClient(config3) {
|
|
|
143525
143656
|
},
|
|
143526
143657
|
plugins,
|
|
143527
143658
|
customJsonSerializers: [
|
|
143528
|
-
{
|
|
143529
|
-
|
|
143530
|
-
|
|
143659
|
+
{
|
|
143660
|
+
condition: bigDecimalSerializer.condition,
|
|
143661
|
+
serialize: bigDecimalSerializer.serialize
|
|
143662
|
+
},
|
|
143663
|
+
{
|
|
143664
|
+
condition: bigIntSerializer.condition,
|
|
143665
|
+
serialize: bigIntSerializer.serialize
|
|
143666
|
+
},
|
|
143667
|
+
{
|
|
143668
|
+
condition: timestampSerializer.condition,
|
|
143669
|
+
serialize: timestampSerializer.serialize
|
|
143670
|
+
}
|
|
143531
143671
|
],
|
|
143532
143672
|
customErrorResponseBodyDecoder: decodeDapiErrorResponseBody,
|
|
143533
143673
|
fetch: wrappedFetch
|
|
@@ -144605,7 +144745,7 @@ var failedStateSet = new Set(FAILED_TRANSACTION_STATES);
|
|
|
144605
144745
|
// package.json
|
|
144606
144746
|
var package_default2 = {
|
|
144607
144747
|
name: "@settlemint/dalp-cli",
|
|
144608
|
-
version: "3.0.7-main.
|
|
144748
|
+
version: "3.0.7-main.28642122124",
|
|
144609
144749
|
private: false,
|
|
144610
144750
|
description: "CLI for the Digital Asset Lifecycle Platform — manage tokens, identities, compliance, and more from the command line.",
|
|
144611
144751
|
homepage: "https://settlemint.com",
|
|
@@ -145648,6 +145788,19 @@ participantsCommand.command("activity-stats", {
|
|
|
145648
145788
|
});
|
|
145649
145789
|
}
|
|
145650
145790
|
});
|
|
145791
|
+
participantsCommand.command("holdings", {
|
|
145792
|
+
description: "List a participant's indexed holdings (token × wallet) with asset class, value, and transfer verdict",
|
|
145793
|
+
args: exports_external.object({ participantId: exports_external.string().describe("Participant ID") }),
|
|
145794
|
+
options: paginationOptionsSchema.extend({
|
|
145795
|
+
walletType: exports_external.enum(["eoa", "smart"]).optional().describe("Filter by account type (eoa = key account, smart)")
|
|
145796
|
+
}),
|
|
145797
|
+
run(c) {
|
|
145798
|
+
return c.var.orpc.participants.holdings({
|
|
145799
|
+
params: { participantId: c.args.participantId },
|
|
145800
|
+
query: toCanonicalQuery(c.options, c.options.walletType ? { walletType: c.options.walletType } : undefined)
|
|
145801
|
+
});
|
|
145802
|
+
}
|
|
145803
|
+
});
|
|
145651
145804
|
participantsCommand.command("compliance-eligibility", {
|
|
145652
145805
|
description: "Evaluate a participant's global compliance eligibility verdict",
|
|
145653
145806
|
args: exports_external.object({ participantId: exports_external.string().describe("Participant ID") }),
|
|
@@ -209161,6 +209314,13 @@ invitation.command("invite-with-roles", {
|
|
|
209161
209314
|
});
|
|
209162
209315
|
}
|
|
209163
209316
|
});
|
|
209317
|
+
invitation.command("resend-with-roles", {
|
|
209318
|
+
description: "Resend a role-bearing invitation preserving its original on-chain roles (re-granted on acceptance). The roles are re-sourced server-side from the existing invitation. PIN-gated for human sessions; API-key sessions skip wallet verification.",
|
|
209319
|
+
args: exports_external.object({ invitationId: exports_external.string().describe("Invitation ID to resend") }),
|
|
209320
|
+
run(c) {
|
|
209321
|
+
return c.var.orpc.invitation.resendWithRoles({ body: { invitationId: c.args.invitationId } });
|
|
209322
|
+
}
|
|
209323
|
+
});
|
|
209164
209324
|
organizationsCommand.command(invitation);
|
|
209165
209325
|
|
|
209166
209326
|
// src/commands/platform-status.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@settlemint/dalp-cli",
|
|
3
|
-
"version": "3.0.7-main.
|
|
3
|
+
"version": "3.0.7-main.28642122124",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "CLI for the Digital Asset Lifecycle Platform — manage tokens, identities, compliance, and more from the command line.",
|
|
6
6
|
"homepage": "https://settlemint.com",
|