@canton-network/wallet-gateway-remote 0.11.0 → 0.11.2

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 (26) hide show
  1. package/dist/ledger/wallet-sync-service.d.ts +2 -1
  2. package/dist/ledger/wallet-sync-service.d.ts.map +1 -1
  3. package/dist/ledger/wallet-sync-service.js +3 -2
  4. package/dist/ledger/wallet-sync-service.test.js +2 -2
  5. package/dist/user-api/controller.d.ts.map +1 -1
  6. package/dist/user-api/controller.js +12 -3
  7. package/dist/web/frontend/404/index.html +2 -2
  8. package/dist/web/frontend/approve/index.html +4 -3
  9. package/dist/web/frontend/assets/{404-m2H-YHg-.js → 404-DOEElx02.js} +1 -1
  10. package/dist/web/frontend/assets/approve-D15QJVvX.js +185 -0
  11. package/dist/web/frontend/assets/{callback-Da6RLMl5.js → callback-D0wYdJFr.js} +1 -1
  12. package/dist/web/frontend/assets/decode-CLJkuAIr.js +2 -0
  13. package/dist/web/frontend/assets/{index-DWw9PrWk.js → index-EdAN1_qe.js} +1 -1
  14. package/dist/web/frontend/assets/{login-DeTFkeYw.js → login-CqVgGYZA.js} +1 -1
  15. package/dist/web/frontend/assets/{settings-DdQ6zt_Y.js → settings-DgcggvCV.js} +1 -1
  16. package/dist/web/frontend/assets/{state-Wv0NKnXW.js → state-DcvVyWZr.js} +1 -1
  17. package/dist/web/frontend/assets/transactions-C-931My3.js +140 -0
  18. package/dist/web/frontend/assets/{wallets-ySaBy7V_.js → wallets-Cf2MBnzs.js} +1 -1
  19. package/dist/web/frontend/callback/index.html +2 -2
  20. package/dist/web/frontend/index.html +1 -1
  21. package/dist/web/frontend/login/index.html +3 -3
  22. package/dist/web/frontend/settings/index.html +3 -3
  23. package/dist/web/frontend/transactions/index.html +17 -0
  24. package/dist/web/frontend/wallets/index.html +3 -3
  25. package/package.json +1 -1
  26. package/dist/web/frontend/assets/approve-D-yQkaxd.js +0 -182
