@heyanon-arp/sdk 0.0.10 → 0.0.12

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/README.md CHANGED
@@ -100,7 +100,7 @@ verifyCosignature({ cosignature: cs, payload: cs.payload, signerIdentityPubkey:
100
100
  | `challenge` | `ARP-CHALLENGE-v1` ownership proof for identity registration |
101
101
  | `attestation` | `ARP-KEY-LINK-v1` / `ARP-KEY-ROTATION-v1` (scrypt password proof) |
102
102
  | `server-chain` | `signed_message_hash` + `server_event_hash` builders for chain audit |
103
- | `settlement` | `ARP-SOLANA-RELEASE-v1.5` / `…-PARTIAL-RELEASE-v1.5` / `…-REFUND-v1` digests |
103
+ | `settlement` | `ARP-SOLANA-RELEASE-v1.5` / `…-REFUND-v1` digests |
104
104
  | `escrow` | Solana `create_lock` ix data builder, condition-hash derivation |
105
105
  | `purpose` | Domain separator constants |
106
106
  | `utils` | UUID v4, sender_nonce, RFC 3339 timestamp helpers |
package/dist/assets.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  * on-chain `CollateralConfig` allowlist):
8
8
  *
9
9
  * - solana-mainnet: SOL, USDC, USDT, ANON
10
- * - solana-devnet: SOL only
10
+ * - solana-devnet: SOL, USDC
11
11
  *
12
12
  * This module is the single source of truth — the server's offer/lock
13
13
  * gates and the CLI's shorthand resolution both import from here.
@@ -55,22 +55,28 @@ export declare const MAINNET_MINTS: {
55
55
  readonly USDT: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB";
56
56
  readonly ANON: "9McvH6w97oewLmPxqQEoHUAv3u5iYMyQ9AeZZhguYf1T";
57
57
  };
58
+ /**
59
+ * Canonical devnet SPL payment mints — the project's devnet test
60
+ * issues, verified on devnet (decimals match, legacy SPL Token
61
+ * program, not Token-2022). Mirrors `MAINNET_MINTS`.
62
+ */
63
+ export declare const DEVNET_MINTS: {
64
+ readonly USDC: "7ZjP2eJnQrW1SuE1kAP7tdrQuhkTVpco1NQKGjEMHpgg";
65
+ };
58
66
  /**
59
67
  * @deprecated Compatibility alias for the pre-whitelist public API.
60
- * Devnet USDC is NOT a payable asset anymore (devnet pays in native
61
- * SOL only) — this constant exists solely so existing imports keep
62
- * compiling. Use `MAINNET_MINTS` / `ASSET_WHITELIST` instead.
68
+ * Use `MAINNET_MINTS` / `DEVNET_MINTS` / `ASSET_WHITELIST` instead.
63
69
  */
64
70
  export declare const USDC_MINTS: {
65
71
  readonly 'solana-mainnet': "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
66
- readonly 'solana-devnet': "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU";
72
+ readonly 'solana-devnet': "7ZjP2eJnQrW1SuE1kAP7tdrQuhkTVpco1NQKGjEMHpgg";
67
73
  };
68
74
  /**
69
75
  * The payment whitelist, keyed by cluster. Closed list — an offer in
70
76
  * any other asset is rejected server-side
71
- * (`DELEGATION_ASSET_NOT_ALLOWED`). Devnet deliberately pays in
72
- * native SOL only; SPL flows are exercised there via the server's
73
- * `ARP_ASSET_WHITELIST_EXTRA` test hatch.
77
+ * (`DELEGATION_ASSET_NOT_ALLOWED`). Devnet pays in native SOL + a test
78
+ * USDC; additional per-deploy SPL entries can still be merged via the
79
+ * server's `ARP_ASSET_WHITELIST_EXTRA` test hatch.
74
80
  */
75
81
  export declare const ASSET_WHITELIST: Readonly<Record<SolanaCluster, readonly AssetIdentifier[]>>;
76
82
  /**
package/dist/index.js CHANGED
@@ -171,11 +171,6 @@ var Purpose = {
171
171
  * V1.5 — digest now binds fee_bps_at_lock + fee_recipient_at_lock.
172
172
  */
173
173
  SOLANA_RELEASE: "ARP-SOLANA-RELEASE-v1.5",
174
- /**
175
- * Settlement-key signature authorising an on-chain `partial_release`.
176
- * V1.5 — digest now binds fee_bps_at_lock + fee_recipient_at_lock.
177
- */
178
- SOLANA_PARTIAL_RELEASE: "ARP-SOLANA-PARTIAL-RELEASE-v1.5",
179
174
  /** Settlement-key signature authorising an on-chain co-signed `refund_lock`. */
180
175
  SOLANA_REFUND: "ARP-SOLANA-REFUND-v1",
181
176
  /** Admin (platform multisig) signature authorising `resolve_dispute`. */
@@ -183,12 +178,7 @@ var Purpose = {
183
178
  };
184
179
  var PROTECTED_PURPOSES = [Purpose.ENVELOPE];
185
180
  var COSIGNATURE_PURPOSES = [Purpose.RECEIPT, Purpose.DISPUTE_RESPONSE];
186
- var SETTLEMENT_PURPOSES = [
187
- Purpose.SOLANA_RELEASE,
188
- Purpose.SOLANA_PARTIAL_RELEASE,
189
- Purpose.SOLANA_REFUND,
190
- Purpose.SOLANA_RESOLVE_DISPUTE
191
- ];
181
+ var SETTLEMENT_PURPOSES = [Purpose.SOLANA_RELEASE, Purpose.SOLANA_REFUND, Purpose.SOLANA_RESOLVE_DISPUTE];
192
182
 
193
183
  // src/challenge/challenge.ts
194
184
  var CHALLENGE_PURPOSE_BYTES = new TextEncoder().encode(Purpose.CHALLENGE);
@@ -441,9 +431,12 @@ var MAINNET_MINTS = {
441
431
  USDT: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
442
432
  ANON: "9McvH6w97oewLmPxqQEoHUAv3u5iYMyQ9AeZZhguYf1T"
443
433
  };
434
+ var DEVNET_MINTS = {
435
+ USDC: "7ZjP2eJnQrW1SuE1kAP7tdrQuhkTVpco1NQKGjEMHpgg"
436
+ };
444
437
  var USDC_MINTS = {
445
438
  "solana-mainnet": MAINNET_MINTS.USDC,
446
- "solana-devnet": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU"
439
+ "solana-devnet": DEVNET_MINTS.USDC
447
440
  };
448
441
  var SOL_MAINNET = {
449
442
  asset_id: `solana:${SOLANA_CLUSTER_IDS["solana-mainnet"]}/slip44:${SLIP44_SOLANA}`,
@@ -455,6 +448,11 @@ var SOL_DEVNET = {
455
448
  decimals: 9,
456
449
  symbol: "SOL"
457
450
  };
451
+ var USDC_DEVNET = {
452
+ asset_id: `solana:${SOLANA_CLUSTER_IDS["solana-devnet"]}/spl:${DEVNET_MINTS.USDC}`,
453
+ decimals: 9,
454
+ symbol: "USDC"
455
+ };
458
456
  var ASSET_WHITELIST = {
459
457
  "solana-mainnet": [
460
458
  SOL_MAINNET,
@@ -474,7 +472,7 @@ var ASSET_WHITELIST = {
474
472
  symbol: "ANON"
475
473
  }
476
474
  ],
477
- "solana-devnet": [SOL_DEVNET]
475
+ "solana-devnet": [SOL_DEVNET, USDC_DEVNET]
478
476
  };
479
477
  var WELL_KNOWN_ASSETS = Object.fromEntries(
480
478
  Object.entries(ASSET_WHITELIST).flatMap(([cluster, assets]) => assets.map((asset) => [`${asset.symbol}:${cluster}`, asset]))
@@ -726,6 +724,7 @@ exports.COSIGNATURE_PURPOSES = COSIGNATURE_PURPOSES;
726
724
  exports.CREATE_LOCK_DISCRIMINATOR = CREATE_LOCK_DISCRIMINATOR;
727
725
  exports.CREATE_LOCK_NATIVE_DISCRIMINATOR = CREATE_LOCK_NATIVE_DISCRIMINATOR;
728
726
  exports.DECLINE_REASONS = DECLINE_REASONS;
727
+ exports.DEVNET_MINTS = DEVNET_MINTS;
729
728
  exports.ESCROW_PDA_SEEDS = ESCROW_PDA_SEEDS;
730
729
  exports.LOCK_ACCOUNT_DISCRIMINATOR = LOCK_ACCOUNT_DISCRIMINATOR;
731
730
  exports.LOCK_ACCOUNT_SIZE = LOCK_ACCOUNT_SIZE;
package/dist/index.mjs CHANGED
@@ -146,11 +146,6 @@ var Purpose = {
146
146
  * V1.5 — digest now binds fee_bps_at_lock + fee_recipient_at_lock.
147
147
  */
148
148
  SOLANA_RELEASE: "ARP-SOLANA-RELEASE-v1.5",
149
- /**
150
- * Settlement-key signature authorising an on-chain `partial_release`.
151
- * V1.5 — digest now binds fee_bps_at_lock + fee_recipient_at_lock.
152
- */
153
- SOLANA_PARTIAL_RELEASE: "ARP-SOLANA-PARTIAL-RELEASE-v1.5",
154
149
  /** Settlement-key signature authorising an on-chain co-signed `refund_lock`. */
155
150
  SOLANA_REFUND: "ARP-SOLANA-REFUND-v1",
156
151
  /** Admin (platform multisig) signature authorising `resolve_dispute`. */
@@ -158,12 +153,7 @@ var Purpose = {
158
153
  };
159
154
  var PROTECTED_PURPOSES = [Purpose.ENVELOPE];
160
155
  var COSIGNATURE_PURPOSES = [Purpose.RECEIPT, Purpose.DISPUTE_RESPONSE];
161
- var SETTLEMENT_PURPOSES = [
162
- Purpose.SOLANA_RELEASE,
163
- Purpose.SOLANA_PARTIAL_RELEASE,
164
- Purpose.SOLANA_REFUND,
165
- Purpose.SOLANA_RESOLVE_DISPUTE
166
- ];
156
+ var SETTLEMENT_PURPOSES = [Purpose.SOLANA_RELEASE, Purpose.SOLANA_REFUND, Purpose.SOLANA_RESOLVE_DISPUTE];
167
157
 
168
158
  // src/challenge/challenge.ts
169
159
  var CHALLENGE_PURPOSE_BYTES = new TextEncoder().encode(Purpose.CHALLENGE);
@@ -416,9 +406,12 @@ var MAINNET_MINTS = {
416
406
  USDT: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
417
407
  ANON: "9McvH6w97oewLmPxqQEoHUAv3u5iYMyQ9AeZZhguYf1T"
418
408
  };
409
+ var DEVNET_MINTS = {
410
+ USDC: "7ZjP2eJnQrW1SuE1kAP7tdrQuhkTVpco1NQKGjEMHpgg"
411
+ };
419
412
  var USDC_MINTS = {
420
413
  "solana-mainnet": MAINNET_MINTS.USDC,
421
- "solana-devnet": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU"
414
+ "solana-devnet": DEVNET_MINTS.USDC
422
415
  };
423
416
  var SOL_MAINNET = {
424
417
  asset_id: `solana:${SOLANA_CLUSTER_IDS["solana-mainnet"]}/slip44:${SLIP44_SOLANA}`,
@@ -430,6 +423,11 @@ var SOL_DEVNET = {
430
423
  decimals: 9,
431
424
  symbol: "SOL"
432
425
  };
426
+ var USDC_DEVNET = {
427
+ asset_id: `solana:${SOLANA_CLUSTER_IDS["solana-devnet"]}/spl:${DEVNET_MINTS.USDC}`,
428
+ decimals: 9,
429
+ symbol: "USDC"
430
+ };
433
431
  var ASSET_WHITELIST = {
434
432
  "solana-mainnet": [
435
433
  SOL_MAINNET,
@@ -449,7 +447,7 @@ var ASSET_WHITELIST = {
449
447
  symbol: "ANON"
450
448
  }
451
449
  ],
452
- "solana-devnet": [SOL_DEVNET]
450
+ "solana-devnet": [SOL_DEVNET, USDC_DEVNET]
453
451
  };
454
452
  var WELL_KNOWN_ASSETS = Object.fromEntries(
455
453
  Object.entries(ASSET_WHITELIST).flatMap(([cluster, assets]) => assets.map((asset) => [`${asset.symbol}:${cluster}`, asset]))
@@ -695,4 +693,4 @@ function readU64LE(buf, off) {
695
693
  return v;
696
694
  }
697
695
 
698
- export { ASSET_WHITELIST, CAIP19_REGEX, COSIGNATURE_PURPOSES, CREATE_LOCK_DISCRIMINATOR, CREATE_LOCK_NATIVE_DISCRIMINATOR, DECLINE_REASONS, ESCROW_PDA_SEEDS, LOCK_ACCOUNT_DISCRIMINATOR, LOCK_ACCOUNT_SIZE, LOCK_STATE_NAMES, LOCK_TERMINAL_STATES, MAINNET_MINTS, NATIVE_SOL_MINT_BASE58, NO_ARG_LIFECYCLE_INSTRUCTIONS, PROTECTED_PURPOSES, Purpose, SCRYPT_PARAMS, SETTLEMENT_PURPOSES, SLIP44_SOLANA, SOLANA_CLUSTER_IDS, SPL_TOKEN_PROGRAM_ID_BASE58, USDC_MINTS, WELL_KNOWN_ASSETS, WELL_KNOWN_ASSET_KEYS, base58btcDecode, base58btcEncode, buildCreateLockIxData, buildLifecycleIxData, buildResolveDisputeIxData, bytes16ToDelegationId, canonicalBytes, canonicalJson, canonicalSha256Hex, computeCreateLockDiscriminator, computeLockAccountDiscriminator, decodeLockAccount, delegationIdToBytes16, deriveDelegationConditionHash, deriveLockId, deriveScryptKey, detectTokenProgramFromOwner, detectTokenProgramFromOwnerBytes, expiresAt, findAssetByAssetId, findFirstChainDivergence, formatDid, generateKeyPair, getPublicKey2 as getPublicKey, instructionDiscriminator, isAssetIdentifier, isDeclineReason, isValidDid, isWhitelistedAssetId, listWhitelistedAssets, parseCaip19SolanaAssetId, parseDid, pollUntil, resolveAsset, rfc3339, scryptPasswordProofSign, scryptPasswordProofVerify, senderNonce, serverEventHash, sign2 as sign, signChallenge, signEnvelope, signKeyLinkAttestation, signedMessageHash, uuidV4, verify2 as verify, verifyChallenge, verifyEnvelope, verifyKeyLinkAttestation };
696
+ export { ASSET_WHITELIST, CAIP19_REGEX, COSIGNATURE_PURPOSES, CREATE_LOCK_DISCRIMINATOR, CREATE_LOCK_NATIVE_DISCRIMINATOR, DECLINE_REASONS, DEVNET_MINTS, ESCROW_PDA_SEEDS, LOCK_ACCOUNT_DISCRIMINATOR, LOCK_ACCOUNT_SIZE, LOCK_STATE_NAMES, LOCK_TERMINAL_STATES, MAINNET_MINTS, NATIVE_SOL_MINT_BASE58, NO_ARG_LIFECYCLE_INSTRUCTIONS, PROTECTED_PURPOSES, Purpose, SCRYPT_PARAMS, SETTLEMENT_PURPOSES, SLIP44_SOLANA, SOLANA_CLUSTER_IDS, SPL_TOKEN_PROGRAM_ID_BASE58, USDC_MINTS, WELL_KNOWN_ASSETS, WELL_KNOWN_ASSET_KEYS, base58btcDecode, base58btcEncode, buildCreateLockIxData, buildLifecycleIxData, buildResolveDisputeIxData, bytes16ToDelegationId, canonicalBytes, canonicalJson, canonicalSha256Hex, computeCreateLockDiscriminator, computeLockAccountDiscriminator, decodeLockAccount, delegationIdToBytes16, deriveDelegationConditionHash, deriveLockId, deriveScryptKey, detectTokenProgramFromOwner, detectTokenProgramFromOwnerBytes, expiresAt, findAssetByAssetId, findFirstChainDivergence, formatDid, generateKeyPair, getPublicKey2 as getPublicKey, instructionDiscriminator, isAssetIdentifier, isDeclineReason, isValidDid, isWhitelistedAssetId, listWhitelistedAssets, parseCaip19SolanaAssetId, parseDid, pollUntil, resolveAsset, rfc3339, scryptPasswordProofSign, scryptPasswordProofVerify, senderNonce, serverEventHash, sign2 as sign, signChallenge, signEnvelope, signKeyLinkAttestation, signedMessageHash, uuidV4, verify2 as verify, verifyChallenge, verifyEnvelope, verifyKeyLinkAttestation };
package/dist/purpose.d.ts CHANGED
@@ -28,11 +28,6 @@ export declare const Purpose: {
28
28
  * V1.5 — digest now binds fee_bps_at_lock + fee_recipient_at_lock.
29
29
  */
30
30
  readonly SOLANA_RELEASE: "ARP-SOLANA-RELEASE-v1.5";
31
- /**
32
- * Settlement-key signature authorising an on-chain `partial_release`.
33
- * V1.5 — digest now binds fee_bps_at_lock + fee_recipient_at_lock.
34
- */
35
- readonly SOLANA_PARTIAL_RELEASE: "ARP-SOLANA-PARTIAL-RELEASE-v1.5";
36
31
  /** Settlement-key signature authorising an on-chain co-signed `refund_lock`. */
37
32
  readonly SOLANA_REFUND: "ARP-SOLANA-REFUND-v1";
38
33
  /** Admin (platform multisig) signature authorising `resolve_dispute`. */
@@ -193,7 +193,7 @@ export interface DisputeContent {
193
193
  dispute_id: string;
194
194
  delegation_id: string;
195
195
  claim?: string;
196
- remedy_requested?: 'refund' | 'rework' | 'partial_release' | 'release';
196
+ remedy_requested?: 'refund' | 'rework' | 'release';
197
197
  evidence_refs?: string[];
198
198
  response_text?: string;
199
199
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heyanon-arp/sdk",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "description": "TypeScript SDK for the Agent Relationship Protocol — canonical JSON, Ed25519 envelope sign/verify, did:arp identity, receipt co-signatures, scrypt key attestation, chain-audit helpers.",
5
5
  "license": "MIT",
6
6
  "keywords": [