@temple-digital-group/temple-canton-js 1.0.37-beta.2 → 1.0.38-beta

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temple-digital-group/temple-canton-js",
3
- "version": "1.0.37-beta.2",
3
+ "version": "1.0.38-beta",
4
4
  "description": "JavaScript library for interacting with Temple Canton blockchain",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -3557,16 +3557,55 @@ export async function getUserBalances(party = null, provider = null) {
3557
3557
  if (!party) {
3558
3558
  return { error: "Party ID is required. Pass it directly, set WALLET_ADAPTER, or configure VALIDATOR_USER_PARTY_ID." };
3559
3559
  }
3560
+ // Get all supported instrument IDs from the catalog
3561
+ const supportedInstruments = new Set(Object.keys(instrumentCatalog));
3562
+
3563
+ // ── Provider path: use getHolding() for all balances ──
3564
+ if (provider) {
3565
+ const holdings = await provider.getHolding();
3566
+
3567
+ const balances = [];
3568
+ for (const h of holdings || []) {
3569
+ const instrumentId = h.instrument_id?.id;
3570
+ const symbol = h.symbol;
3571
+
3572
+ // Only include instruments in our catalog
3573
+ const catalogKey = supportedInstruments.has(instrumentId) ? instrumentId
3574
+ : instrumentIdToSymbol[instrumentId] || null;
3575
+ if (!catalogKey) continue;
3576
+
3577
+ const catalogEntry = instrumentCatalog[catalogKey];
3578
+ const unlocked = parseFloat(h.total_unlocked_coin || '0');
3579
+ const locked = parseFloat(h.total_locked_coin || '0');
3580
+
3581
+ balances.push({
3582
+ asset: catalogKey,
3583
+ symbol: symbol,
3584
+ total_balance: unlocked + locked,
3585
+ available_balance: unlocked,
3586
+ locked_balance: locked,
3587
+ dso: catalogEntry?.kind === 'amulet' ? (h.instrument_id?.admin || null) : null,
3588
+ registrar: h.instrument_id?.admin || null,
3589
+ operator: catalogEntry?.operator || null,
3590
+ provider: catalogEntry?.provider || null,
3591
+ merge_warning: (h.total_utxos || 0) > 1,
3592
+ holdings: [],
3593
+ locked_holdings: [],
3594
+ utilityContext: null
3595
+ });
3596
+ }
3597
+
3598
+ return balances;
3599
+ }
3600
+
3601
+ // ── Custom validator path: query individual contract types from ledger ──
3560
3602
  const promises = [
3561
- getAmuletHoldingsForParty(party, false, provider),
3562
- getLockedAmuletHoldingsForParty(party, false, provider),
3563
- getUtilityHoldingsForParty(party, false, provider)
3603
+ getAmuletHoldingsForParty(party, false, null),
3604
+ getLockedAmuletHoldingsForParty(party, false, null),
3605
+ getUtilityHoldingsForParty(party, false, null)
3564
3606
  ];
3565
-
3566
- const [amuletHoldings, lockedAmuletHoldings, utilityHoldings] = await Promise.all(promises);
3567
3607
 
3568
- // Get all supported instrument IDs from the catalog
3569
- const supportedInstruments = new Set(Object.keys(instrumentCatalog));
3608
+ const [amuletHoldings, lockedAmuletHoldings, utilityHoldings] = await Promise.all(promises);
3570
3609
 
3571
3610
  // Structure: assetsByKey[registrar][asset] = { ... }
3572
3611
  const assetsByKey = {};
@@ -3713,53 +3752,49 @@ export async function getUserBalances(party = null, provider = null) {
3713
3752
  }
3714
3753
  }
3715
3754
 