@@ -11,11 +11,12 @@ export type WalletSyncReport = {
11
11
  export declare class WalletSyncService {
12
12
  private store;
13
13
  private ledgerClient;
14
+ private adminLedgerClient;
14
15
  private authContext;
15
16
  private logger;
16
17
  private signingDrivers;
17
18
  private partyAllocator;
18
- constructor(store: Store, ledgerClient: LedgerClient, authContext: AuthContext, logger: Logger, signingDrivers: Partial<Record<SigningProvider, SigningDriverInterface>> | undefined, partyAllocator: PartyAllocationService);
19
+ constructor(store: Store, ledgerClient: LedgerClient, adminLedgerClient: LedgerClient, authContext: AuthContext, logger: Logger, signingDrivers: Partial<Record<SigningProvider, SigningDriverInterface>> | undefined, partyAllocator: PartyAllocationService);
19
20
  run(timeoutMs: number): Promise<void>;
20
21
  protected resolveSigningProvider(namespace: string): Promise<{
21
22
  signingProviderId: SigningProvider.PARTICIPANT;
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-sync-service.d.ts","sourceRoot":"","sources":["../../src/ledger/wallet-sync-service.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,YAAY,EAEf,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EACH,sBAAsB,EACtB,eAAe,EAClB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AACD,qBAAa,iBAAiB;IAEtB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,cAAc;gBAPd,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,CAC3B,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAClD,YAAK,EACE,cAAc,EAAE,sBAAsB;IAG5C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAU3B,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAC5D;QAAE,iBAAiB,EAAE,eAAe,CAAC,WAAW,CAAA;KAAE,GAClD;QACI,iBAAiB,EAAE,OAAO,CACtB,eAAe,EACf,eAAe,CAAC,WAAW,CAC9B,CAAA;QACD,SAAS,EAAE,MAAM,CAAA;KACpB,GACD,IAAI,CACT;IAiHK,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAkJjD"}
1
+ {"version":3,"file":"wallet-sync-service.d.ts","sourceRoot":"","sources":["../../src/ledger/wallet-sync-service.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,YAAY,EAEf,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EACH,sBAAsB,EACtB,eAAe,EAClB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AACD,qBAAa,iBAAiB;IAEtB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,cAAc;gBARd,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,YAAY,EAC/B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,CAC3B,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAClD,YAAK,EACE,cAAc,EAAE,sBAAsB;IAG5C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAU3B,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAC5D;QAAE,iBAAiB,EAAE,eAAe,CAAC,WAAW,CAAA;KAAE,GAClD;QACI,iBAAiB,EAAE,OAAO,CACtB,eAAe,EACf,eAAe,CAAC,WAAW,CAC9B,CAAA;QACD,SAAS,EAAE,MAAM,CAAA;KACpB,GACD,IAAI,CACT;IAkHK,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAkJjD"}
@@ -3,9 +3,10 @@
3
3
  import { defaultRetryableOptions, } from '@canton-network/core-ledger-client';
4
4
  import { SigningProvider, } from '@canton-network/core-signing-lib';
5
5
  export class WalletSyncService {
6
- constructor(store, ledgerClient, authContext, logger, signingDrivers = {}, partyAllocator) {
6
+ constructor(store, ledgerClient, adminLedgerClient, authContext, logger, signingDrivers = {}, partyAllocator) {
7
7
  this.store = store;
8
8
  this.ledgerClient = ledgerClient;
9
+ this.adminLedgerClient = adminLedgerClient;
9
10
  this.authContext = authContext;
10
11
  this.logger = logger;
11
12
  this.signingDrivers = signingDrivers;
@@ -24,7 +25,7 @@ export class WalletSyncService {
24
25
  // (participant parties have namespace === participantId's namespace)
25
26
  let participantNamespace;
26
27
  try {
27
- const { participantId } = await this.ledgerClient.getWithRetry('/v2/parties/participant-id', defaultRetryableOptions);
28
+ const { participantId } = await this.adminLedgerClient.getWithRetry('/v2/parties/participant-id', defaultRetryableOptions);
28
29
  // Extract the namespace part from participantId
29
30
  // Format is hint::namespace
30
31
  const [, extractedNamespace] = participantId.split('::');
@@ -74,7 +74,7 @@ describe('WalletSyncService - resolveSigningProvider', () => {
74
74
  },
75
75
  });
76
76
  // Create service with real drivers
77
- service = new TestableWalletSyncService(store, ledgerClient, authContext, mockLogger, {
77
+ service = new TestableWalletSyncService(store, ledgerClient, ledgerClient, authContext, mockLogger, {
78
78
  [SigningProvider.WALLET_KERNEL]: internalDriver,
79
79
  [SigningProvider.PARTICIPANT]: new ParticipantSigningDriver(),
80
80
  }, partyAllocator);
@@ -137,7 +137,7 @@ describe('WalletSyncService - resolveSigningProvider', () => {
137
137
  partyMode: 'EXTERNAL',
138
138
  signingProvider: SigningProvider.FIREBLOCKS,
139
139
  };
140
- const serviceWithFireblocks = new TestableWalletSyncService(store, ledgerClient, authContext, mockLogger, {
140
+ const serviceWithFireblocks = new TestableWalletSyncService(store, ledgerClient, ledgerClient, authContext, mockLogger, {
141
141
  [SigningProvider.FIREBLOCKS]: mockFireblocksDriver,
142
142
  }, partyAllocator);
143
143
  mockLedgerGet.mockResolvedValueOnce({
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/user-api/controller.ts"],"names":[],"mappings":"AAyBA,OAAO,EACH,KAAK,EAIR,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAGH,WAAW,EAId,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EACH,sBAAsB,EACtB,eAAe,EAClB,MAAM,kCAAkC,CAAA;AAczC,KAAK,uBAAuB,GAAG,OAAO,CAClC,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAClD,CAAA;AAED,eAAO,MAAM,cAAc,GACvB,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,OAAO,KAAK,EACZ,qBAAqB,mBAAmB,EACxC,aAAa,WAAW,GAAG,SAAS,EACpC,SAAS,uBAAuB,EAChC,SAAS,MAAM;;;;;;;;;;;;;;;;;;;CAorBlB,CAAA"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/user-api/controller.ts"],"names":[],"mappings":"AAyBA,OAAO,EACH,KAAK,EAIR,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAGH,WAAW,EAId,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EACH,sBAAsB,EACtB,eAAe,EAClB,MAAM,kCAAkC,CAAA;AAczC,KAAK,uBAAuB,GAAG,OAAO,CAClC,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAClD,CAAA;AAED,eAAO,MAAM,cAAc,GACvB,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,OAAO,KAAK,EACZ,qBAAqB,mBAAmB,EACxC,aAAa,WAAW,GAAG,SAAS,EACpC,SAAS,uBAAuB,EAChC,SAAS,MAAM;;;;;;;;;;;;;;;;;;;CAssBlB,CAAA"}
@@ -466,17 +466,26 @@ export const userController = (kernelInfo, userUrl, store, notificationService,
466
466
  getUserAccessToken: async () => authContext.accessToken,
467
467
  getAdminAccessToken: async () => authContext.accessToken,
468
468
  };
469
+ const idp = await store.getIdp(network.identityProviderId);
470
+ const adminAccessTokenProvider = new AuthTokenProvider(idp, network.auth, network.adminAuth, logger);
469
471
  const partyAllocator = new PartyAllocationService({
470
472
  synchronizerId: network.synchronizerId,
471
- accessTokenProvider: userAccessTokenProvider,
473
+ accessTokenProvider: adminAccessTokenProvider,
472
474
  httpLedgerUrl: network.ledgerApi.baseUrl,
473
475
  logger,
474
476
  });
475
- const service = new WalletSyncService(store, new LedgerClient({
477
+ const userLedger = new LedgerClient({
476
478
  baseUrl: new URL(network.ledgerApi.baseUrl),
477
479
  logger,
478
480
  accessTokenProvider: userAccessTokenProvider,
479
- }), authContext, logger, drivers, partyAllocator);
481
+ });
482
+ const adminLedger = new LedgerClient({
483
+ baseUrl: new URL(network.ledgerApi.baseUrl),
484
+ logger,
485
+ isAdmin: true,
486
+ accessTokenProvider: adminAccessTokenProvider,
487
+ });
488
+ const service = new WalletSyncService(store, userLedger, adminLedger, authContext, logger, drivers, partyAllocator);
480
489
  const result = await service.syncWallets();
481
490
  if (result.added.length === 0 && result.removed.length === 0) {
482
491
  return result;
@@ -3,8 +3,8 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <title>Wallet Kernel - Not found</title>
6
- <script type="module" crossorigin src="/assets/404-m2H-YHg-.js"></script>
7
- <link rel="modulepreload" crossorigin href="/assets/index-DWw9PrWk.js">
6
+ <script type="module" crossorigin src="/assets/404-DOEElx02.js"></script>
7
+ <link rel="modulepreload" crossorigin href="/assets/index-EdAN1_qe.js">
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-CgbJtyud.css">
9
9
  </head>
10
10
 
@@ -3,9 +3,10 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <title>Wallet Kernel - Approve Write Request</title>
6
- <script type="module" crossorigin src="/assets/approve-D-yQkaxd.js"></script>
7
- <link rel="modulepreload" crossorigin href="/assets/index-DWw9PrWk.js">
8
- <link rel="modulepreload" crossorigin href="/assets/state-Wv0NKnXW.js">
6
+ <script type="module" crossorigin src="/assets/approve-D15QJVvX.js"></script>
7
+ <link rel="modulepreload" crossorigin href="/assets/index-EdAN1_qe.js">
8
+ <link rel="modulepreload" crossorigin href="/assets/state-DcvVyWZr.js">
9
+ <link rel="modulepreload" crossorigin href="/assets/decode-CLJkuAIr.js">
9
10
  <link rel="stylesheet" crossorigin href="/assets/index-CgbJtyud.css">
10
11
  </head>
11
12
 
@@ -1,4 +1,4 @@
1
- import{i as k,a as z,x as O,t as P}from"./index-DWw9PrWk.js";var C=Object.create,s=Object.defineProperty,E=Object.getOwnPropertyDescriptor,x=(r,e)=>(e=Symbol[r])?e:Symbol.for("Symbol."+r),h=r=>{throw TypeError(r)},I=(r,e,a)=>e in r?s(r,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[e]=a,j=(r,e)=>s(r,"name",{value:e,configurable:!0}),A=r=>[,,,C(r?.[x("metadata")]??null)],D=["class","method","getter","setter","accessor","field","value","get","set"],w=r=>r!==void 0&&typeof r!="function"?h("Function expected"):r,F=(r,e,a,n,t)=>({kind:D[r],name:e,metadata:n,addInitializer:o=>a._?h("Already initialized"):t.push(w(o||null))}),M=(r,e)=>I(e,x("metadata"),r[3]),N=(r,e,a,n)=>{for(var t=0,o=r[e>>1],i=o&&o.length;t<i;t++)o[t].call(a);return n},T=(r,e,a,n,t,o)=>{var i,u,f,l=e&7,b=!1,m=0,g=r[m]||(r[m]=[]),c=l&&(t=t.prototype,l<5&&(l>3||!b)&&E(t,a));j(t,a);for(var _=n.length-1;_>=0;_--)f=F(l,a,u={},r[3],g),i=(0,n[_])(t,f),u._=1,w(i)&&(t=i);return M(r,t),c&&s(t,a,c),b?l^4?o:c:t},y,v,S;y=[P("user-ui-404")];const p=class p extends(S=k){connectedCallback(){super.connectedCallback()}render(){return O`
1
+ import{i as k,a as z,x as O,t as P}from"./index-EdAN1_qe.js";var C=Object.create,s=Object.defineProperty,E=Object.getOwnPropertyDescriptor,x=(r,e)=>(e=Symbol[r])?e:Symbol.for("Symbol."+r),h=r=>{throw TypeError(r)},I=(r,e,a)=>e in r?s(r,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[e]=a,j=(r,e)=>s(r,"name",{value:e,configurable:!0}),A=r=>[,,,C(r?.[x("metadata")]??null)],D=["class","method","getter","setter","accessor","field","value","get","set"],w=r=>r!==void 0&&typeof r!="function"?h("Function expected"):r,F=(r,e,a,n,t)=>({kind:D[r],name:e,metadata:n,addInitializer:o=>a._?h("Already initialized"):t.push(w(o||null))}),M=(r,e)=>I(e,x("metadata"),r[3]),N=(r,e,a,n)=>{for(var t=0,o=r[e>>1],i=o&&o.length;t<i;t++)o[t].call(a);return n},T=(r,e,a,n,t,o)=>{var i,u,f,l=e&7,b=!1,m=0,g=r[m]||(r[m]=[]),c=l&&(t=t.prototype,l<5&&(l>3||!b)&&E(t,a));j(t,a);for(var _=n.length-1;_>=0;_--)f=F(l,a,u={},r[3],g),i=(0,n[_])(t,f),u._=1,w(i)&&(t=i);return M(r,t),c&&s(t,a,c),b?l^4?o:c:t},y,v,S;y=[P("user-ui-404")];const p=class p extends(S=k){connectedCallback(){super.connectedCallback()}render(){return O`
2
2
  <div class="wrapper">
3
3
  <not-found href="/"></not-found>
4
4
  </div>
@@ -0,0 +1,185 @@
1
+ import{c as J,s as K,w as ge,E as k,x as v,a as me,i as ue,t as _e}from"./index-EdAN1_qe.js";import{r as g}from"./state-DcvVyWZr.js";import{p as ve}from"./decode-CLJkuAIr.js";var fe=Object.create,z=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,Y=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),x=t=>{throw TypeError(t)},be=(t,e,a)=>e in t?z(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,Q=(t,e)=>z(t,"name",{value:e,configurable:!0}),we=t=>[,,,fe(t?.[Y("metadata")]??null)],Z=["class","method","getter","setter","accessor","field","value","get","set"],w=t=>t!==void 0&&typeof t!="function"?x("Function expected"):t,ke=(t,e,a,n,o)=>({kind:Z[t],name:e,metadata:n,addInitializer:d=>a._?x("Already initialized"):o.push(w(d||null))}),ye=(t,e)=>be(e,Y("metadata"),t[3]),i=(t,e,a,n)=>{for(var o=0,d=t[e>>1],f=d&&d.length;o<f;o++)e&1?d[o].call(a):n=d[o].call(a,n);return n},l=(t,e,a,n,o,d)=>{var f,p,F,b,y,r=e&7,A=!!(e&8),_=!!(e&16),I=r>3?t.length+1:r?A?1:2:0,G=Z[r+5],L=r>3&&(t[I-1]=[]),pe=t[I]||(t[I]=[]),u=r&&(!_&&!A&&(o=o.prototype),r<5&&(r>3||!_)&&xe(r<4?o:{get[a](){return V(this,d)},set[a](h){return X(this,d,h)}},a));r?_&&r<4&&Q(d,(r>2?"set ":r>1?"get ":"")+a):Q(o,a);for(var $=n.length-1;$>=0;$--)b=ke(r,a,F={},t[3],pe),r&&(b.static=A,b.private=_,y=b.access={has:_?h=>Ae(o,h):h=>a in h},r^3&&(y.get=_?h=>(r^1?V:Ie)(h,o,r^4?d:u.get):h=>h[a]),r>2&&(y.set=_?(h,T)=>X(h,o,T,r^4?d:u.set):(h,T)=>h[a]=T)),p=(0,n[$])(r?r<4?_?d:u[G]:r>4?void 0:{get:u.get,set:u.set}:o,b),F._=1,r^4||p===void 0?w(p)&&(r>4?L.unshift(p):r?_?d=p:u[G]=p:o=p):typeof p!="object"||p===null?x("Object expected"):(w(f=p.get)&&(u.get=f),w(f=p.set)&&(u.set=f),w(f=p.init)&&L.unshift(f));return r||ye(t,o),u&&z(o,a,u),_?r^4?d:u:o},M=(t,e,a)=>e.has(t)||x("Cannot "+a),Ae=(t,e)=>Object(e)!==e?x('Cannot use the "in" operator on this value'):t.has(e),V=(t,e,a)=>(M(t,e,"read from private field"),a?a.call(t):e.get(t)),m=(t,e,a)=>e.has(t)?x("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,a),X=(t,e,a,n)=>(M(t,e,"write to private field"),n?n.call(t,a):e.set(t,a),a),Ie=(t,e,a)=>(M(t,e,"access private method"),a),j,ee,te,ae,se,re,ie,oe,ne,de,ce,he,P,le,s,S,W,C,N,E,H,O,q,U,D,R,B;le=[_e("user-ui-approve")];class c extends(P=ue,he=[g()],ce=[g()],de=[g()],ne=[g()],oe=[g()],ie=[g()],re=[g()],se=[g()],ae=[g()],te=[g()],ee=[g()],j=[g()],P){constructor(){super(...arguments),m(this,S,i(s,8,this,!1)),i(s,11,this),m(this,W,i(s,12,this,"")),i(s,15,this),m(this,C,i(s,16,this,"")),i(s,19,this),m(this,N,i(s,20,this,"")),i(s,23,this),m(this,E,i(s,24,this,"")),i(s,27,this),m(this,H,i(s,28,this,null)),i(s,31,this),m(this,O,i(s,32,this,"")),i(s,35,this),m(this,q,i(s,36,this,null)),i(s,39,this),m(this,U,i(s,40,this,null)),i(s,43,this),m(this,D,i(s,44,this,null)),i(s,47,this),m(this,R,i(s,48,this,null)),i(s,51,this),m(this,B,i(s,52,this,null)),i(s,55,this)}connectedCallback(){super.connectedCallback();const e=new URL(window.location.href);this.commandId=e.searchParams.get("commandId")||"",this.updateState()}async updateState(){const e=await J(K.accessToken.get());e.request("getTransaction",{commandId:this.commandId}).then(a=>{this.txHash=a.preparedTransactionHash,this.tx=a.preparedTransaction,this.status=a.status,this.createdAt=a.createdAt||null,this.signedAt=a.signedAt||null,this.origin=a.origin||null;try{this.txParsed=ve(this.tx)}catch(n){console.error("Error parsing prepared transaction:",n),this.txParsed=null}}),e.request("listWallets",[]).then(a=>{this.partyId=a.find(n=>n.primary===!0)?.partyId||""})}async handleExecute(){this.loading=!0,this.message="Executing transaction...",this.messageType="info";try{const e={commandId:this.commandId,partyId:this.partyId,preparedTransactionHash:this.txHash,preparedTransaction:this.tx},a=await J(K.accessToken.get()),{signature:n,signedBy:o}=await a.request("sign",e),d={signature:n,signedBy:o,commandId:this.commandId,partyId:this.partyId};await a.request("execute",d),this.message="Transaction executed successfully ✅",this.messageType="info",window.opener&&setTimeout(()=>window.close(),1e3)}catch(e){console.error(e),this.message=null,this.messageType=null,ge(e,{message:"Error executing transaction"})}finally{this.loading=!1}}render(){return v`
2
+ <div class="card">
3
+ <h1>Pending Transaction Request</h1>
4
+
5
+ <h2>Transaction Details</h2>
6
+
7
+ <h3>Command Id</h3>
8
+ <p>${this.commandId}</p>
9
+
10
+ <h3>Status</h3>
11
+ <p>${this.status}</p>
12
+
13
+ ${this.createdAt?v`<h3>Created At</h3>
14
+ <p>${this.createdAt}</p>`:k}
15
+ ${this.signedAt?v`<h3>Signed At</h3>
16
+ <p>${this.signedAt}</p>`:k}
17
+ ${this.origin?v`<h3>Origin</h3>
18
+ <p>${this.origin}</p>`:k}
19
+
20
+ <h3>Template</h3>
21
+ <p>
22
+ ${this.txParsed?.packageName||"N/A"}:${this.txParsed?.moduleName||"N/A"}:${this.txParsed?.entityName||"N/A"}
23
+ </p>
24
+
25
+ <h3>Signatories</h3>
26
+ <ul>
27
+ ${this.txParsed?.signatories?.map(e=>v`<li>${e}</li>`)||v`<li>N/A</li>`}
28
+ </ul>
29
+
30
+ <h3>Stakeholders</h3>
31
+ <ul>
32
+ ${this.txParsed?.stakeholders?.map(e=>v`<li>${e}</li>`)||v`<li>N/A</li>`}
33
+ </ul>
34
+
35
+ <h3>Transaction Hash</h3>
36
+ <p>${this.txHash}</p>
37
+
38
+ <h3>Base64 Transaction</h3>
39
+ <div class="tx-box">${this.tx}</div>
40
+
41
+ <h3>Decoded Transaction</h3>
42
+ <div class="tx-box">${this.txParsed?.jsonString||"N/A"}</div>
43
+
44
+ ${this.status==="executed"?k:v`
45
+ <button
46
+ ?disabled=${this.loading}
47
+ @click=${this.handleExecute}
48
+ >
49
+ ${this.loading?"Processing...":"Approve"}
50
+ </button>
51
+ `}
52
+ ${this.message?v`<div class="message ${this.messageType}">
53
+ ${this.message}
54
+ </div>`:null}
55
+ </div>
56
+ `}}s=we(P);S=new WeakMap;W=new WeakMap;C=new WeakMap;N=new WeakMap;E=new WeakMap;H=new WeakMap;O=new WeakMap;q=new WeakMap;U=new WeakMap;D=new WeakMap;R=new WeakMap;B=new WeakMap;l(s,4,"loading",he,c,S);l(s,4,"commandId",ce,c,W);l(s,4,"partyId",de,c,C);l(s,4,"txHash",ne,c,N);l(s,4,"tx",oe,c,E);l(s,4,"txParsed",ie,c,H);l(s,4,"status",re,c,O);l(s,4,"message",se,c,q);l(s,4,"messageType",ae,c,U);l(s,4,"createdAt",te,c,D);l(s,4,"signedAt",ee,c,R);l(s,4,"origin",j,c,B);c=l(s,0,"ApproveUi",le,c);c.styles=me`
57
+ :host {
58
+ display: block;
59
+ box-sizing: border-box;
60
+ padding: 0rem;
61
+ max-width: 900px;
62
+ margin: 0 auto;
63
+ font-family: var(--swk-font, Arial, sans-serif);
64
+ color: var(--text-color, #222);
65
+ }
66
+
67
+ :host([theme='dark']) {
68
+ --card-bg: #1e1e1e;
69
+ --border-color: #333;
70
+ --text-color: #fff;
71
+ --button-bg: #4caf50;
72
+ --button-hover: #66bb6a;
73
+ --message-info: #81c784;
74
+ --message-error: #ff6b6b;
75
+ }
76
+
77
+ :host(:not([theme='dark'])) {
78
+ --card-bg: #fff;
79
+ --border-color: #ddd;
80
+ --text-color: #222;
81
+ --button-bg: #4caf50;
82
+ --button-hover: #43a047;
83
+ --message-info: #388e3c;
84
+ --message-error: #d32f2f;
85
+ }
86
+
87
+ .card {
88
+ background: var(--card-bg);
89
+ border: 1px solid var(--border-color);
90
+ border-radius: 16px;
91
+ padding: 1.5rem;
92
+ width: 100%;
93
+ box-sizing: border-box;
94
+ display: flex;
95
+ flex-direction: column;
96
+ gap: 1rem;
97
+ overflow-x: hidden;
98
+ word-break: break-word;
99
+ margin-top: 2rem;
100
+ }
101
+
102
+ h1 {
103
+ font-size: 1.25rem;
104
+ margin: 0;
105
+ }
106
+
107
+ h2 {
108
+ font-size: 1rem;
109
+ margin: 0.5rem 0 0.25rem 0;
110
+ }
111
+
112
+ h3 {
113
+ font-size: 0.875rem;
114
+ margin: 0.25rem 0;
115
+ }
116
+
117
+ p {
118
+ font-size: 0.85rem;
119
+ margin: 0.25rem 0;
120
+ word-break: break-word;
121
+ }
122
+
123
+ .tx-box {
124
+ background: rgba(0, 0, 0, 0.05);
125
+ border-radius: 8px;
126
+ padding: 0.5rem;
127
+ max-height: 150px;
128
+ overflow-y: auto;
129
+ overflow-x: auto;
130
+ font-family: monospace;
131
+ color: var(--text-color);
132
+ word-break: break-word;
133
+ }
134
+
135
+ button {
136
+ padding: 0.75rem;
137
+ border-radius: 8px;
138
+ border: none;
139
+ cursor: pointer;
140
+ background: var(--button-bg);
141
+ color: white;
142
+ font-weight: 600;
143
+ font-size: 1rem;
144
+ transition: background 0.2s ease;
145
+ }
146
+
147
+ button:hover {
148
+ background: var(--button-hover);
149
+ }
150
+
151
+ button[disabled] {
152
+ opacity: 0.6;
153
+ cursor: not-allowed;
154
+ }
155
+
156
+ .message {
157
+ padding: 0.5rem;
158
+ border-radius: 6px;
159
+ font-size: 0.875rem;
160
+ }
161
+
162
+ .message.info {
163
+ background-color: var(--message-info);
164
+ color: white;
165
+ }
166
+
167
+ .message.error {
168
+ background-color: var(--message-error);
169
+ color: white;
170
+ }
171
+
172
+ @media (max-width: 480px) {
173
+ .card {
174
+ padding: 1rem;
175
+ }
176
+
177
+ h1 {
178
+ font-size: 1.1rem;
179
+ }
180
+
181
+ button {
182
+ font-size: 0.95rem;
183
+ }
184
+ }
185
+ `;i(s,1,c);
@@ -1 +1 @@
1
- import{i as y,s as u,b as C,D as P,x as E,t as O}from"./index-DWw9PrWk.js";var D=Object.create,h=Object.defineProperty,L=Object.getOwnPropertyDescriptor,g=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),b=e=>{throw TypeError(e)},R=(e,t,o)=>t in e?h(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,I=(e,t)=>h(e,"name",{value:t,configurable:!0}),T=e=>[,,,D(e?.[g("metadata")]??null)],z=["class","method","getter","setter","accessor","field","value","get","set"],k=e=>e!==void 0&&typeof e!="function"?b("Function expected"):e,U=(e,t,o,r,a)=>({kind:z[e],name:t,metadata:r,addInitializer:c=>o._?b("Already initialized"):a.push(k(c||null))}),j=(e,t)=>R(t,g("metadata"),e[3]),A=(e,t,o,r)=>{for(var a=0,c=e[t>>1],i=c&&c.length;a<i;a++)c[a].call(o);return r},F=(e,t,o,r,a,c)=>{var i,s,l,n=t&7,d=!1,w=0,x=e[w]||(e[w]=[]),_=n&&(a=a.prototype,n<5&&(n>3||!d)&&L(a,o));I(a,o);for(var p=r.length-1;p>=0;p--)l=U(n,o,s={},e[3],x),i=(0,r[p])(a,l),s._=1,k(i)&&(a=i);return j(e,a),_&&h(a,o,_),d?n^4?c:_:a},m,v,S;m=[O("login-callback")];class f extends(S=y){connectedCallback(){super.connectedCallback(),this.handleRedirect()}async handleRedirect(){const t=new URL(window.location.href),o=t.searchParams.get("code"),r=t.searchParams.get("state");if(!o&&!r){console.error("missing state and code");return}if(o&&r){const a=JSON.parse(atob(r)),s=(await(await fetch(a.configUrl)).json()).token_endpoint,n=await(await fetch(s,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:o,redirect_uri:window.location.origin+"/callback/",client_id:a.clientId,audience:a.audience})})).json();if(n.access_token){const d=JSON.parse(atob(n.access_token.split(".")[1]));u.expirationDate.set(new Date(d.exp*1e3).toString()),u.accessToken.set(n.access_token),C(n.access_token,u.networkId.get()||"").then(()=>{window.location.replace(P)})}}}render(){return E`<h2>Logged in!</h2>`}}v=T(S);f=F(v,0,"LoginCallback",m,f);A(v,1,f);
1
+ import{i as y,s as u,b as C,D as P,x as E,t as O}from"./index-EdAN1_qe.js";var D=Object.create,h=Object.defineProperty,L=Object.getOwnPropertyDescriptor,g=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),b=e=>{throw TypeError(e)},R=(e,t,o)=>t in e?h(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,I=(e,t)=>h(e,"name",{value:t,configurable:!0}),T=e=>[,,,D(e?.[g("metadata")]??null)],z=["class","method","getter","setter","accessor","field","value","get","set"],k=e=>e!==void 0&&typeof e!="function"?b("Function expected"):e,U=(e,t,o,r,a)=>({kind:z[e],name:t,metadata:r,addInitializer:c=>o._?b("Already initialized"):a.push(k(c||null))}),j=(e,t)=>R(t,g("metadata"),e[3]),A=(e,t,o,r)=>{for(var a=0,c=e[t>>1],i=c&&c.length;a<i;a++)c[a].call(o);return r},F=(e,t,o,r,a,c)=>{var i,s,l,n=t&7,d=!1,w=0,x=e[w]||(e[w]=[]),_=n&&(a=a.prototype,n<5&&(n>3||!d)&&L(a,o));I(a,o);for(var p=r.length-1;p>=0;p--)l=U(n,o,s={},e[3],x),i=(0,r[p])(a,l),s._=1,k(i)&&(a=i);return j(e,a),_&&h(a,o,_),d?n^4?c:_:a},m,v,S;m=[O("login-callback")];class f extends(S=y){connectedCallback(){super.connectedCallback(),this.handleRedirect()}async handleRedirect(){const t=new URL(window.location.href),o=t.searchParams.get("code"),r=t.searchParams.get("state");if(!o&&!r){console.error("missing state and code");return}if(o&&r){const a=JSON.parse(atob(r)),s=(await(await fetch(a.configUrl)).json()).token_endpoint,n=await(await fetch(s,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:o,redirect_uri:window.location.origin+"/callback/",client_id:a.clientId,audience:a.audience})})).json();if(n.access_token){const d=JSON.parse(atob(n.access_token.split(".")[1]));u.expirationDate.set(new Date(d.exp*1e3).toString()),u.accessToken.set(n.access_token),C(n.access_token,u.networkId.get()||"").then(()=>{window.location.replace(P)})}}}render(){return E`<h2>Logged in!</h2>`}}v=T(S);f=F(v,0,"LoginCallback",m,f);A(v,1,f);