@settlemint/dalp-cli 3.0.6-main.28327872648 → 3.0.6-main.28328698423

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 (2) hide show
  1. package/dist/dalp.js +99 -2
  2. package/package.json +1 -1
package/dist/dalp.js CHANGED
@@ -139797,6 +139797,81 @@ var TokenRecipientEligibilityResponseSchema = exports_external.object({
139797
139797
  description: "The action the verdict applies to."
139798
139798
  })
139799
139799
  });
139800
+ var TokenTransferSimulateParamsSchema = exports_external.object({
139801
+ tokenAddress: TokenReadInputSchema.shape.tokenAddress
139802
+ });
139803
+ var TokenTransferSimulateQuerySchema = exports_external.object({
139804
+ from: ethereumAddress.meta({
139805
+ description: "Sender address for the simulated transfer.",
139806
+ examples: ["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]
139807
+ }),
139808
+ to: ethereumAddress.meta({
139809
+ description: "Recipient address for the simulated transfer.",
139810
+ examples: ["0xabc0000000000000000000000000000000000001"]
139811
+ }),
139812
+ amount: assetAmount.meta({
139813
+ description: "Token amount to simulate, expressed as a stringified integer in the token's smallest unit.",
139814
+ examples: ["1000000000000000000"]
139815
+ })
139816
+ });
139817
+ var ComplianceFailureReasonSchema = exports_external.enum(["identity-not-registered", "identity-not-verified", "module-blocked"]).meta({
139818
+ description: "Root compliance failure class. `identity-not-registered`: the party has no identity entry in the registry. `identity-not-verified`: identity exists but required claims are missing or expired. `module-blocked`: the module actively blocks the address (freeze, blocklist, country bar)."
139819
+ });
139820
+ var RemediationClassSchema = exports_external.enum(["self-serve", "operator", "structural"]).meta({
139821
+ description: "`self-serve`: investor can unblock by acquiring the required claims. `operator`: a platform operator must act (unfreeze, remove from blocklist, register identity). `structural`: not currently unblockable via a standard workflow."
139822
+ });
139823
+ var IssueClaimRemediationSchema = exports_external.object({
139824
+ kind: exports_external.literal("issue-claim"),
139825
+ topics: exports_external.array(exports_external.string().min(1)).min(1).meta({
139826
+ description: "Claim topics the party must satisfy to unblock the transfer. Any single satisfied path clears the rule when the expression is disjunctive."
139827
+ })
139828
+ });
139829
+ var OperatorActionRemediationSchema = exports_external.object({
139830
+ kind: exports_external.literal("operator-action"),
139831
+ action: exports_external.enum(["unfreeze", "remove-blocklist", "register-identity"]).meta({
139832
+ description: "The named operator action that unblocks the transfer."
139833
+ })
139834
+ });
139835
+ var NoRemediationSchema = exports_external.object({
139836
+ kind: exports_external.literal("none")
139837
+ });
139838
+ var TransferRemediationSchema = exports_external.discriminatedUnion("kind", [IssueClaimRemediationSchema, OperatorActionRemediationSchema, NoRemediationSchema]).meta({
139839
+ description: "Actionable remediation for the blocker. `issue-claim`: investor acquires required claims; `operator-action`: operator takes a named administrative action; `none`: no standard workflow resolves this blocker."
139840
+ });
139841
+ var TransferSimulationBlockerSchema = exports_external.object({
139842
+ code: exports_external.string().min(1).meta({
139843
+ description: "Machine-readable blocker code. Matches the compliance module's revert selector or an internal classifier code (e.g. `unrecognized-rule`) for modules that could not be identified."
139844
+ }),
139845
+ moduleTypeId: complianceTypeId().meta({
139846
+ description: "TypeId of the compliance module that raised this blocker."
139847
+ }),
139848
+ moduleInstance: ethereumAddress.meta({
139849
+ description: "On-chain address of the specific module instance that raised this blocker."
139850
+ }),
139851
+ party: exports_external.enum(["sender", "recipient"]).meta({
139852
+ description: "Which transfer party this blocker is attributed to."
139853
+ }),
139854
+ reason: ComplianceFailureReasonSchema,
139855
+ remediationClass: RemediationClassSchema,
139856
+ remediation: TransferRemediationSchema,
139857
+ topics: exports_external.array(exports_external.string()).optional().meta({
139858
+ description: "Claim topics relevant to this blocker. Populated when the failure reason is claim-related."
139859
+ })
139860
+ }).meta({
139861
+ description: "A single compliance blocker for the simulated transfer, with the attributed party, failure reason, and actionable remediation."
139862
+ });
139863
+ var TokenTransferSimulateResponseSchema = exports_external.object({
139864
+ verdict: exports_external.enum(["will-clear", "will-revert"]).meta({
139865
+ description: "`will-clear`: the on-chain `canTransfer` call succeeded — the transfer will go through. `will-revert`: the call reverted; see `blockers` for the classified causes.",
139866
+ examples: ["will-clear", "will-revert"]
139867
+ }),
139868
+ blockers: exports_external.array(TransferSimulationBlockerSchema).meta({
139869
+ description: "Classified list of compliance blockers. Empty when `verdict` is `will-clear`. At least one entry when `verdict` is `will-revert` (last entry is an `unrecognized-rule` catch-all when no specific module could be attributed)."
139870
+ })
139871
+ }).meta({
139872
+ description: "Result of the transfer simulation. The verdict is sourced exclusively from the on-chain `canTransfer` call, never from the blocker enumeration."
139873
+ });
139874
+ var TokenTransferSimulateOutputSchema = createSingleResponse(TokenTransferSimulateResponseSchema);
139800
139875
  var InheritedGlobalControlsV2InputSchema = exports_external.object({
139801
139876
  tokenAddress: ethereumAddress.meta({
139802
139877
  description: "The token contract address whose inherited global controls are evaluated.",
@@ -141136,6 +141211,13 @@ var recipientEligibility = v2Contract.route({
141136
141211
  successDescription: "Eligibility verdict for the address resolved.",
141137
141212
  tags: [V2_TAG.token]
141138
141213
  }).input(v2Input.paramsQuery(TokenRecipientEligibilityParamsSchema, TokenRecipientEligibilityQuerySchema)).output(createSingleResponse(TokenRecipientEligibilityResponseSchema));
141214
+ var transferSimulate = v2Contract.route({
141215
+ method: "GET",
141216
+ path: "/tokens/{tokenAddress}/transfer-simulate",
141217
+ description: "Simulate a token transfer by executing the on-chain `canTransfer(from, to, amount)` call. Returns an authoritative verdict (`will-clear` or `will-revert`) and, on revert, a classified list of compliance blockers with per-blocker remediation metadata. The verdict is always derived from the on-chain result; the blocker list is informational.",
141218
+ successDescription: "Transfer simulation verdict and classified blocker list resolved.",
141219
+ tags: [V2_TAG.token]
141220
+ }).input(v2Input.paramsQuery(TokenTransferSimulateParamsSchema, TokenTransferSimulateQuerySchema)).output(createSingleResponse(TokenTransferSimulateResponseSchema));
141139
141221
  var inheritedGlobalControls = v2Contract.route({
141140
141222
  method: "GET",
141141
141223
  path: "/tokens/{tokenAddress}/inherited-global-controls",
@@ -141427,6 +141509,7 @@ var tokenV2ReadsContract = {
141427
141509
  read: read33,
141428
141510
  allowance,
141429
141511
  recipientEligibility,
141512
+ transferSimulate,
141430
141513
  inheritedGlobalControls,
141431
141514
  holder,
141432
141515
  holders,
@@ -143978,7 +144061,7 @@ function normalizeDalpBaseUrl(url2) {
143978
144061
  }
143979
144062
  var package_default = {
143980
144063
  name: "@settlemint/dalp-sdk",
143981
- version: "3.0.6-main.28327872648",
144064
+ version: "3.0.6-main.28328698423",
143982
144065
  private: false,
143983
144066
  description: "Fully typed SDK for the DALP tokenization platform API",
143984
144067
  homepage: "https://settlemint.com",
@@ -145198,7 +145281,7 @@ var failedStateSet = new Set(FAILED_TRANSACTION_STATES);
145198
145281
  // package.json
145199
145282
  var package_default2 = {
145200
145283
  name: "@settlemint/dalp-cli",
145201
- version: "3.0.6-main.28327872648",
145284
+ version: "3.0.6-main.28328698423",
145202
145285
  private: false,
145203
145286
  description: "CLI for the Digital Asset Lifecycle Platform — manage tokens, identities, compliance, and more from the command line.",
145204
145287
  homepage: "https://settlemint.com",
@@ -211717,6 +211800,20 @@ function registerTokenReads(cmd) {
211717
211800
  params: { tokenAddress: c.options.address }
211718
211801
  });
211719
211802
  }
211803
+ }).command("transfer-simulate", {
211804
+ description: "Simulate a token transfer and return the compliance verdict with classified blockers",
211805
+ options: exports_external.object({
211806
+ address: exports_external.string().describe("Token contract address"),
211807
+ from: exports_external.string().describe("Sender address for the simulated transfer"),
211808
+ to: exports_external.string().describe("Recipient address for the simulated transfer"),
211809
+ amount: exports_external.string().describe("Transfer amount in the token's smallest unit (integer string)")
211810
+ }),
211811
+ run(c) {
211812
+ return c.var.orpc.token.transferSimulate({
211813
+ params: { tokenAddress: c.options.address },
211814
+ query: { from: c.options.from, to: c.options.to, amount: c.options.amount }
211815
+ });
211816
+ }
211720
211817
  }).command("holder", {
211721
211818
  description: "Get token holder details",
211722
211819
  options: exports_external.object({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@settlemint/dalp-cli",
3
- "version": "3.0.6-main.28327872648",
3
+ "version": "3.0.6-main.28328698423",
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",