3716
- // Only resolve utility contexts when NOT using a wallet provider
3717
- // (resolveUtilityCip56Context requires ledger API access)
3718
- if (!provider) {
3719
- // Resolve utility contexts for non-Amulet assets
3720
- const utilityContextPromises = new Map();
3721
- for (const key of Object.keys(assetsByKey)) {
3722
- for (const asset of Object.keys(assetsByKey[key])) {
3723
- if (asset === "Amulet") {
3724
- continue;
3725
- }
3726
- const assetEntry = assetsByKey[key][asset];
3727
- if (assetEntry.utilityContext) {
3728
- continue;
3729
- }
3730
- const registrar = assetEntry.registrar || key;
3731
- const cacheKey = `${registrar || "*"}::${asset}`;
3732
- if (!utilityContextPromises.has(cacheKey)) {
3733
- utilityContextPromises.set(cacheKey, resolveUtilityCip56Context({
3734
- party,
3735
- registrar,
3736
- utilityAsset: asset
3737
- }));
3738
- }
3755
+ // Resolve utility contexts (requires ledger API access provider path returns early above)
3756
+ const utilityContextPromises = new Map();
3757
+ for (const key of Object.keys(assetsByKey)) {
3758
+ for (const asset of Object.keys(assetsByKey[key])) {
3759
+ if (asset === "Amulet") {
3760
+ continue;
3761
+ }
3762
+ const assetEntry = assetsByKey[key][asset];
3763
+ if (assetEntry.utilityContext) {
3764
+ continue;
3765
+ }
3766
+ const registrar = assetEntry.registrar || key;
3767
+ const cacheKey = `${registrar || "*"}::${asset}`;
3768
+ if (!utilityContextPromises.has(cacheKey)) {
3769
+ utilityContextPromises.set(cacheKey, resolveUtilityCip56Context({
3770
+ party,
3771
+ registrar,
3772
+ utilityAsset: asset
3773
+ }));
3739
3774
  }
3740
3775
  }
3776
+ }
3741
3777
 
3742
- // Await all utility context promises
3743
- for (const [key, promise] of utilityContextPromises.entries()) {
3744
- utilityContextPromises.set(key, await promise);
3745
- }
3778
+ // Await all utility context promises
3779
+ for (const [key, promise] of utilityContextPromises.entries()) {
3780
+ utilityContextPromises.set(key, await promise);
3781
+ }
3746
3782
 
3747
- // Assign utility contexts
3748
- for (const key of Object.keys(assetsByKey)) {
3749
- for (const asset of Object.keys(assetsByKey[key])) {
3750
- if (asset === "Amulet") {
3751
- continue;
3752
- }
3753
- const assetEntry = assetsByKey[key][asset];
3754
- if (assetEntry.utilityContext) {
3755
- continue;
3756
- }
3757
- const registrar = assetEntry.registrar || key;
3758
- const cacheKey = `${registrar || "*"}::${asset}`;
3759
- assetEntry.utilityContext = utilityContextPromises.get(cacheKey) || null;
3760
- if (!assetEntry.registrar && assetEntry.utilityContext?.registrar) {
3761
- assetEntry.registrar = assetEntry.utilityContext.registrar;
3762
- }
3783
+ // Assign utility contexts
3784
+ for (const key of Object.keys(assetsByKey)) {
3785
+ for (const asset of Object.keys(assetsByKey[key])) {
3786
+ if (asset === "Amulet") {
3787
+ continue;
3788
+ }
3789
+ const assetEntry = assetsByKey[key][asset];
3790
+ if (assetEntry.utilityContext) {
3791
+ continue;
3792
+ }
3793
+ const registrar = assetEntry.registrar || key;
3794
+ const cacheKey = `${registrar || "*"}::${asset}`;
3795
+ assetEntry.utilityContext = utilityContextPromises.get(cacheKey) || null;
3796
+ if (!assetEntry.registrar && assetEntry.utilityContext?.registrar) {
3797
+ assetEntry.registrar = assetEntry.utilityContext.registrar;
3763
3798
  }
3764
3799
  }
3765
3800
  }
@@ -63,7 +63,7 @@ function detectServerSide(adapter) {
63
63
  */
64
64
  export function getAdapterPartyId() {
65
65
  if (!_adapter) return null;
66
- return _adapter.connection?.partyId || _adapter.partyId || null;
66
+ return _adapter.provider?.party_id || _adapter.session?.partyId || null;
67
67
  }
68
68
 
69
69
  /**
@@ -1,57 +1,57 @@
1
- /**
2
- * Initialize the library with a configuration object.
3
- * This should be called by the consuming application before using the library.
4
- * @param {Object} config - Configuration object with all required settings
5
- */
6
- export function initializeConfig(config: Object): void;
7
- /**
8
- * Update the JWT token without re-initializing the full config.
9
- * Useful when refreshing tokens for custom validator connections.
10
- * @param {string} token - The new JWT token
11
- */
12
- export function setJWTToken(token: string): void;
13
- /**
14
- * Get a configuration value from:
15
- * 1. App-provided config (if initializeConfig was called)
16
- * 2. Environment variables (process.env)
17
- */
18
- export function getConfigValue(key: any): any;
19
- export function setWalletAdapter(adapter: any): void;
20
- export function getWalletAdapter(): any;
21
- export function getAdapterProvider(): any;
22
- export const NETWORK_LOCALHOST: "localhost";
23
- export const NETWORK_TESTNET: "testnet";
24
- export const NETWORK_MAINNET: "mainnet";
25
- export default config;
26
- export namespace config {
27
- const NETWORK: any;
28
- const API_BASE_URL: any;
29
- const VALIDATOR_API_URL: any;
30
- const VALIDATOR_SCAN_API_URL: any;
31
- const VALIDATOR_DSO_PARTY_ID: any;
32
- const VALIDATOR_USER_PARTY_ID: any;
33
- const TEMPLE_PARTY_ID: any;
34
- const AUTH0_TOKEN_URL: any;
35
- const AUTH0_USER_ID: any;
36
- const AUTH0_CLIENT_ID: any;
37
- const AUTH0_CLIENT_SECRET: any;
38
- const AUTH0_AUDIENCE: any;
39
- const JWT_TOKEN: any;
40
- let AUTH0_SCOPE: string;
41
- let AUTH0_GRANT_TYPE: string;
42
- let PACKAGE_UTILITY_APP_ID: string;
43
- let PACKAGE_SPLICE_ID: string;
44
- let PACKAGE_TEMPLE_ID: string;
45
- let INTERFACE_TEMPLE_ID: string;
46
- let PACKAGE_UTILITY_APP_REGISTRY_APP_ID: string;
47
- let PACKAGE_UTILITY_APP_REGISTRY_ID: string;
48
- let PACKAGE_UTILITY_APP_CREDENTIAL_ID: string;
49
- const CONTRACT_ORCHESTRATOR_ID: any;
50
- const TEMPLATE_ID_ORCHESTRATOR: any;
51
- const DISCLOSURE_ORCHESTRATOR: any;
52
- const SYNCHRONIZER_ORCHESTRATOR: any;
53
- const CONTRACT_FEATURED_APP_ID: any;
54
- const TEMPLATE_ID_FEATURED_APP: any;
55
- const DISCLOSURE_FEATURED_APP: any;
56
- const SYNCHRONIZER_FEATURED_APP: any;
57
- }
1
+ /**
2
+ * Initialize the library with a configuration object.
3
+ * This should be called by the consuming application before using the library.
4
+ * @param {Object} config - Configuration object with all required settings
5
+ */
6
+ export function initializeConfig(config: Object): void;
7
+ /**
8
+ * Update the JWT token without re-initializing the full config.
9
+ * Useful when refreshing tokens for custom validator connections.
10
+ * @param {string} token - The new JWT token
11
+ */
12
+ export function setJWTToken(token: string): void;
13
+ /**
14
+ * Get a configuration value from:
15
+ * 1. App-provided config (if initializeConfig was called)
16
+ * 2. Environment variables (process.env)
17
+ */
18
+ export function getConfigValue(key: any): any;
19
+ export function setWalletAdapter(adapter: any): void;
20
+ export function getWalletAdapter(): any;
21
+ export function getAdapterProvider(): any;
22
+ export const NETWORK_LOCALHOST: "localhost";
23
+ export const NETWORK_TESTNET: "testnet";
24
+ export const NETWORK_MAINNET: "mainnet";
25
+ export default config;
26
+ export namespace config {
27
+ const NETWORK: any;
28
+ const API_BASE_URL: any;
29
+ const VALIDATOR_API_URL: any;
30
+ const VALIDATOR_SCAN_API_URL: any;
31
+ const VALIDATOR_DSO_PARTY_ID: any;
32
+ const VALIDATOR_USER_PARTY_ID: any;
33
+ const TEMPLE_PARTY_ID: any;
34
+ const AUTH0_TOKEN_URL: any;
35
+ const AUTH0_USER_ID: any;
36
+ const AUTH0_CLIENT_ID: any;
37
+ const AUTH0_CLIENT_SECRET: any;
38
+ const AUTH0_AUDIENCE: any;
39
+ const JWT_TOKEN: any;
40
+ let AUTH0_SCOPE: string;
41
+ let AUTH0_GRANT_TYPE: string;
42
+ let PACKAGE_UTILITY_APP_ID: string;
43
+ let PACKAGE_SPLICE_ID: string;
44
+ let PACKAGE_TEMPLE_ID: string;
45
+ let INTERFACE_TEMPLE_ID: string;
46
+ let PACKAGE_UTILITY_APP_REGISTRY_APP_ID: string;
47
+ let PACKAGE_UTILITY_APP_REGISTRY_ID: string;
48
+ let PACKAGE_UTILITY_APP_CREDENTIAL_ID: string;
49
+ const CONTRACT_ORCHESTRATOR_ID: any;
50
+ const TEMPLATE_ID_ORCHESTRATOR: any;
51
+ const DISCLOSURE_ORCHESTRATOR: any;
52
+ const SYNCHRONIZER_ORCHESTRATOR: any;
53
+ const CONTRACT_FEATURED_APP_ID: any;
54
+ const TEMPLATE_ID_FEATURED_APP: any;
55
+ const DISCLOSURE_FEATURED_APP: any;
56
+ const SYNCHRONIZER_FEATURED_APP: any;
57
+ }
@@ -62,9 +62,9 @@ const NETWORK_CONTRACTS = {
62
62
  [NETWORK_MAINNET]: {
63
63
  TEMPLE_PARTY_ID: "temple-mainnet-1::1220f238bb79df3efbbac2ea964c3cd501003971a2cb59043e2dac50b06e85b8620f",
64
64
  VALIDATOR_DSO_PARTY_ID: "DSO::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
65
- CONTRACT_ORCHESTRATOR_ID: "0026c99f5f6b8962cba69aee6392c65a2b5968a426ea18e971ec711259acd2e02eca12122024481221b69db9257de7875d2d74484a25a8b5795c77bc684442e812ff06ce81",
66
- TEMPLATE_ID_ORCHESTRATOR: "0110667c2e17ca40d2aa7396d3b40e228c770d203676b6950ac819de86cf6964:Temple.Order.Orchestrator:Orchestrator",
67
- DISCLOSURE_ORCHESTRATOR: "CgMyLjEStgMKRQAmyZ9fa4liy6aa7mOSxlorWWikJuoY6XHscRJZrNLgLsoSEiAkSBIhtp25JX3nh10tdEhKJai1eVx3vGhEQugS/wbOgRIRdGVtcGxlLW9yZGVyLWltcGwabQpAMDExMDY2N2MyZTE3Y2E0MGQyYWE3Mzk2ZDNiNDBlMjI4Yzc3MGQyMDM2NzZiNjk1MGFjODE5ZGU4NmNmNjk2NBIGVGVtcGxlEgVPcmRlchIMT3JjaGVzdHJhdG9yGgxPcmNoZXN0cmF0b3IiXmpcCloKWDpWdGVtcGxlLW1haW5uZXQtMTo6MTIyMGYyMzhiYjc5ZGYzZWZiYmFjMmVhOTY0YzNjZDUwMTAwMzk3MWEyY2I1OTA0M2UyZGFjNTBiMDZlODViODYyMGYqVnRlbXBsZS1tYWlubmV0LTE6OjEyMjBmMjM4YmI3OWRmM2VmYmJhYzJlYTk2NGMzY2Q1MDEwMDM5NzFhMmNiNTkwNDNlMmRhYzUwYjA2ZTg1Yjg2MjBmOeBCMhKJSAYAQioKJgokCAESIFBZFBJVc2L/ITJ2Y+Bz1lRHAVUnkiSiZJFuvzwlYwUyEB4=",
65
+ CONTRACT_ORCHESTRATOR_ID: "00a6a32ae747e806e5da946e7d8247f4c762a39ed294339f94dabbc63254fb8ef9ca121220a458f4a48de8afaf8f1b1aa36b11c89f87788748ed26206bd453ed554b5daf27",
66
+ TEMPLATE_ID_ORCHESTRATOR: "a5c99f1f6e614c2e2c30498db8652eca6c9b4801b6ba09755ad50ef982f2273c:Temple.Order.Orchestrator:Orchestrator",
67
+ DISCLOSURE_ORCHESTRATOR: "CgMyLjEStgMKRQCmoyrnR+gG5dqUbn2CR/THYqOe0pQzn5Tau8YyVPuO+coSEiCkWPSkjeivr48bGqNrEcifh3iHSO0mIGvUU+1VS12vJxIRdGVtcGxlLW9yZGVyLWltcGwabQpAYTVjOTlmMWY2ZTYxNGMyZTJjMzA0OThkYjg2NTJlY2E2YzliNDgwMWI2YmEwOTc1NWFkNTBlZjk4MmYyMjczYxIGVGVtcGxlEgVPcmRlchIMT3JjaGVzdHJhdG9yGgxPcmNoZXN0cmF0b3IiXmpcCloKWDpWdGVtcGxlLW1haW5uZXQtMTo6MTIyMGYyMzhiYjc5ZGYzZWZiYmFjMmVhOTY0YzNjZDUwMTAwMzk3MWEyY2I1OTA0M2UyZGFjNTBiMDZlODViODYyMGYqVnRlbXBsZS1tYWlubmV0LTE6OjEyMjBmMjM4YmI3OWRmM2VmYmJhYzJlYTk2NGMzY2Q1MDEwMDM5NzFhMmNiNTkwNDNlMmRhYzUwYjA2ZTg1Yjg2MjBmOd+zN/JMTAYAQioKJgokCAESIGU/bGc39wT4OUE/3k+6Z4gbIs1OEXZwkSQ0DYNtgMacEB4=",
68
68
  SYNCHRONIZER_ORCHESTRATOR: "global-domain::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
69
69
  CONTRACT_FEATURED_APP_ID: "001bac86a228f209faad6e7a4adf40cd17b8aa7605f166333d640ad3f0c172eeb6ca111220da4eb40ed3d6f4521dcacf25d027c02f4bd0b9c561bc17d76808d30239c75713",
70
70
  TEMPLATE_ID_FEATURED_APP: "a5b055492fb8f08b2e7bc0fc94da6da50c39c2e1d7f24cd5ea8db12fc87c1332:Splice.Amulet:FeaturedAppRight",
@@ -74,9 +74,9 @@ const NETWORK_CONTRACTS = {
74
74
  [NETWORK_TESTNET]: {
75
75
  TEMPLE_PARTY_ID: "temple-testnet-1::12209b8dd6bb0fdc220f1a78ec54a10ece9e959e30d369c391b2f1efdb84f2b48262",
76
76
  VALIDATOR_DSO_PARTY_ID: "DSO::1220f22a8b8f2d813c25b9a684dc4dd52b532a0174d8e73a13cdf2baabfff7518337",
77
- CONTRACT_ORCHESTRATOR_ID: "00ef7791cb51b45194791ba1d6d83f969878f17dfde50970daf9f8279c87417346ca1212202bb3d941b036cfcb8893b99d1ffd1bcc66e3999b5d67d4f6b77a728298f4fcdf",
78
- TEMPLATE_ID_ORCHESTRATOR: "0110667c2e17ca40d2aa7396d3b40e228c770d203676b6950ac819de86cf6964:Temple.Order.Orchestrator:Orchestrator",
79
- DISCLOSURE_ORCHESTRATOR: "CgMyLjEStgMKRQDvd5HLUbRRlHkbodbYP5aYePF9/eUJcNr5+Cech0FzRsoSEiArs9lBsDbPy4iTuZ0f/RvMZuOZm11n1Pa3enKCmPT83xIRdGVtcGxlLW9yZGVyLWltcGwabQpAMDExMDY2N2MyZTE3Y2E0MGQyYWE3Mzk2ZDNiNDBlMjI4Yzc3MGQyMDM2NzZiNjk1MGFjODE5ZGU4NmNmNjk2NBIGVGVtcGxlEgVPcmRlchIMT3JjaGVzdHJhdG9yGgxPcmNoZXN0cmF0b3IiXmpcCloKWDpWdGVtcGxlLXRlc3RuZXQtMTo6MTIyMDliOGRkNmJiMGZkYzIyMGYxYTc4ZWM1NGExMGVjZTllOTU5ZTMwZDM2OWMzOTFiMmYxZWZkYjg0ZjJiNDgyNjIqVnRlbXBsZS10ZXN0bmV0LTE6OjEyMjA5YjhkZDZiYjBmZGMyMjBmMWE3OGVjNTRhMTBlY2U5ZTk1OWUzMGQzNjljMzkxYjJmMWVmZGI4NGYyYjQ4MjYyOREf61eFSAYAQioKJgokCAESIIENK9R3ypVBYdnm6oV0J/a3GgdUNLbBFReq5znIYhc4EB4=",
77
+ CONTRACT_ORCHESTRATOR_ID: "00fa1edf419117ea79548d54ec6754d3c37a433cf6ec9cea552630b94f5c9f71d9ca121220ffb75178ba721c19ea809085757b1a168a0a58fb52b93bd298fbad26509fe4bd",
78
+ TEMPLATE_ID_ORCHESTRATOR: "a5c99f1f6e614c2e2c30498db8652eca6c9b4801b6ba09755ad50ef982f2273c:Temple.Order.Orchestrator:Orchestrator",
79
+ DISCLOSURE_ORCHESTRATOR: "CgMyLjEStgMKRQD6Ht9BkRfqeVSNVOxnVNPDekM89uyc6lUmMLlPXJ9x2coSEiD/t1F4unIcGeqAkIV1exoWigpY+1K5O9KY+60mUJ/kvRIRdGVtcGxlLW9yZGVyLWltcGwabQpAYTVjOTlmMWY2ZTYxNGMyZTJjMzA0OThkYjg2NTJlY2E2YzliNDgwMWI2YmEwOTc1NWFkNTBlZjk4MmYyMjczYxIGVGVtcGxlEgVPcmRlchIMT3JjaGVzdHJhdG9yGgxPcmNoZXN0cmF0b3IiXmpcCloKWDpWdGVtcGxlLXRlc3RuZXQtMTo6MTIyMDliOGRkNmJiMGZkYzIyMGYxYTc4ZWM1NGExMGVjZTllOTU5ZTMwZDM2OWMzOTFiMmYxZWZkYjg0ZjJiNDgyNjIqVnRlbXBsZS10ZXN0bmV0LTE6OjEyMjA5YjhkZDZiYjBmZGMyMjBmMWE3OGVjNTRhMTBlY2U5ZTk1OWUzMGQzNjljMzkxYjJmMWVmZGI4NGYyYjQ4MjYyOUK//cFLTAYAQioKJgokCAESIHeaC3pOxvMHGC7pjsEMpZKn8Uvf7OVL3gP4vjOCc1ZOEB4=",
80
80
  SYNCHRONIZER_ORCHESTRATOR: "global-domain::1220f22a8b8f2d813c25b9a684dc4dd52b532a0174d8e73a13cdf2baabfff7518337",
81
81
  CONTRACT_FEATURED_APP_ID: "0072f0a3b647d75fdb1ddba78ce379bc836c748256d93cb7b2655e3ef8b3eca412ca12122090530c2e189e8a42d351ae29c977c81318efa59717e355dbf9f670b515112bbe",
82
82
  TEMPLATE_ID_FEATURED_APP: "3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1:Splice.Amulet:FeaturedAppRight",
@@ -126,8 +126,8 @@ const config = {
126
126
 
127
127
  // Canton Package IDs (hardcoded - these rarely change)
128
128
  PACKAGE_UTILITY_APP_ID: "dd3a9f2d51cc4c52d9ec2e1d7ff235298dcfb3afd1d50ab44328b1aaa9a18587", // utility-registry-holding-v0-0.1.2.dar
129
- PACKAGE_SPLICE_ID: "3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1", // splice-amulet-0.1.14.dar
130
- PACKAGE_TEMPLE_ID: "0110667c2e17ca40d2aa7396d3b40e228c770d203676b6950ac819de86cf6964", // temple-order-impl-3.1.8.dar
129
+ PACKAGE_SPLICE_ID: "67fac2f853bce8dbf0b9817bb5ba7c59f10e8120b7c808696f7010e5f0c8a791", // splice-amulet-0.1.15.dar
130
+ PACKAGE_TEMPLE_ID: "a5c99f1f6e614c2e2c30498db8652eca6c9b4801b6ba09755ad50ef982f2273c", // temple-order-impl-3.1.9.dar
131
131
  INTERFACE_TEMPLE_ID: "e833b8cc28483f87e5db3f46c1beb2e9d595bf8d575728d640f2632ce6d8211d", // temple-order-interface-3.1.0.dar
132
132
  PACKAGE_UTILITY_APP_REGISTRY_APP_ID: "170929b11d5f0ed1385f890f42887c31ff7e289c0f4bc482aff193a7173d576c", // utility-app-registry-app-v0-0.1.2.dar
133
133
  PACKAGE_UTILITY_APP_REGISTRY_ID: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa", // utility-app-registry-v0-0.1.2.dar