@capxul/sdk 4.20.0-beta.27 → 4.20.0-beta.28
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/{access-BnlgphFT.mjs → access-SP-ur4Ku.mjs} +207 -106
- package/dist/{index-BjDZXc7n.d.mts → index-V6HIBbMr.d.mts} +266 -17
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +2 -2
- package/dist/node/index.d.mts +1 -1
- package/dist/node/index.mjs +1 -1
- package/dist/{production-D5uC-i8N.mjs → production-CoxgepCr.mjs} +79 -21
- package/dist/testing/index.d.mts +1 -1
- package/dist/testing/index.mjs +2 -2
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Cause, Clock, Context, Data, Deferred, Effect, Exit, Fiber, Layer, Option, Predicate, Queue, Ref, Result, Schema, SchemaGetter, SchemaParser } from "effect";
|
|
1
|
+
import { Cause, Clock, Context, Data, Deferred, Effect, Exit, Fiber, Layer, Option, Predicate, Queue, Ref, Result, Schema, SchemaGetter, SchemaIssue, SchemaParser } from "effect";
|
|
2
2
|
import { makeFunctionReference } from "convex/server";
|
|
3
3
|
import { bytesToHex, concat, decodeErrorResult, encodeAbiParameters, encodeFunctionData, encodePacked, formatUnits, getContractAddress, hashTypedData, isAddress, isHex, keccak256, pad, padHex, parseAbiParameters, recoverAddress, recoverTypedDataAddress, toBytes, toFunctionSignature, toHex } from "viem";
|
|
4
4
|
import { getUserOperationHash } from "viem/account-abstraction";
|
|
@@ -858,7 +858,7 @@ const FIELD_RULES = {
|
|
|
858
858
|
},
|
|
859
859
|
anonymousId: {
|
|
860
860
|
maxLength: 128,
|
|
861
|
-
pattern: /^anon_[A-Za-z0-9-]
|
|
861
|
+
pattern: /^(?:anon_[A-Za-z0-9-]+|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/u
|
|
862
862
|
},
|
|
863
863
|
traceparent: {
|
|
864
864
|
maxLength: 55,
|
|
@@ -5525,6 +5525,28 @@ const probes = {
|
|
|
5525
5525
|
})
|
|
5526
5526
|
};
|
|
5527
5527
|
//#endregion
|
|
5528
|
+
//#region ../protocol/src/evm/role-dsl.ts
|
|
5529
|
+
const ORG_BUDGET_ACTIONS = [
|
|
5530
|
+
"send",
|
|
5531
|
+
"sendBatch",
|
|
5532
|
+
"createCommitment"
|
|
5533
|
+
];
|
|
5534
|
+
/**
|
|
5535
|
+
* How a capped Budget's allowance refills (#2298). `monthly` refills the
|
|
5536
|
+
* allowance to its cap every 30 days. Roles v2 counts fixed periods from the
|
|
5537
|
+
* moment the allowance is set; it has no calendar month. Absent means `none`:
|
|
5538
|
+
* the cap is one pot that spending drains for good.
|
|
5539
|
+
*/
|
|
5540
|
+
const ORG_BUDGET_REFILLS = ["monthly", "none"];
|
|
5541
|
+
/** The fixed Roles v2 refill period of a `monthly` Budget: 30 days, in seconds. */
|
|
5542
|
+
const MONTHLY_REFILL_PERIOD_SECONDS = 30n * 24n * 60n * 60n;
|
|
5543
|
+
/** Derive the Zodiac substrate key for one durable Permission identity. */
|
|
5544
|
+
function roleKeyForPermission(permissionId) {
|
|
5545
|
+
const normalized = permissionId.trim();
|
|
5546
|
+
if (normalized.length === 0 || normalized !== permissionId) throw Errors.invalidInput("permissionId", "must be a non-empty canonical Permission ID");
|
|
5547
|
+
return keccak256(toBytes(`permission ${permissionId}`));
|
|
5548
|
+
}
|
|
5549
|
+
//#endregion
|
|
5528
5550
|
//#region ../protocol/src/permissions/permission-schema.ts
|
|
5529
5551
|
/**
|
|
5530
5552
|
* One stored `setAllowance` call inside a command's expected authority set.
|
|
@@ -5563,12 +5585,19 @@ const BudgetScopeSchema = Schema.Struct({
|
|
|
5563
5585
|
})]),
|
|
5564
5586
|
actions: Schema.NonEmptyArray(Schema.Literals(["pay", "commitments"]))
|
|
5565
5587
|
}).pipe(Schema.refine((scope) => new Set(scope.actions).size === scope.actions.length && (scope.recipients.type === "anyone" || scope.recipients.accounts.length >= 1 && scope.recipients.accounts.length <= 32 && new Set(scope.recipients.accounts).size === scope.recipients.accounts.length), { message: "Budget scope requires unique actions and one to 32 unique allowed Accounts" }));
|
|
5588
|
+
/**
|
|
5589
|
+
* How a capped Budget refills (#2298): `monthly` tops the cap back up every 30
|
|
5590
|
+
* days (a fixed Roles v2 period, not a calendar month); `none` never refills.
|
|
5591
|
+
* Absent means `none`, and writers store only `monthly`.
|
|
5592
|
+
*/
|
|
5593
|
+
const BudgetRefillSchema = Schema.Literals(ORG_BUDGET_REFILLS);
|
|
5566
5594
|
/** The accepted product policy stored with one Permission revision. */
|
|
5567
5595
|
const CurrentPolicySchema = Schema.Union([Schema.Struct({
|
|
5568
5596
|
type: Schema.Literal("budget"),
|
|
5569
5597
|
asset: AssetIdSchema,
|
|
5570
5598
|
limit: Schema.NullOr(Schema.String),
|
|
5571
|
-
scope: BudgetScopeSchema
|
|
5599
|
+
scope: BudgetScopeSchema,
|
|
5600
|
+
refill: Schema.optional(BudgetRefillSchema)
|
|
5572
5601
|
}), Schema.Struct({ type: Schema.Literal("managePeople") })]);
|
|
5573
5602
|
const BudgetIntentSchema = CurrentPolicySchema.pipe(Schema.refine((value) => {
|
|
5574
5603
|
if (value.type !== "budget") return false;
|
|
@@ -5633,7 +5662,8 @@ const ResolvedPermissionBudgetPolicySchema = Schema.Struct({
|
|
|
5633
5662
|
"send",
|
|
5634
5663
|
"sendBatch",
|
|
5635
5664
|
"createCommitment"
|
|
5636
|
-
]))
|
|
5665
|
+
])),
|
|
5666
|
+
refill: Schema.optional(BudgetRefillSchema)
|
|
5637
5667
|
});
|
|
5638
5668
|
const PermissionRecipientBindingSchema = Schema.Struct({
|
|
5639
5669
|
accountId: AccountIdSchema$1,
|
|
@@ -5645,16 +5675,22 @@ const StoredPermissionIntentSchema = Schema.Union([Schema.Struct({
|
|
|
5645
5675
|
type: Schema.Literal("budget"),
|
|
5646
5676
|
asset: AssetIdSchema,
|
|
5647
5677
|
limit: Schema.NullOr(AssetAmountSchema),
|
|
5648
|
-
scope: Schema.optional(BudgetScopeSchema)
|
|
5678
|
+
scope: Schema.optional(BudgetScopeSchema),
|
|
5679
|
+
refill: Schema.optional(BudgetRefillSchema)
|
|
5649
5680
|
}).pipe(Schema.refine((intent) => intent.limit === null || intent.limit.asset === intent.asset, { message: "Budget limit must use the Budget asset" })), Schema.Struct({ type: Schema.Literal("managePeople") })]);
|
|
5650
5681
|
/** Writes state every granted right and use a finite positive AssetAmount cap. */
|
|
5651
5682
|
const PermissionIntentSchema = Schema.Union([Schema.Struct({
|
|
5652
5683
|
type: Schema.Literal("budget"),
|
|
5653
5684
|
asset: AssetIdSchema,
|
|
5654
5685
|
limit: AssetAmountSchema,
|
|
5655
|
-
scope: BudgetScopeSchema
|
|
5686
|
+
scope: BudgetScopeSchema,
|
|
5687
|
+
refill: Schema.optional(BudgetRefillSchema)
|
|
5656
5688
|
}).pipe(Schema.refine((intent) => intent.limit.asset === intent.asset && /[1-9]/u.test(intent.limit.value), { message: "Budget cap must be positive and use the Budget asset" })), Schema.Struct({ type: Schema.Literal("managePeople") })]);
|
|
5657
|
-
/**
|
|
5689
|
+
/**
|
|
5690
|
+
* Decode once and give set-like scope fields one stable command representation.
|
|
5691
|
+
* An explicit `refill: "none"` is kept: on a change it turns a refill off,
|
|
5692
|
+
* where a missing `refill` keeps the Budget's current one (`keepRefillOnChange`).
|
|
5693
|
+
*/
|
|
5658
5694
|
function decodePermissionIntent(input) {
|
|
5659
5695
|
const intent = Schema.decodeUnknownSync(PermissionIntentSchema, { onExcessProperty: "error" })(input);
|
|
5660
5696
|
if (intent.type === "managePeople") return intent;
|
|
@@ -5669,6 +5705,19 @@ function decodePermissionIntent(input) {
|
|
|
5669
5705
|
}
|
|
5670
5706
|
});
|
|
5671
5707
|
}
|
|
5708
|
+
/**
|
|
5709
|
+
* A Budget change that leaves `refill` out keeps the Budget's current refill:
|
|
5710
|
+
* a change never turns a refill off by omission. An explicit `"none"` turns it
|
|
5711
|
+
* off. The backend plans, the SDK verifies and the CLI confirms the same
|
|
5712
|
+
* result. A create has no current refill, so a missing one means `none`.
|
|
5713
|
+
*/
|
|
5714
|
+
function keepRefillOnChange(intent, before) {
|
|
5715
|
+
if (intent.type !== "budget" || intent.refill !== void 0 || before?.type !== "budget" || before.refill !== "monthly") return intent;
|
|
5716
|
+
return {
|
|
5717
|
+
...intent,
|
|
5718
|
+
refill: before.refill
|
|
5719
|
+
};
|
|
5720
|
+
}
|
|
5672
5721
|
//#endregion
|
|
5673
5722
|
//#region ../protocol/src/permissions/replacement-schema.ts
|
|
5674
5723
|
const InvitationPhaseSchema = Schema.Literals([
|
|
@@ -5873,7 +5922,7 @@ const InviteGrantsSchema = Schema.Array(Schema.Union([
|
|
|
5873
5922
|
Schema.Struct({
|
|
5874
5923
|
type: Schema.Literal("new_budget"),
|
|
5875
5924
|
label: Schema.String.pipe(Schema.refine((value) => value.trim().length >= 1 && value.trim().length <= 128)),
|
|
5876
|
-
intent: BudgetIntentSchema
|
|
5925
|
+
intent: BudgetIntentSchema.pipe(Schema.refine((intent) => intent.refill !== "monthly", { message: "An invitation's new Budget cannot refill; change it once granted" }))
|
|
5877
5926
|
})
|
|
5878
5927
|
])).pipe(Schema.refine((grants) => {
|
|
5879
5928
|
if (grants.length < 1 || grants.length > 16) return false;
|
|
@@ -8964,7 +9013,9 @@ const PEOPLE_OPERATIONS = {
|
|
|
8964
9013
|
emitSafeConfirmed: "accounts.safes.emitSafeConfirmed",
|
|
8965
9014
|
readSafe: "accounts.safes.readSafe",
|
|
8966
9015
|
recordDeployment: "accounts.safes.recordDeployment"
|
|
8967
|
-
}
|
|
9016
|
+
},
|
|
9017
|
+
/** The home's requests to pay and Payments to retry, read in one query. */
|
|
9018
|
+
summaries: { loadNeedsYou: "accounts.summaries.loadNeedsYou" }
|
|
8968
9019
|
},
|
|
8969
9020
|
/** The host observer's names for `client.approvals.*`. */
|
|
8970
9021
|
approvals: {
|
|
@@ -9223,7 +9274,9 @@ emitSaved: "activity.annotations.emitSaved" },
|
|
|
9223
9274
|
pay: "organizationPayments.pay",
|
|
9224
9275
|
payBatch: "organizationPayments.payBatch",
|
|
9225
9276
|
prepareExecution: "organizationPayments.prepareExecution",
|
|
9226
|
-
retry: "organizationPayments.retry"
|
|
9277
|
+
retry: "organizationPayments.retry",
|
|
9278
|
+
cancel: "organizationPayments.cancel",
|
|
9279
|
+
redirect: "organizationPayments.redirect"
|
|
9227
9280
|
},
|
|
9228
9281
|
/**
|
|
9229
9282
|
* Payments' internal functions and the client's own method names; its public
|
|
@@ -9245,7 +9298,9 @@ emitSaved: "activity.annotations.emitSaved" },
|
|
|
9245
9298
|
loadContext: "payments.commands.loadContext",
|
|
9246
9299
|
loadExecutionContext: "payments.commands.loadExecutionContext",
|
|
9247
9300
|
/** The capped Budget a prepared Organization command spends from, before its allowance is read on chain. */
|
|
9248
|
-
loadBudgetAllowance: "payments.commands.loadBudgetAllowance"
|
|
9301
|
+
loadBudgetAllowance: "payments.commands.loadBudgetAllowance",
|
|
9302
|
+
/** What a new Payment command would spend and from which Safe, read before it is born. */
|
|
9303
|
+
loadBirthFunding: "payments.commands.loadBirthFunding"
|
|
9249
9304
|
},
|
|
9250
9305
|
lifecycles: { prepareIntent: "payments.lifecycles.prepareIntent" },
|
|
9251
9306
|
/** The stored UserOperation of every money command: Payment, Permission and configuration. */
|
|
@@ -9604,6 +9659,13 @@ const OptionalReasonCode = Schema.optional(Schema.Literals(CAPXUL_ERROR_CODES));
|
|
|
9604
9659
|
* no catalog schema validates it.
|
|
9605
9660
|
*/
|
|
9606
9661
|
const EXCEPTION_EVENT_NAME = "$exception";
|
|
9662
|
+
/**
|
|
9663
|
+
* The SDK's twin of `capxul_backend_expected_outcome`: an expected outcome the
|
|
9664
|
+
* SDK's failure projection captures through the host's PostHog client. Like
|
|
9665
|
+
* the backend's, its properties are the error evidence, so no catalog schema
|
|
9666
|
+
* validates it.
|
|
9667
|
+
*/
|
|
9668
|
+
const SDK_EXPECTED_OUTCOME_EVENT_NAME = "capxul_sdk_expected_outcome";
|
|
9607
9669
|
const PII = Schema.String.pipe(Schema.brand("PII"));
|
|
9608
9670
|
/**
|
|
9609
9671
|
* The canonical envelope (ADR-0020 A4): snake_case ONLY. `capxul_env` and
|
|
@@ -9703,6 +9765,42 @@ const UiStepProps = {
|
|
|
9703
9765
|
organization_id: OptionalOrgId,
|
|
9704
9766
|
reason_code: OptionalReasonCode
|
|
9705
9767
|
};
|
|
9768
|
+
/**
|
|
9769
|
+
* A journey's variants (`JOURNEYS`): the way a person came into a journey, or
|
|
9770
|
+
* the way they took through it. A variant is a property of the journey's step
|
|
9771
|
+
* events, never a journey of its own, so each journey funnel breaks down by
|
|
9772
|
+
* it. A step event takes only the variants that a journey contract names on
|
|
9773
|
+
* it, picked one by one; the analytics plan test checks both directions.
|
|
9774
|
+
* `pay_path` and `funding_source` have no carrier until their Phase 2 events.
|
|
9775
|
+
* `payment_*` events already carry `recipient_is_capxul_account`, and
|
|
9776
|
+
* `invoice_issued` carries `issuer_scope_kind`; neither is repeated here.
|
|
9777
|
+
*/
|
|
9778
|
+
const JourneyVariantProps = {
|
|
9779
|
+
/** How a person came to Get started: by themselves, an invite, money that waited, or an invoice. */
|
|
9780
|
+
entry_path: Schema.optional(Schema.Literals([
|
|
9781
|
+
"signup",
|
|
9782
|
+
"invite",
|
|
9783
|
+
"claim",
|
|
9784
|
+
"invoice"
|
|
9785
|
+
])),
|
|
9786
|
+
/** Where the person acted. `agent` is an AI agent driving the CLI. */
|
|
9787
|
+
surface: Schema.optional(Schema.Literals([
|
|
9788
|
+
"web",
|
|
9789
|
+
"cli",
|
|
9790
|
+
"agent"
|
|
9791
|
+
])),
|
|
9792
|
+
/** Who pays: a person from their own account, or an Organization from a Budget. */
|
|
9793
|
+
payer_kind: Schema.optional(Schema.Literals(["person", "organization"])),
|
|
9794
|
+
/** How a request was paid: from the payer's inbox, or by its link at checkout. */
|
|
9795
|
+
pay_path: Schema.optional(Schema.Literals(["inbox", "link"])),
|
|
9796
|
+
/** Where an account's first money came from. `bank` is the planned on-ramp. */
|
|
9797
|
+
funding_source: Schema.optional(Schema.Literals([
|
|
9798
|
+
"deposit",
|
|
9799
|
+
"payment",
|
|
9800
|
+
"claim",
|
|
9801
|
+
"bank"
|
|
9802
|
+
]))
|
|
9803
|
+
};
|
|
9706
9804
|
//#endregion
|
|
9707
9805
|
//#region ../observability/src/events/money.ts
|
|
9708
9806
|
/**
|
|
@@ -9792,6 +9890,8 @@ const PaymentInitiatedProps = Schema.Struct({
|
|
|
9792
9890
|
execution_id: OptionalString,
|
|
9793
9891
|
payment_lifecycle_id: OptionalString,
|
|
9794
9892
|
...TelemetryEnvelopeProps,
|
|
9893
|
+
payer_kind: JourneyVariantProps.payer_kind,
|
|
9894
|
+
surface: JourneyVariantProps.surface,
|
|
9795
9895
|
...RecipientTelemetryProps,
|
|
9796
9896
|
kind: Schema.String,
|
|
9797
9897
|
payment_id: Schema.String
|
|
@@ -9807,6 +9907,8 @@ const PaymentLifecycleProps = {
|
|
|
9807
9907
|
const PaymentSettledL2Props = Schema.Struct({
|
|
9808
9908
|
...PaymentLifecycleProps,
|
|
9809
9909
|
...TelemetryEnvelopeProps,
|
|
9910
|
+
payer_kind: JourneyVariantProps.payer_kind,
|
|
9911
|
+
surface: JourneyVariantProps.surface,
|
|
9810
9912
|
...RecipientTelemetryProps,
|
|
9811
9913
|
kind: Schema.String,
|
|
9812
9914
|
chain_id: Schema.Finite,
|
|
@@ -10014,6 +10116,7 @@ const OrganizationCreationStartedProps = Schema.Struct({
|
|
|
10014
10116
|
});
|
|
10015
10117
|
const OrganizationCreationReadyProps = Schema.Struct({
|
|
10016
10118
|
...TelemetryEnvelopeProps,
|
|
10119
|
+
surface: JourneyVariantProps.surface,
|
|
10017
10120
|
$insert_id: Schema.String,
|
|
10018
10121
|
organization_id: OrgIdTelemetrySchema,
|
|
10019
10122
|
attempt_number: AttemptNumberSchema,
|
|
@@ -10038,45 +10141,6 @@ const OrganizationCreationFailedProps = Schema.Struct({
|
|
|
10038
10141
|
...ORGANIZATION_SETUP_REASONS
|
|
10039
10142
|
]))
|
|
10040
10143
|
});
|
|
10041
|
-
const OrgCreateStartedProps = Schema.Struct({
|
|
10042
|
-
...TelemetryEnvelopeProps,
|
|
10043
|
-
org_id: OptionalOrgId,
|
|
10044
|
-
email_domain: OptionalString,
|
|
10045
|
-
template: OptionalString
|
|
10046
|
-
});
|
|
10047
|
-
const OrgSafeCreatedProps = Schema.Struct({
|
|
10048
|
-
...TelemetryEnvelopeProps,
|
|
10049
|
-
org_id: OptionalOrgId,
|
|
10050
|
-
chainId: OptionalChainId,
|
|
10051
|
-
safe_address: OptionalAddress
|
|
10052
|
-
});
|
|
10053
|
-
const OrgSafeConfirmedProps = Schema.Struct({
|
|
10054
|
-
...TelemetryEnvelopeProps,
|
|
10055
|
-
org_id: OptionalOrgId,
|
|
10056
|
-
chainId: OptionalChainId,
|
|
10057
|
-
safe_address: OptionalAddress,
|
|
10058
|
-
durationMs: OptionalDurationMs
|
|
10059
|
-
});
|
|
10060
|
-
const OrgRolesSeededProps = Schema.Struct({
|
|
10061
|
-
...TelemetryEnvelopeProps,
|
|
10062
|
-
org_id: OptionalOrgId,
|
|
10063
|
-
chainId: OptionalChainId,
|
|
10064
|
-
role: OptionalString,
|
|
10065
|
-
txHash: OptionalTxHash
|
|
10066
|
-
});
|
|
10067
|
-
const OrgCreatedProps = Schema.Struct({
|
|
10068
|
-
...TelemetryEnvelopeProps,
|
|
10069
|
-
org_id: OptionalOrgId,
|
|
10070
|
-
chainId: OptionalChainId,
|
|
10071
|
-
safe_address: OptionalAddress,
|
|
10072
|
-
durationMs: OptionalDurationMs
|
|
10073
|
-
});
|
|
10074
|
-
const OrgCreateFailedProps = Schema.Struct({
|
|
10075
|
-
...TelemetryEnvelopeProps,
|
|
10076
|
-
...ChainCauseTelemetryProps,
|
|
10077
|
-
org_id: OptionalOrgId,
|
|
10078
|
-
reason: OptionalString
|
|
10079
|
-
});
|
|
10080
10144
|
const OrgInviteSentProps = Schema.Struct({
|
|
10081
10145
|
...TelemetryEnvelopeProps,
|
|
10082
10146
|
org_id: OptionalOrgId,
|
|
@@ -10121,30 +10185,6 @@ Schema.Struct({
|
|
|
10121
10185
|
name: Schema.Literal("organization_creation_failed"),
|
|
10122
10186
|
props: OrganizationCreationFailedProps
|
|
10123
10187
|
});
|
|
10124
|
-
Schema.Struct({
|
|
10125
|
-
name: Schema.Literal("org_create_started"),
|
|
10126
|
-
props: OrgCreateStartedProps
|
|
10127
|
-
});
|
|
10128
|
-
Schema.Struct({
|
|
10129
|
-
name: Schema.Literal("org_safe_created"),
|
|
10130
|
-
props: OrgSafeCreatedProps
|
|
10131
|
-
});
|
|
10132
|
-
Schema.Struct({
|
|
10133
|
-
name: Schema.Literal("org_safe_confirmed"),
|
|
10134
|
-
props: OrgSafeConfirmedProps
|
|
10135
|
-
});
|
|
10136
|
-
Schema.Struct({
|
|
10137
|
-
name: Schema.Literal("org_roles_seeded"),
|
|
10138
|
-
props: OrgRolesSeededProps
|
|
10139
|
-
});
|
|
10140
|
-
Schema.Struct({
|
|
10141
|
-
name: Schema.Literal("org_created"),
|
|
10142
|
-
props: OrgCreatedProps
|
|
10143
|
-
});
|
|
10144
|
-
Schema.Struct({
|
|
10145
|
-
name: Schema.Literal("org_create_failed"),
|
|
10146
|
-
props: OrgCreateFailedProps
|
|
10147
|
-
});
|
|
10148
10188
|
Schema.Struct({
|
|
10149
10189
|
name: Schema.Literal("org_invite_sent"),
|
|
10150
10190
|
props: OrgInviteSentProps
|
|
@@ -11018,10 +11058,14 @@ const BootstrapFailedProps = Schema.Struct({
|
|
|
11018
11058
|
});
|
|
11019
11059
|
const MemberActivationStartedProps = Schema.Struct({
|
|
11020
11060
|
...TelemetryEnvelopeProps,
|
|
11061
|
+
entry_path: JourneyVariantProps.entry_path,
|
|
11062
|
+
surface: JourneyVariantProps.surface,
|
|
11021
11063
|
$insert_id: Schema.String
|
|
11022
11064
|
});
|
|
11023
11065
|
const MemberActivationReadyProps = Schema.Struct({
|
|
11024
11066
|
...TelemetryEnvelopeProps,
|
|
11067
|
+
entry_path: JourneyVariantProps.entry_path,
|
|
11068
|
+
surface: JourneyVariantProps.surface,
|
|
11025
11069
|
$insert_id: Schema.String,
|
|
11026
11070
|
duration_ms: DurationMsSchema
|
|
11027
11071
|
});
|
|
@@ -12567,7 +12611,7 @@ function mapAccountLifecycle(input) {
|
|
|
12567
12611
|
}
|
|
12568
12612
|
//#endregion
|
|
12569
12613
|
//#region package.json
|
|
12570
|
-
var version = "4.20.0-beta.
|
|
12614
|
+
var version = "4.20.0-beta.28";
|
|
12571
12615
|
//#endregion
|
|
12572
12616
|
//#region src/observability/telemetry/exception-projection.ts
|
|
12573
12617
|
/** Fixed fallback for failures that have no safe message. */
|
|
@@ -13005,7 +13049,7 @@ const REVERT_SELECTOR_RE = /^0x(?:[0-9a-fA-F]{8})?$/u;
|
|
|
13005
13049
|
//#region src/observability/posthog-failure.ts
|
|
13006
13050
|
/** The expected-outcome codes, read as plain strings so a free-form kind can be looked up. */
|
|
13007
13051
|
/** Stable PostHog event used for typed failures that are expected product outcomes. */
|
|
13008
|
-
const CAPXUL_SDK_EXPECTED_OUTCOME_EVENT =
|
|
13052
|
+
const CAPXUL_SDK_EXPECTED_OUTCOME_EVENT = SDK_EXPECTED_OUTCOME_EVENT_NAME;
|
|
13009
13053
|
/**
|
|
13010
13054
|
* Adapt the host's already-initialized PostHog-like client. This function does
|
|
13011
13055
|
* not import, initialize, configure, or own PostHog.
|
|
@@ -15688,6 +15732,12 @@ function paymentsV2Signature(name) {
|
|
|
15688
15732
|
const SEND_SIGNATURE = paymentsV2Signature("send");
|
|
15689
15733
|
const SEND_BATCH_SIGNATURE = paymentsV2Signature("sendBatch");
|
|
15690
15734
|
const CREATE_COMMITMENT_SIGNATURE = paymentsV2Signature("createCommitment");
|
|
15735
|
+
/**
|
|
15736
|
+
* #2299 ruling C: only an Owner cancels or redirects an Organization-funded
|
|
15737
|
+
* commitment, so these two sit in the Owner role's scope, never a Budget's.
|
|
15738
|
+
* The contract admits only the commitment's creator, the Organization Safe.
|
|
15739
|
+
*/
|
|
15740
|
+
const OWNER_COMMITMENT_SIGNATURES = [paymentsV2Signature("cancel"), paymentsV2Signature("redirect")];
|
|
15691
15741
|
//#endregion
|
|
15692
15742
|
//#region ../protocol/src/evm/organization-payments.ts
|
|
15693
15743
|
/** Zodiac ModuleProxyFactory on Base Sepolia. */
|
|
@@ -15924,24 +15974,18 @@ function encodePreparedPaymentCallData(command) {
|
|
|
15924
15974
|
}));
|
|
15925
15975
|
}
|
|
15926
15976
|
const [item] = command.items;
|
|
15927
|
-
|
|
15928
|
-
|
|
15977
|
+
const route = command.executionRoute;
|
|
15978
|
+
if (command.items.length !== 1 || item === void 0 || isBirth(item) || route.kind !== "direct" && item.operation === "claim_commitment") throw Errors.invalidInput("items", "Commitment lifecycle requires one lone execution");
|
|
15979
|
+
const call = {
|
|
15929
15980
|
to: command.contractAddress,
|
|
15981
|
+
value: 0n,
|
|
15930
15982
|
data: lifecycleData(item)
|
|
15931
|
-
}
|
|
15932
|
-
|
|
15933
|
-
|
|
15934
|
-
|
|
15935
|
-
|
|
15936
|
-
|
|
15937
|
-
"sendBatch",
|
|
15938
|
-
"createCommitment"
|
|
15939
|
-
];
|
|
15940
|
-
/** Derive the Zodiac substrate key for one durable Permission identity. */
|
|
15941
|
-
function roleKeyForPermission(permissionId) {
|
|
15942
|
-
const normalized = permissionId.trim();
|
|
15943
|
-
if (normalized.length === 0 || normalized !== permissionId) throw Errors.invalidInput("permissionId", "must be a non-empty canonical Permission ID");
|
|
15944
|
-
return keccak256(toBytes(`permission ${permissionId}`));
|
|
15983
|
+
};
|
|
15984
|
+
return route.kind === "direct" ? safe4337ExecuteUserOpCallData(call) : buildOrgRoleSpendPersonalCallData(buildOrgRoleMultiCall({
|
|
15985
|
+
rolesModuleAddress: route.rolesModule,
|
|
15986
|
+
roleKey: route.roleKey,
|
|
15987
|
+
calls: [call]
|
|
15988
|
+
}));
|
|
15945
15989
|
}
|
|
15946
15990
|
//#endregion
|
|
15947
15991
|
//#region src/payments/operation-verification.ts
|
|
@@ -15970,6 +16014,16 @@ function moneySafeOpDigest(operation, chainId) {
|
|
|
15970
16014
|
userOp: safe4337UserOperation(operation)
|
|
15971
16015
|
});
|
|
15972
16016
|
}
|
|
16017
|
+
/**
|
|
16018
|
+
* An Organization-funded cancel or redirect runs through the Owner role
|
|
16019
|
+
* (#2299), which no Budget names. Its role key cannot widen what the signer
|
|
16020
|
+
* may do: the Roles module admits only a role the signer's Safe holds, and the
|
|
16021
|
+
* contract admits only the commitment's creator.
|
|
16022
|
+
*/
|
|
16023
|
+
function isOwnerLifecycle(command) {
|
|
16024
|
+
const [item] = command.items;
|
|
16025
|
+
return command.items.length === 1 && (item?.operation === "cancel_commitment" || item?.operation === "redirect_commitment");
|
|
16026
|
+
}
|
|
15973
16027
|
/** Verify every actual Money signing target against configured trust anchors. */
|
|
15974
16028
|
function verifiesMoneyOperation(evidence, expectedSafe, chainId, permissionId) {
|
|
15975
16029
|
try {
|
|
@@ -15980,7 +16034,7 @@ function verifiesMoneyOperation(evidence, expectedSafe, chainId, permissionId) {
|
|
|
15980
16034
|
const route = command.executionRoute;
|
|
15981
16035
|
if (route.kind === "direct") {
|
|
15982
16036
|
if (permissionId !== void 0 || command.senderSafe.toLowerCase() !== expectedSafe.toLowerCase()) return false;
|
|
15983
|
-
} else if (permissionId === void 0
|
|
16037
|
+
} else if ((permissionId === void 0 ? !isOwnerLifecycle(command) : route.roleKey.toLowerCase() !== roleKeyForPermission(permissionId).toLowerCase()) || command.senderSafe.toLowerCase() !== route.organizationSafe.toLowerCase()) return false;
|
|
15984
16038
|
if (operation.callData.toLowerCase() !== encodePreparedPaymentCallData(command).toLowerCase()) return false;
|
|
15985
16039
|
const digest = moneySafeOpDigest(operation, chainId);
|
|
15986
16040
|
return evidence.digest.toLowerCase() === digest.toLowerCase() && evidence.executionId === `money_execution_${digest.slice(2).toLowerCase()}`;
|
|
@@ -16770,9 +16824,11 @@ function subscribeFreshQuery(deps, args, listener, operation, projection, option
|
|
|
16770
16824
|
//#region src/payments/lifecycle-execution.ts
|
|
16771
16825
|
/**
|
|
16772
16826
|
* The prepared command is this lifecycle intent; a retry also names the
|
|
16773
|
-
* original birth command of the scope it was asked for.
|
|
16827
|
+
* original birth command of the scope it was asked for. A claim, and an
|
|
16828
|
+
* Account's own cancel or redirect, runs directly from the signer's Safe; an
|
|
16829
|
+
* Organization's cancel or redirect runs through its Owner role (#2299).
|
|
16774
16830
|
*/
|
|
16775
|
-
const lifecycleCommandCheck = (intent, expectedOrganizationId) => async (request, evidence) => await matchesIntent(intent)(request, evidence) && (intent.kind
|
|
16831
|
+
const lifecycleCommandCheck = (intent, expectedOrganizationId) => async (request, evidence) => await matchesIntent(intent)(request, evidence) && (intent.kind === "retry" ? expectedOrganizationId === void 0 ? evidence.sourceCommand?.kind === "birth" && evidence.sourceCommand.actor.kind === "account" : evidence.sourceCommand?.kind === "birth" && evidence.sourceCommand.actor.kind === "organization" && evidence.sourceCommand.actor.orgId === expectedOrganizationId : evidence.preparedCommand?.executionRoute.kind === (intent.kind === "claim" || expectedOrganizationId === void 0 ? "direct" : "zodiac_role"));
|
|
16776
16832
|
/** The prepared command pays exactly the request the payer confirmed. */
|
|
16777
16833
|
const requestPaymentCheck = (confirmation) => async (request) => "kind" in request && request.kind === "payment_request" && canonicalJson(request.confirmation) === canonicalJson(confirmation);
|
|
16778
16834
|
function executePaymentLifecycle(deps, intent, signal, controls, expectedOrganizationId, onPrepared) {
|
|
@@ -17693,17 +17749,21 @@ function paymentExecutionIntent(input) {
|
|
|
17693
17749
|
const to = normalizeTargetForBackend(input.to, "to");
|
|
17694
17750
|
if (!to.ok) return to;
|
|
17695
17751
|
try {
|
|
17696
|
-
|
|
17752
|
+
const decoded = Schema.decodeResult(PaymentExecutionIntentSchema, { onExcessProperty: "error" })({
|
|
17753
|
+
to: to.value,
|
|
17754
|
+
amount: input.amount,
|
|
17755
|
+
...input.externalAddressAcknowledged === void 0 ? {} : { externalAddressAcknowledged: input.externalAddressAcknowledged },
|
|
17756
|
+
...input.paymentType === void 0 ? {} : { paymentType: input.paymentType },
|
|
17757
|
+
...input.document === void 0 ? {} : { document: input.document },
|
|
17758
|
+
...input.supportingReceipts === void 0 ? {} : { supportingReceipts: input.supportingReceipts },
|
|
17759
|
+
...input.timing === void 0 ? {} : { timing: input.timing }
|
|
17760
|
+
});
|
|
17761
|
+
return Result.isSuccess(decoded) ? {
|
|
17697
17762
|
ok: true,
|
|
17698
|
-
value:
|
|
17699
|
-
|
|
17700
|
-
|
|
17701
|
-
|
|
17702
|
-
...input.paymentType === void 0 ? {} : { paymentType: input.paymentType },
|
|
17703
|
-
...input.document === void 0 ? {} : { document: input.document },
|
|
17704
|
-
...input.supportingReceipts === void 0 ? {} : { supportingReceipts: input.supportingReceipts },
|
|
17705
|
-
...input.timing === void 0 ? {} : { timing: input.timing }
|
|
17706
|
-
})
|
|
17763
|
+
value: decoded.success
|
|
17764
|
+
} : {
|
|
17765
|
+
ok: false,
|
|
17766
|
+
error: invalidPaymentField(decoded.failure.issue)
|
|
17707
17767
|
};
|
|
17708
17768
|
} catch {
|
|
17709
17769
|
return {
|
|
@@ -17712,6 +17772,13 @@ function paymentExecutionIntent(input) {
|
|
|
17712
17772
|
};
|
|
17713
17773
|
}
|
|
17714
17774
|
}
|
|
17775
|
+
const formatIssue = SchemaIssue.makeFormatterStandardSchemaV1();
|
|
17776
|
+
/** The first failing field and why, e.g. `amount.value`, as the backend's row decode names it (#2381). */
|
|
17777
|
+
function invalidPaymentField(issue) {
|
|
17778
|
+
const first = formatIssue(issue).issues[0];
|
|
17779
|
+
const field = first?.path?.map((segment) => String(typeof segment === "object" ? segment.key : segment)).join(".");
|
|
17780
|
+
return Errors.invalidInput(field === void 0 || field.length === 0 ? "payment" : field, first?.message ?? "invalid personal payment input");
|
|
17781
|
+
}
|
|
17715
17782
|
function normalizePaymentTiming(payment) {
|
|
17716
17783
|
const { release: _release, ...rest } = payment;
|
|
17717
17784
|
return {
|
|
@@ -18528,6 +18595,27 @@ function makeOrganizationPaymentsMethods(deps, orgId) {
|
|
|
18528
18595
|
flights: /* @__PURE__ */ new Map()
|
|
18529
18596
|
};
|
|
18530
18597
|
const execute = (input, signal, operation = "organization-pay-batch", controls, onPrepared) => executeOrganizationBatch(scope, input, signal, operation, controls, onPrepared);
|
|
18598
|
+
/** One Owner-signed cancel or redirect, answering the one Payment it acted on (#2299). */
|
|
18599
|
+
const ownerLifecycle = (intent, controls, operation) => runCapxulEffect(Effect.gen(function* () {
|
|
18600
|
+
const captured = carryInvocationParentSpan(controls, yield* Effect.currentSpan.pipe(Effect.orDie));
|
|
18601
|
+
return yield* awaitCapxulResult(async () => {
|
|
18602
|
+
const execution = executionDependencies$1(deps);
|
|
18603
|
+
if (execution === null) return {
|
|
18604
|
+
ok: false,
|
|
18605
|
+
error: Errors.notImplemented("organizationPayments", "executionComposition")
|
|
18606
|
+
};
|
|
18607
|
+
const result = await executePaymentLifecycle(execution, intent, controls?.signal, captured, orgId);
|
|
18608
|
+
if (!result.ok) return result;
|
|
18609
|
+
const [payment, ...rest] = result.value.payments;
|
|
18610
|
+
return payment === void 0 || rest.length !== 0 ? {
|
|
18611
|
+
ok: false,
|
|
18612
|
+
error: Errors.unknown()
|
|
18613
|
+
} : {
|
|
18614
|
+
ok: true,
|
|
18615
|
+
value: normalizePaymentTiming(payment)
|
|
18616
|
+
};
|
|
18617
|
+
});
|
|
18618
|
+
}), observationOnlyControls(controls), operation, deps.runPromise);
|
|
18531
18619
|
return {
|
|
18532
18620
|
...makeOrganizationPaymentReadMethods(deps, orgId),
|
|
18533
18621
|
retry: (paymentId, options) => {
|
|
@@ -18586,6 +18674,19 @@ function makeOrganizationPaymentsMethods(deps, orgId) {
|
|
|
18586
18674
|
});
|
|
18587
18675
|
}), observationOnlyControls(controls), CAPXUL_OPERATIONS.organizationPayments.pay, deps.runPromise);
|
|
18588
18676
|
},
|
|
18677
|
+
cancel: (paymentId, options) => ownerLifecycle({
|
|
18678
|
+
kind: "cancel",
|
|
18679
|
+
paymentId
|
|
18680
|
+
}, deps.invocationControls?.(options) ?? options, CAPXUL_OPERATIONS.organizationPayments.cancel),
|
|
18681
|
+
redirect: (input, options) => {
|
|
18682
|
+
const controls = deps.invocationControls?.(options) ?? options;
|
|
18683
|
+
const recipient = normalizeTargetForBackend(input.to, "to");
|
|
18684
|
+
return recipient.ok ? ownerLifecycle({
|
|
18685
|
+
kind: "redirect",
|
|
18686
|
+
paymentId: input.paymentId,
|
|
18687
|
+
recipient: recipient.value
|
|
18688
|
+
}, controls, CAPXUL_OPERATIONS.organizationPayments.redirect) : runCapxulEffect(Effect.fail(recipient.error), observationOnlyControls(controls), CAPXUL_OPERATIONS.organizationPayments.redirect, deps.runPromise);
|
|
18689
|
+
},
|
|
18589
18690
|
payBatch: (input, options) => {
|
|
18590
18691
|
const controls = deps.invocationControls?.(options) ?? options;
|
|
18591
18692
|
return runCapxulEffect(Effect.gen(function* () {
|
|
@@ -22946,4 +23047,4 @@ function executeIdentityProductObservation(telemetry, record, state) {
|
|
|
22946
23047
|
return ignoreTransportFailure(() => invocationTelemetry.emit(mapped), "emit", mapped.name).pipe(Effect.andThen(ignoreTransportFailure(after, mapped.name === "auth_signed_out" ? "reset" : "identify", mapped.name)));
|
|
22947
23048
|
}
|
|
22948
23049
|
//#endregion
|
|
22949
|
-
export { parseAssetAmount as $,
|
|
23050
|
+
export { parseAssetAmount as $, hashPermissionReplacementPreview as $n, carryInvocationParentSpan as $r, isSettingUpLifecycle as $t, registerProductTelemetryInvocation as A, toEpochSeconds as Ai, onboardings as An, isEvmAddress as Ar, safe4337MultiSendUserOpCallData as At, makeOrganizationPaymentsMethods as B, isRecord as Bi, invitations as Bn, runPortEffect as Br, CAPXUL_SDK_EXPECTED_OUTCOME_EVENT as Bt, AccountReadPortTag as C, globalLocalStorage as Ci, EXCEPTION_EVENT_NAME as Cn, toRoleKey as Cr, SEND_SIGNATURE as Ct, convexCallErrorFromCapxul as D, parseCachedJwt as Di, normalizeCapxulOperation as Dn, toCurrencyCode as Dr, deriveCapxulSafeAddress as Dt, ConvexCallPortTag as E, parseAuthSession as Ei, isCapxulOperation as En, toAssetId as Er, TOKENS as Et, decodePayrollRunInput as F, Errors as Fi, PreparedPermissionExecutionSchema as Fn, reference as Fr, callOperation as Ft, makeActorRelationshipMethods as G, workspaces as Gn, awaitCapxulResult as Gr, withCapturedAttemptContext as Gt, makePaymentsMethods as H, AuthCacheError as Hi, roles as Hn, observationOnlyControls as Hr, observeFailedResult as Ht, toPayrollGroupId as I, CapxulError as Ii, PermissionCommandViewSchema as In, makeAuthMethods as Ir, asCapxulError as It, makeTargetsMethods as J, ORGANIZATION_SETUP_STATUSES as Jn, toCapxulResult as Jr, normalizeExceptionErrorKind as Jt, makeCheckoutMethods as K, OrganizationSetupSchema as Kn, defectAsCapxulError as Kr, EXCEPTION_MESSAGE as Kt, makeAccountMethods as L, isCapxulError as Li, PayrollGroupIdSchema as Ln, askIdentity as Lr, toPublicError$1 as Lt, makeApprovalsMethods as M, toEmail as Mi, commands as Mn, toChainId as Mr, BASE_SEPOLIA_CHAIN_ID as Mt, makePayrollMethods as N, toJwtToken as Ni, configurations as Nn, toWeiAmount as Nr, MULTI_SEND_CALL_ONLY as Nt, retryIdempotentRead as O, toDurationMs as Oi, OPERATIONS as On, toExactAssetAmount as Or, normalizeSafeSaltEmail as Ot, makeUnavailablePayrollMethods as P, toSessionToken as Pi, replacements as Pn, absurd as Pr, SAFE_SENTINEL_OWNERS as Pt, formatAssetAmount as Q, InvitationViewSchema as Qn, ActorFailure as Qr, version as Qt, emitDepositInitiated as R, FAILURE_MODES$1 as Ri, PayrollGroupInputSchema as Rn, publicIdentityFailure as Rr, failureDetail as Rt, valueIn as S, detectAuthCacheAdapter as Si, CLI_INVOCATION_KINDS as Sn, toPermissionId as Sr, SEND_BATCH_SIGNATURE as St, TelemetryPortTag as T, BrowserAuthCacheAdapter as Ti, CAPXUL_OPERATIONS as Tn, currencySymbolFor as Tr, CONFIGURED_MONEY_ASSETS as Tt, waitForPaymentSubmission as U, AuthCachePortTag as Ui, setups as Un, runCapxulEffect as Ur, observeSdkClient as Ut, makeOfframpMethods as V, readField as Vi, members as Vn, sessionFromActor as Vr, postHogFailureObservation as Vt, makeDestinationsMethods as W, treasuries as Wn, withVerifiedOrganizationScope as Wr, observationContextProps as Wt, assetAmountFromRaw as X, decodeChainCause as Xn, CAPXUL_ERROR_CODES as Xr, projectSdkException as Xt, subscribeFreshQuery as Y, CHAIN_UPSTREAMS as Yn, formatTraceparent as Yr, normalizeExceptionOperation as Yt, assetSymbolFor as Z, toOrgId as Zn, EXPECTED_OPERATION_OUTCOMES as Zr, safeExceptionLabel as Zt, accountFromAccountPositions as _, toAppId as _i, validateHandle as _n, PAYMENT_STATUSES as _r, ROLES_SET_ALLOWANCE_ABI as _t, paymentPhase as a, readClockNow as ai, openfortSignerNotReadyCode as an, roleKeyForPermission as ar, fingerprintPaymentIntent as at, MONEY_READ_RATES as b, AuthClientError as bi, CLI_CAPABILITIES as bn, toBudgetId as br, ROLE_MANAGEMENT_SIGNATURES as bt, makePaymentDocumentsMethods as c, observationRequestHeaders as ci, resolveFailureMode as cn, images as cr, resolveOrgPermissionIdentity as ct, SmartAccountPortTag as d, readInvocationObservation as di, toCountryCode as dn, isBytes32 as dr, MULTI_SEND_SELECTOR as dt, withInvocationParentSpan as ei, UNOBSERVABLE_SIGNER_STATUS as en, decodePermissionIntent as er, requireAsset as et, smartAccountErrorFromCapxul as f, sanitizeObservationContext as fi, toKycTier as fn, toExactHex as fr, OPERATOR as ft, ConvexAccountLayer as g, toAllowedOrigin as gi, toPartyId as gn, PAYMENT_DIRECTIONS as gr, ROLES_EXEC_TRANSACTION_WITH_ROLE_ABI as gt, makeAccountsMethods as h, isCredentialField as hi, toHandle as hn, toLowerHex as hr, ROLES_ASSIGN_ROLES_ABI as ht, inboxPhase as i, ClockPortTag as ii, isSignerNotReadySignal as in, ORG_BUDGET_ACTIONS as ir, canonicalJson as it, wireChainId as j, toAuthUserId as ji, authorities as jn, toAddress as jr, buildSafeMultiSendExecTransactionCall as jt, bindProductTelemetryInvocation as k, toEpochMs as ki, details as kn, EVM_ADDRESS_RE$1 as kr, safe4337ExecuteUserOpCallData as kt, makeSmartAccountMethods as l, attachInvocationObservation as li, makeCurrentUserMethods as ln, toAccountId as lr, CREATE_COMMITMENT_SIGNATURE as lt, PonderIndexerAdapter as m, redactUrlSecrets as mi, HANDLE_RE as mn, toLowerBytes32 as mr, PARAMETER_TYPE as mt, bootIdentityFlow as n, SystemClockLayer as ni, injectedWalletSigner as nn, CurrentPolicySchema as nr, isMoneyParseError as nt, requestPhase as o, BetterAuthNodeLayer as oi, recoverRawDigestSigner as on, diagnostics as or, moneySafeOpDigest as ot, makeHoldingsMethods as p, redactSecrets as pi, toTesterKind as pn, toLowerAddress as pr, OWNER_COMMITMENT_SIGNATURES as pt, isCheckoutSettlementConsumed as q, ORGANIZATION_SETUP_REASONS as qn, runIfActive as qr, SDK_VERSION as qt, makeMeMethods as r, ClockError as ri, isEcdsaSignatureHex as rn, MONTHLY_REFILL_PERIOD_SECONDS as rr, parseMoney as rt, makeActivityMethods as s, BetterAuthBrowserLayer as si, signerFailure as sn, AppIdSchema$1 as sr, ZODIAC_MODULE_PROXY_FACTORY as st, executeIdentityProductObservation as t, oauthBearerAuthClient as ti, causeChain as tn, keepRefillOnChange as tr, toRaw as tt, ConvexSmartAccountLayer as u, copyInvocationObservation as ui, makeClientRequestMethods as un, PaymentDocumentOptionsSchema as ur, MODULE_PROXY_FACTORY_ABI as ut, accountPositionsFromWire as v, toPublishableKey as vi, redactTelemetryEvent as vn, DurationMsSchema$1 as vr, ROLES_SET_TRANSACTION_UNWRAPPER_ABI as vt, accountReadErrorFromCapxul as w, InMemoryAuthCacheAdapter as wi, stampTelemetryEnvelope as wn, ChainIdSchema$1 as wr, CAPXUL_PAYMENTS_V2_ADDRESS as wt, valueActivitySummary as x, AuthClientPortTag as xi, CLI_COMMAND_NAMES as xn, toPermissionAssignmentId as xr, SAFE_ENABLE_MODULE_ABI as xt, positionPeg as y, authClientPortFromPromiseAdapter as yi, redactTelemetryProps as yn, EpochMsSchema$1 as yr, ROLES_SET_UP_ABI as yt, logDroppedEvent as z, isFailureMode as zi, FixedOfferDraftSchema as zn, runIdentityFacade as zr, failureEvidenceProps as zt };
|