@btc-vision/walletconnect 1.4.1 → 1.5.1

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 (84) hide show
  1. package/.prettierrc.json +1 -1
  2. package/CHANGELOG.md +83 -0
  3. package/README.md +11 -11
  4. package/browser/consts.d.ts +2 -0
  5. package/browser/context/WalletConnectContext.d.ts +18 -0
  6. package/browser/hooks/WalletConnectHook.d.ts +2 -0
  7. package/browser/index.d.ts +4 -2
  8. package/browser/index.js +1 -1
  9. package/browser/index.js.LICENSE.txt +0 -2
  10. package/browser/provider/WalletConnectProvider.d.ts +9 -0
  11. package/browser/types.d.ts +11 -0
  12. package/browser/utils/accessibility/definitions.d.ts +2 -0
  13. package/browser/utils/accessibility/errorDecoder.d.ts +2 -0
  14. package/browser/utils/accessibility/patterns.d.ts +13 -0
  15. package/browser/wallets/controller.d.ts +29 -0
  16. package/browser/wallets/index.d.ts +4 -0
  17. package/browser/wallets/opwallet/controller.d.ts +26 -0
  18. package/browser/wallets/opwallet/interface.d.ts +5 -0
  19. package/browser/wallets/types.d.ts +34 -0
  20. package/browser/wallets/unisat/controller.d.ts +26 -0
  21. package/browser/wallets/unisat/interface.d.ts +5 -0
  22. package/build/consts.d.ts +2 -0
  23. package/build/consts.js +6 -0
  24. package/build/context/WalletConnectContext.d.ts +18 -0
  25. package/build/context/WalletConnectContext.js +2 -0
  26. package/build/hooks/WalletConnectHook.d.ts +2 -0
  27. package/build/hooks/WalletConnectHook.js +9 -0
  28. package/build/index.d.ts +4 -2
  29. package/build/index.js +4 -2
  30. package/build/provider/WalletConnectProvider.d.ts +9 -0
  31. package/build/provider/WalletConnectProvider.js +178 -0
  32. package/build/types.d.ts +11 -0
  33. package/build/types.js +1 -0
  34. package/build/utils/accessibility/definitions.d.ts +2 -0
  35. package/build/utils/accessibility/definitions.js +8 -0
  36. package/build/utils/accessibility/errorDecoder.d.ts +2 -0
  37. package/build/utils/accessibility/errorDecoder.js +73 -0
  38. package/build/utils/accessibility/patterns.d.ts +13 -0
  39. package/build/utils/accessibility/patterns.js +51 -0
  40. package/build/wallets/controller.d.ts +29 -0
  41. package/build/wallets/controller.js +205 -0
  42. package/build/wallets/index.d.ts +4 -0
  43. package/build/wallets/index.js +16 -0
  44. package/build/wallets/opwallet/controller.d.ts +26 -0
  45. package/build/wallets/opwallet/controller.js +132 -0
  46. package/build/wallets/opwallet/interface.d.ts +5 -0
  47. package/build/wallets/opwallet/interface.js +35 -0
  48. package/build/wallets/types.d.ts +34 -0
  49. package/build/wallets/types.js +1 -0
  50. package/build/wallets/unisat/controller.d.ts +26 -0
  51. package/build/wallets/unisat/controller.js +135 -0
  52. package/build/wallets/unisat/interface.d.ts +5 -0
  53. package/build/wallets/unisat/interface.js +285 -0
  54. package/eslint.config.js +23 -2
  55. package/package.json +15 -10
  56. package/src/README.md +24 -0
  57. package/src/consts.ts +8 -0
  58. package/src/context/WalletConnectContext.ts +21 -0
  59. package/src/hooks/WalletConnectHook.tsx +13 -0
  60. package/src/index.ts +5 -2
  61. package/src/provider/WalletConnectProvider.tsx +341 -0
  62. package/src/types.ts +13 -0
  63. package/src/utils/accessibility/definitions.ts +9 -0
  64. package/src/utils/accessibility/errorDecoder.ts +105 -0
  65. package/src/utils/accessibility/patterns.ts +86 -0
  66. package/src/utils/style.css +131 -0
  67. package/src/utils/theme.css +26 -0
  68. package/src/wallets/controller.ts +231 -0
  69. package/src/wallets/index.ts +22 -0
  70. package/src/wallets/opwallet/controller.ts +177 -0
  71. package/src/wallets/opwallet/interface.ts +42 -0
  72. package/src/wallets/types.ts +39 -0
  73. package/src/wallets/unisat/controller.ts +179 -0
  74. package/src/wallets/unisat/interface.ts +292 -0
  75. package/tsconfig.webpack.json +2 -6
  76. package/webpack.config.js +4 -0
  77. package/browser/WalletConnection.d.ts +0 -21
  78. package/browser/WalletProvider.d.ts +0 -25
  79. package/build/WalletConnection.d.ts +0 -21
  80. package/build/WalletConnection.js +0 -152
  81. package/build/WalletProvider.d.ts +0 -25
  82. package/build/WalletProvider.js +0 -178
  83. package/src/WalletConnection.ts +0 -210
  84. package/src/WalletProvider.tsx +0 -240
@@ -0,0 +1,179 @@
1
+ import { Unisat, UnisatChainInfo, UnisatChainType, UnisatSigner } from '@btc-vision/transaction';
2
+ import type { WalletBase } from '../types.ts';
3
+ import type { UnisatWalletInterface } from './interface';
4
+
5
+ interface UnisatWalletWindow extends Window {
6
+ unisat?: UnisatWalletInterface;
7
+ }
8
+
9
+ const notInstalledError = 'UNISAT is not installed';
10
+
11
+ class UnisatWallet implements WalletBase {
12
+ private walletBase: UnisatWalletWindow['unisat'];
13
+ private accountsChangedHookWrapper?: (accounts: Array<string>) => void;
14
+ private chainChangedHookWrapper?: (network: UnisatChainInfo) => void;
15
+ private disconnectHookWrapper?: () => void;
16
+ private _isConnected: boolean = false;
17
+
18
+ isInstalled() {
19
+ this.walletBase = (window as unknown as UnisatWalletWindow).unisat;
20
+ return !!this.walletBase;
21
+ }
22
+ isConnected() {
23
+ return !!this.walletBase && this._isConnected;
24
+ }
25
+ async canAutoConnect(): Promise<boolean> {
26
+ // getAccounts returns empty array if not connected,
27
+ // without launching connection modal window.
28
+ const accounts = (await this.walletBase?.getAccounts()) || [];
29
+ return accounts.length > 0;
30
+ }
31
+
32
+ getProvider(): Unisat | null {
33
+ return (this._isConnected && this.walletBase) || null;
34
+ }
35
+
36
+ async getSigner(): Promise<UnisatSigner> {
37
+ const signer = new UnisatSigner();
38
+ await signer.init();
39
+ return signer;
40
+ }
41
+
42
+ getChainId(): void {
43
+ throw new Error('Method not implemented.');
44
+ }
45
+
46
+ async connect(): Promise<string[]> {
47
+ if (!this.isInstalled() || !this.walletBase) {
48
+ throw new Error(notInstalledError);
49
+ }
50
+ return this.walletBase.requestAccounts().then((accounts: string[]) => {
51
+ this._isConnected = accounts.length > 0;
52
+ return accounts;
53
+ });
54
+ }
55
+
56
+ async disconnect() {
57
+ if (!this.isInstalled() || !this.walletBase) {
58
+ throw new Error(notInstalledError);
59
+ }
60
+ return this._isConnected
61
+ ? await this.walletBase.disconnect().then(() => {
62
+ this._isConnected = false;
63
+ })
64
+ : undefined;
65
+ }
66
+
67
+ getPublicKey(): Promise<string> {
68
+ if (!this.isInstalled() || !this.walletBase) {
69
+ throw new Error(notInstalledError);
70
+ }
71
+ return this.walletBase.getPublicKey();
72
+ }
73
+
74
+ async getNetwork(): Promise<UnisatChainType> {
75
+ if (!this.isInstalled() || !this.walletBase) {
76
+ throw new Error(notInstalledError);
77
+ }
78
+
79
+ const chainInfo = await this.walletBase.getChain();
80
+ if (!chainInfo) {
81
+ throw new Error('Failed to retrieve chain information');
82
+ }
83
+
84
+ return chainInfo.enum;
85
+ }
86
+
87
+ setAccountsChangedHook(fn: (accounts: string[]) => void): void {
88
+ console.log('Setting account changed hook for Unisat');
89
+
90
+ if (!this.isInstalled() || !this.walletBase) {
91
+ throw new Error(notInstalledError);
92
+ }
93
+
94
+ this.accountsChangedHookWrapper = (accounts: string[]) => {
95
+ console.log('Unisat Account Changed Hook', accounts, accounts.length);
96
+
97
+ if (accounts.length > 0) {
98
+ fn(accounts);
99
+ } else {
100
+ console.log(
101
+ 'Unisat Account Changed Hook --> Disconnect',
102
+ accounts.length,
103
+ !!this.disconnectHookWrapper,
104
+ );
105
+ this._isConnected = false;
106
+ this.disconnectHookWrapper?.();
107
+ }
108
+ };
109
+
110
+ this.walletBase.on('accountsChanged', this.accountsChangedHookWrapper);
111
+ }
112
+
113
+ removeAccountsChangedHook(): void {
114
+ if (!this.isInstalled() || !this.walletBase) {
115
+ throw new Error(notInstalledError);
116
+ }
117
+
118
+ if (this.accountsChangedHookWrapper) {
119
+ console.log('Removing account changed hook for Unisat');
120
+ this.walletBase.removeListener('accountsChanged', this.accountsChangedHookWrapper);
121
+ this.accountsChangedHookWrapper = undefined;
122
+ }
123
+ }
124
+
125
+ setDisconnectHook(fn: () => void): void {
126
+ console.log('Setting disconnect hook for Unisat');
127
+
128
+ if (!this.isInstalled() || !this.walletBase) {
129
+ throw new Error(notInstalledError);
130
+ }
131
+
132
+ this.disconnectHookWrapper = () => {
133
+ console.log('Unisat Disconnecting Hook');
134
+ fn();
135
+ };
136
+
137
+ this.walletBase.on('disconnect', this.disconnectHookWrapper);
138
+ }
139
+
140
+ removeDisconnectHook(): void {
141
+ if (!this.isInstalled() || !this.walletBase) {
142
+ throw new Error(notInstalledError);
143
+ }
144
+
145
+ if (this.disconnectHookWrapper) {
146
+ console.log('Removing disconnect hook for Unisat');
147
+ this.walletBase.removeListener('disconnect', this.disconnectHookWrapper);
148
+ this.disconnectHookWrapper = undefined;
149
+ }
150
+ }
151
+
152
+ setChainChangedHook(fn: (chainType: UnisatChainType) => void): void {
153
+ console.log('Setting chain changed hook for Unisat');
154
+ if (!this.isInstalled() || !this.walletBase) {
155
+ throw new Error(notInstalledError);
156
+ }
157
+
158
+ this.chainChangedHookWrapper = (chainInfo: UnisatChainInfo) => {
159
+ console.log('Unisat ChainChanged Hook', chainInfo);
160
+ fn(chainInfo.enum);
161
+ };
162
+
163
+ this.walletBase.on('chainChanged', this.chainChangedHookWrapper);
164
+ }
165
+
166
+ removeChainChangedHook(): void {
167
+ if (!this.isInstalled() || !this.walletBase) {
168
+ throw new Error(notInstalledError);
169
+ }
170
+
171
+ if (this.chainChangedHookWrapper) {
172
+ console.log('Removing chain changed hook for Unisat');
173
+ this.walletBase.removeListener('chainChanged', this.chainChangedHookWrapper);
174
+ this.chainChangedHookWrapper = undefined;
175
+ }
176
+ }
177
+ }
178
+
179
+ export default UnisatWallet;
@@ -0,0 +1,292 @@
1
+ import type { Unisat } from '@btc-vision/transaction';
2
+
3
+ export interface UnisatWalletInterface extends Unisat {
4
+ disconnect: () => Promise<void>;
5
+ }
6
+
7
+ export const logo =
8
+ 'data:image/png;base64,' +
9
+ 'iVBORw0KGgoAAAANSUhEUgAAAV4AAABjCAYAAADTuGjdAAAAAXNSR0IB2cksfwAAAARnQU1BAACx' +
10
+ 'jwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dE' +
11
+ 'AO4A9AD4bwxj4wAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB+kIDQMYEdVodQQAACAASURB' +
12
+ 'VHja7b17lF1Xdeb7m2vts0+9S2/J1sOWZclSlfzAxsY2YGPjEMCA0zfYPELfJE4YhDSQHjekO3fc' +
13
+ 'XLdbMNLpxNx0bpIG4hseiWmIZfKABIOxARsMBj9lSSVbki3rYb0fpapSVZ199l7z/rHWOXVKPqeq' +
14
+ 'JJWkKnlPjT2qVCqdc/bea3/rW9/65pzCWQyNY+GPEIA7v5Gs/NJbLirjih1YimTWQDZENjSA7TvC' +
15
+ 'sYFevkaZJpAkUfLII488pmnIWQHcNbFhOzHtixbhZlyKiy4m1Vk4dTjKQAKUcZoCZVRTyI5h3KvQ' +
16
+ 'u+2Gf9vZ/NjueJOYHIDzyCOPHHjHBdw7vpGsvP+m1bMptL4NZDGZZqhLcJRxlEndCPCKSSErk2qK' +
17
+ 'MSlZVgZK4PrQwW13/HCr3r833pQz4DzyyCMH3noMd5BW0lVXok3vQuVClAylhDoPuE5HwDejhGiK' +
18
+ 'kqKB8ar678nKiCmDltG0l7hv65UP7Gh5ZiAH4DzyyCMHXq/h/hYR7RdcjM76VZy5FtThSEDKVaar' +
19
+ 'jHyfSYK4hEzLKF5qQMs4PPhCGaMJmWagZTISsvKe3/nFpqEv7MjBN4888ngdA6+uiQ19zMRe9jZc' +
20
+ '4QPAHA+wgd0SQNVRwrkAvoH1ZiRA4hkuZVwAWSjjMg/AFdabZQmZy9CsD+3dxozD++TzSTm/tXnk' +
21
+ 'kcdUjei0gO7a2PKLpRcTzfg11P4yRjOcJKAW1CFYFIeqYDCIEZwaFAMYnLM4IlAHOAQFNTgsIg7E' +
22
+ 'YFRQNVhjEVGctMHc5RyKim9asKv4xOGc/eaRRx6vA8Yb7GFFjnVdjWn5XZxcimg5MNdhXNBpHUn4' +
23
+ 'eY3UENgurkRKWnU3VFhvReeFMpr5vzsNjgcSXNiAS9MEHX71hh++XHgsB9888shjCoaZZNBtZ/iy' +
24
+ 'WzEtnwHzRkQNiIAYFAtiPFvF4MSAWIxYBEFUwu9bjBhELVr5mbOIGkQNLvyOGFM9MBaMRZ1FTQTN' +
25
+ '5z32lguzd89KVmkcS36b88gjj3OO8eqa2FBqn4Vc/Cu46PdxtCEkKClCybNTyqClwHjLoDVslgTV' +
26
+ 'hIxy0HsTHCmpq2i9qX89TavMNsvKwfmQBDbsfb/O+e8zTaG0792PbYu+kzPfPPLI41xivLomNrD4' +
27
+ 'PGT5R9HCfwFmIxhULahBNQIxCJ6pIhYJh4a/+9+xGDWYwIKNGCKxWDEYkSo7tsazXnMc660eduSI' +
28
+ 'muZ85/qF5Vty5ptHHnmcK8DrQfe8xaRzP45Efwg6E5EIqQKs8QcS3stUJQMRwagB9ZtrIyR8BLQR' +
29
+ 'Q6bRCIjjN9T8//EArCr+d3VEjhA1GGfI1FBsnf3wDYtKOfjmkUce015q0DWxIbpwCcns38HZT6JE' +
30
+ 'OLztSymFDTMvJYh4ycBV/k3LKMdQ7QP6ca4PtA8HKDGZRKia8PcUtLIJN5JQIQQvb0ioqJUbKu/t' +
31
+ 'XErmUpwmJIcP3vCL/S35hlseeeRxtuOk7GTqYuH/WXwew7PvRKJPYYhwSpATDFqxgolDSEfYrhjQ' +
32
+ 'FNiDpuuQ5OckmzbyBQ5VwFA/HTcztHAxzOzG2Itw2k4GntUSJAv1m3WiCsZby7IK00Vwzn/Vys/U' +
33
+ 'EHXMeuwaDt/wi/2rNAffPPLIYzoxXnWx8D/a5pCs/DWc/SwpRRyKU1BxqGae0UoJp2XQNDDeIVT3' +
34
+ '4dxP4eha/sdLPWOBn66JDQfmziedcyUuWkEmzd7DWyehAvWsN029tSxzGWLTKuulnFA2KVmpjA72' +
35
+ '3vDEvtac+eaRRx7TB3j/NO6Eq+5AC2tQZpMiZMoI+JJ5t4KW0IofV48BG6H0D+j678h/T45N+P0+' +
36
+ 'HhcoL1mBdFyFmvmISpAfRqcRqyaYIDOUg7shIiF1GYmWMc47JspZSvnY0Rue2Nf2WF7fIY888pjq' +
37
+ 'wKtr4ibarvwlXPwXOFmMqtYBXg0arme9Sj8u/RmF4Xv5056fnCzQ6cdmLsBdcA0uuij4fbMq6FZY' +
38
+ 'r9NKskWZzGW+rKQm3nbmfOWzNEtJTEZ0sPfaHx/teCIH3zzyyOMMx4RdDbo2tsy4/DJs0x8gZomH' +
39
+ 'bJEqdAvicyVgxNHAEJI9SjzwOfnscz8+FYCTLx7Z+5EfPrcVHV4fNvB8coV/35pkCvHJFGINxgpi' +
40
+ 'jS+qbi3GGmxkaBIlm9H2xBUzeq9sy90OeeSRxxQEXnWxsPPCxdDyW8D1SODKAlgUK7X82f+LYwh1' +
41
+ 'P8Qdukc+s2HdZHzYr22l5yOPbdiDljciWeJtas7i8NYy0UoWnN9wK6ghMhbj/CabIqQhE86qodjS' +
42
+ '9szV8eEcfPPII4+px3i/SCtNc38Ja/53gncBqbDd8FVGsd4S4n6C7fsL+ZPNL0zmB/7aVnru+P76' +
43
+ 'vWTJBpwM40xwS9Qw3gr7zYz38lZYrzUFjDVkkSGKhaxgkHmtz1wZH1gd5+CbRx55TBHg1bWxxV6x' +
44
+ 'CuLfBQoYcaMYr0+NGGG9qimGp7DDfzVZTPf4WLuDnjse2XgQLW0CN+yZb0iysNAwocKpECEY51lv' +
45
+ 'sxqsGpjRtuHN8f4cfPPII4+pwXh722bhmm/HcFlgs4KIetAdxXYrssMrmPRrsuaZH53OD752Bz3v' +
46
+ 'fnjDIQrDPagrYQ0oQqbRqBTiis5rIsFYAybCRCOsNy0Y4qJQntnyzjZYESer8mGRRx55nDXg1bWx' +
47
+ 'xSxfThTdXk36lToHIngFtRdJH+LgM/efiQ//4A563v3gpl4ovYi6UnWTrZJGXKlm5pwhralwZgID' +
48
+ 'Tp3xrNcZHHLPkhlHb45heRtd+dDIYyqHOifqnFHnrDpnnWrkVCN1LspUIxd+Hn4nX8VNsYjGZbtR' +
49
+ '8204XYJUNtAERAUj6gEugK+iCC9iBv9B/jIZOJEP0R7TNSuGLKPbAhnQbNm4N4H+hJ5xwfeRTV3f' +
50
+ 'ublrM1K4GKQAGqHqMMZgMp/BZoLWa53/u4sMWjKYgmFILC3GUR52X1gcH7lzZzIzienaPs5755HH' +
51
+ 'WYx2YCHQAjQBRaAQ/q1Uc/QBe4Bj+SWbOiGNZ9RY+LvVlyKzvkmmF3mvroIT79d1KJkKDshUyfQo' +
52
+ 'pF9l2VP/SW5PsgnN2nEs80nef+ssNn5p9YJ+WppaKEQRWdkxMDT86Q37m//hKN1HMzaOB8BvX0LX' +
53
+ 'w+/obiOLlwFFjPpykSk15SIpI6F+g2pSTaiQLCVLy/SnZQZLKX2D6ertyQ2HMzbumYLgq84Z4CJE' +
54
+ 'LgZmN/i1DHgR1ZfEmL5Je2/VZuA6YH6DFZMCvcBPRaS30es4/zpXCyyoAYzaGFLYCWwwIkOTef2c' +
55
+ '6gzgDQJzG7y3APvCORwb43U6gJUCiwP41Xudww7WK+yNRE66JZWmqcGYmcAiRM7Dv+f5QHMA3bhC' +
56
+ 'pBTK4kE3AQaA3Qq7gF2iuluMOXqGx2sBuAa4AJHx2HcJ1R3AM2JMeoLvEwFzEbkcmBPG4lSJQYWX' +
57
+ 'w3jOGjPev6WZQuvlqF5UlRk0+HSN4Nv2BNYrgOgusuT7EwXd9piuC23Sve+NnT9j9tz5tDYvoWDb' +
58
+ '/YOgGe2dx+6ZO+PgPcd6n1zxg/1Xw9js95Ed9Nzyrxu7Hn7XqhfR4jL/OsYg2UibINS7HGyo41Bh' +
59
+ 'wklkceWMSA0FNRQx729m4z8M0E0MUxB8LbAa+HfAqgYTaAJ8AzgcWM9kRSvwvwFXNVgxOeAl4MUA' +
60
+ 'wI2iDXhveCBb6gDWUeAphb5EdWsskk3iOcwJ1+7ycD5aZyX4FLBB03RQoqjRAzwTuAW4KXyvde7T' +
61
+ 'C8C9wBGgfBKgZVWkU2GRwApULwe68BNWPAE2pUBJYDvQg8h6p/oCqntEdVCsdadzoGaqVmGeqP47' +
62
+ 'RG5g/KStQeBRYEu4ZicSBWAJ8CHg0kA+pkrsB74NbALGAN74gk5M4e1UbouXGCroqwg6ovOKYOUg' +
63
+ 'pSPrJ/opOqH7levm/5z5cy6iWFhEsXAeETNBir6IOUcpmf2YQvvmGwvPrXj01Sv6GDvL7JG99HDw' +
64
+ 'pSJzL8zImpYhthhqADtEFHUWgyNTQyYWKxlWDFHmyAoGNYaCGIpi7p7Pwb1JsvGfh7n9PFi7hykH' +
65
+ 'viOekrH/XU7z+5/q+1an9eOHiMBlCtcaz9pePQ2ffbxz4ATPwU3WPQi6bFOYJK4HbgaWIdIUAMZM' +
66
+ '8HUrr3MxcCHwZuAFEfk2sNGpHjEi6Wkcp80K3SIyP0xo4wF9OyILUT1fnTsmxiSTfG/P9vM6jsar' +
67
+ 'ze0Yc02ogatVdjsCxOKBGEFwIAOwc89EPsF5MV07L48fZc6si4njpbQUllKQC4ntPM9+NCHlEJYd' +
68
+ 'WFsg7cg2X5s9Mf+xve8H1o55dt9OSvreV15g9kUOV1yGJcap+AmjUrks2MhULU4dERKKthsiNRRV' +
69
+ 'KGMWxHB+Qs/uiNtnp6w9RK75nuGBOsOovgPYrc4dFGNKrzMN902I3Cie4c6tWRnoSVzLKAB2UTzL' +
70
+ 'X4jIT4EfONWNRkRP001sArqBWSfw32aH1ciesGI756Iu8Ora2JK1zMbJUmzoBlzdSJPR+G3FgWao' +
71
+ 'Jnx2YgMitnSzcOE6muN5FO1CCmY5TWYFsZmPoQVHmVT3I1ETmqW0NPVR6ji8IN7L/gnMf/LtpKQf' +
72
+ 'evlFiheBFpYiNq46HHxpSi85qBgyMVhjiIwwnBoi8f3galjvo0NwwHB70bG2lIPvGZMGgQIiFwJv' +
73
+ 'VTgIPPt6OHGnOl/hreJZ7iqg4yQBt941lQDqHUCrQAeq7ZplT4q1k858xUtKK4EZE/z8Gj7bZcCP' +
74
+ 'z1XgbbBMXRRjixdiKPqaCKZGbsDLDVL9uwAFlDb+iOZxr2ocy1s62UjBthOZGRTNPGJZRNEsps0s' +
75
+ 'YFY0g047h6JZQsEsJjZzsWY2xULnumvjH81mYlYv+XqSUHr5RdzQS6gbRgKbrU2oEDWjEiqaQiqx' +
76
+ 'UUtBDS1IWwyx9WJabLi7SG41O8MRA28Erlfn5oWNxXN3tnFugcCNAu8DrgwgpA1Aq1ZuqnfIGODm' +
77
+ '8JtzbwPeq8ZcFjY8J/NcmoFFwHn4TcCJAm8rsBSYq1lmJ0lOmshxul57gsCbDBZQez6IYsQnRtTe' +
78
+ 'XpEa8IWQzdZOy4ol433iDpJVs2JAC00YaQZpxUoHsbTRHhk6rdBhDU2mCUsHIu0YacZqEddSiOMT' +
79
+ 'uDpfTxKSHVuQwZd9hltNX7Z4jISKKDYUmgwp5p6F8f6rYjZ2Cj2xY6PNwfdsSA7zxIPvm3jtRty5' +
80
+ 'AriizrUANwK3AZeEFamOAVAJfuP0MH5FsD8ch/AbU4PjaKoKzEDkGuBXgSWappOpi85F9bKTuGcR' +
81
+ 'IrMRWYbIzBOh8+rPt8xoS91Ej3QCk0N2Eq+bhCMdU2pAWi0inaGLQ1igmNBUIgBxRXqo4r+ZS9Rx' +
82
+ 'BX4XdyJcW1FxGA0DQ9yoa6g15y9hc+xkntqvJ4l+aMdWOM9R6FwCxDjn9V1RF9rHRxjnqgkV5cB6' +
83
+ 'iy0Z2aCdFUOcQKyQOFDD7Tj+a46JZxR8LwbeDmxW514WY8rn2DkWgEsCCC7DOyIaqhHAELAH1Y3q' +
84
+ 'bXvHRHUIEBVpF9U2RC4IAN4RnvVGoNopnl0/jzGHgQOTMpmIzAa6gs57os9vUaEbkZ4wqYwbmYgT' +
85
+ 'GDTehlhk/I284wfZDLw7pXkMbD8I9OqJOSYUOCKqhyrXoT7wFtRgJMZBNT3YquKCsKDqi+H4r4qo' +
86
+ 'IJyHRjfomvhbclcy2OgT9Cf07E3oIi0P49wwLhog0yOUsn76pMCwRKTOUXIDZNpLmvWRpUNoNowZ' +
87
+ 'LA+cLPheu+clVtoM17IEQxGnIZVYDDgwNQkVTgwu8dXNSp713rkt4aGUrhg2Zo7uInTleu8Z1Xtb' +
88
+ 'ELlE4Z34Ddbd59QJerfCtQLLg7wyFmi8DDyOt7wdUm8XKwdGJepBvCCqM4LX+zrgDUBng9c1wAxU' +
89
+ 'rwmvfcrAq2lqgHlhEolPEHg1fP6u8BobJ/KfHJQD6N6P15YrryXHvbbUeT+rcL3AW/AeaWkw4f0c' +
90
+ '1Z8i0tfgteqfj+8/eSAw5gbAWxZHwaVgAptVIVPBGMW5EWvZqEI50kJmrqbt0jfC04+N9Sl+dpRu' +
91
+ 'ykPPkrUcppTuJ4p2UKIJzRKEFqBE2R2irNtJ2UvqDjGQHF39RPK2/mRsV0ND8H0iKWvbrm3Mn6sw' +
92
+ 'awli41BK0qDWYpzDWUvqHKl6ucEZQ1EMfYO2DZgh9Bw2dJXc1DIIvo5iZngwtqhzA5OZGHJWQdcv' +
93
+ '7zvx3uy5DcBRwnL1BVR/CDwmxrwyAQnjJWAvIkfxnukFdUBQAYtIN6pLNMueEmtPbSPPmHl4+9oM' +
94
+ 'GlseK49RPXZvEVmgsKik2mbgWGGcVW/RtwY7Go4TDqe6QH1izVgrjZ3AU2aM5KCJLfjrRVtzitWD' +
95
+ 'GNFqURxrFBtumNRovbWbbIalSOuH9H/OnjPWmx7N2MihA70Ml/aSZDsZcltJdAOD6fMMZ+sYytYz' +
96
+ 'nD3PcLaZJN3BULqXo4cPHUhObYDLw0nKvgOvUOh9xTNoFaz19XttSKwwamgtiN9kc7aSUDErbLIZ' +
97
+ 'wBrA0p3j4BlnvQX8htCNwCp1zp4TZ2ZMEdX5gd01NfitFNW9qP4b8N2JgC5AmJyeQPWbwM8DKGkD' +
98
+ 'LJiNyAJE2k+lvkP4v8uCzDHWZugevD+70cZhE3CRhQvMafbkOlWLTw2TCWDmKY+7+hflSKmMuF0e' +
99
+ 'dAPj9UO/phrZ8Q4HQKQTMTdRWvleXdN4G6w/oef8Z5ObOLJ3DwOl7QwlmzmWbGAofZrB7CmGsqc4' +
100
+ '5p5nqPQCw+VtDB/dtewXvdfvP0m2+xrw3bVvB2nfTgylar3eck2HCodgQ9WyQpOhuUXunh8ffEvM' +
101
+ 'xvawyUY2seVPHpMOvjFwDSJXA+eKy6E5TCjFxvIjfSqyTkWeFGP2n9CY93r4i6g+Fpbt2RjvMzd8' +
102
+ 'lpMGurKIUZEleGdCo9cpAz/FZ6k1srGJwFKrepGp3VM6B6K+1LB9e8LKOTuImo4htCICJmSsOfEJ' +
103
+ 'FV5eUJ+cwEjxHGEpRL9O26Uv6Zr1P5G7krpa1e4sfmDxj4++f+d18jjZzAGaWw9RsO0Yicg0o1we' +
104
+ 'pOwOMXDkwIqf7LvmwHFAp/85biVavABa/K5ncfAI7Nwzlr5cC756y/7tzBdH1roQayLimoSKLIuw' +
105
+ 'qtWEioIamjBxDM0JRApxBKUkR8KzEBL0u+tV5ADwT2EJPt313QXiGX0j9ncMeEWh/6QumjFldW47' +
106
+ 'sBW/kRY1mNhmBea9lRPcnAIYUjUOOlG9ADjP++brsvcdwLrw7/0NJAlBtQLglnNI4asLvHJX4nRt' +
107
+ '/0FM+3qQa1GlZhOtZg4Lm2yVoeFZr8FxJbR8kpZV/bpm07p64BtSf9fO+Unv7e9s691436UzXqCj' +
108
+ 'tZliwTJUdpSy4U9t2Nv+wGGuGWCkSI7+VtzEvGUXI21vgsIbELkAowbt2EU07yld0/cT2PKS3JUk' +
109
+ '44Pvvp3Mnemwc84jtTGIxUiGGiGyQla2ROJwPtHinoXsv3NbwrcYv2paHqcdfC8UuB7VrercRjFm' +
110
+ 'eNqejGoTIvNovAklwDCwX/wmzcnGXmAdsKKRpKF++Z9xkskaBY8pyxBZGBh8VudcyiqyBdWdwfGw' +
111
+ 'Da9vv9b9INIBLM5gUaq6Izq96c1nmfECtMRHKLuHEHvtaDtw0H19GrG/V6kL7oaw6WZowZmbkI4h' +
112
+ 'Wlb9eSPwBTiUsPa+gVjOf7R3FXFvd2roihw9Q/6ObazdTNM/jNvR1ddB8UNg3goyC9UYZyLvTrC3' +
113
+ 'UZz5ILL6q3rvhl/IR8dmvx58j7zKAhSZsYBMYjQkVJSdxaoyHKxlsToU+7OM7oRcZjjDIEsdIGjC' +
114
+ '269+CdUDmmW7TnfBl9MYFtViA3Y4gomqp7ThJcYMOdVNwL9Qvyob6iWNV08WeMVjSqWIjxtDZuhR' +
115
+ 'kf1h9dIT3Bz1kixMWA104yvGnePAO3hJH3bbI0jHxxGZE5wTGvJh3IiP9zhrmUFQ8cZsNe+BDqVp' +
116
+ '5V/omheeawS+gf32MAaL1E/Hzcilb8EWfxvMlag2gWbB/+sHpTIL7AexrXMZuvIv9XPP/ER+Pzk2' +
117
+ 'AfDdzVxx2I45pBL7jsTGYY1gU4M1Qmuid76YzJ5Iico8Ji0cvkBOsY7+6fAFZK4DNiDSz4lXs5oq' +
118
+ 'UQ7L7ZRKdevXSgAtNSyy/xTeaz/wgzEBHjQSOalJTDx4Lg8lN7XuPVXtF9isIodEtYTIJuAdeGdH' +
119
+ 'vc8zR3zq9OOcI3WFG86wcvvXM5qGtmL4VnAx1G60vTaN+PhNN0Ew0gHmVqTz92haeYWuiU9qI0Rd' +
120
+ 'LBQv6Yb4DpysJnOC4lAUVPF/wgJJDdhbkOJ/JL7iRv1c3DruYHk4SVl1eDf6yk7cwGEkG0TTjDRR' +
121
+ 'mtIU6R/+yIu9nd8amJIlIs9lpjsAPIT3ljaqIjYbuBXPmKZrDAdALI8BhrMErhKYlWXZSW80GRE1' +
122
+ 'Immjw4pkJwu66lwsqgtCfeL2BvdrUEW2qchhK6JiTH+QGg41OH9/7qorRLXtXBncYwNhy9wDcOw+' +
123
+ '0JeqEkNFUqhcxvppxDLSFFM6wdwKHZ+isPINJwW+n6Ud1/xmMKshMGpFQ51K58FXtJrRrmpw5iZM' +
124
+ 'y6doe8MNet8EwPeuxMnXk0Orf/BqTLpjN+Vd+ynvPXTns7uKVz7aO+O+w/GmQwM56E5iaAMJofYh' +
125
+ 'HQIeR/VZ6hdLUaCIyCXAm9W56Qq+w3httdxggtEgrSxTeI8Yc/EUPY92vFY7swG2VCbTF9R/HZE3' +
126
+ 'fP3dvgbnX8Bnwa1Q59rPeeCVtz2ckuzZANnfIQxXGa9oaPHeiPVyfImITtTcipwk+A4tWwLRci8v' +
127
+ '4DC4ALjOyxrivP4Vsusc+FRneRva/B8ZuvqX9d64cyJvtfEwPfIvyRH5TrJPvpPs+/IOep4doGes' +
128
+ 'OsB5nDbGmwZA+jGqzzVgRJVqW9cDb1LnOqZhj7FBRHbg01GTMZ7VToGbBN6vqu90qpeqc3NDltgU' +
129
+ 'uGPSjshleN22URLIUWDDcZLBUPhZ7xiY1IbIaj2B2g3Tl/ECbNp1hLjvfsR9L9RMGOlCITU910ax' +
130
+ '3kpCRYUlAyIzwLwbPQnwzZrm4XQuSIaqklXlBQea+iISQW5IKy2KNDS9lJuQ+PexV79TvxZ35Hg2' +
131
+ 'pYAVxveLKqrrAvjuZEQHHf1aIkuBaxFZTYPODFP2QhhTVt+eZx0+rbRRSyWL37R6D3An8H5EbsHa' +
132
+ 'N6rqRZnqglS1bfDseV5n4WtqtDRYySSoHhDVrUa1uvEtqsOi+kKYeFyDc29Wv2n3+gBeuStx2IHt' +
133
+ '6OBfY/S5ESYbWv8Yc1xCRT3WKyPgK+bdZB2fghMAX3GhxJ16dmvFYcl8J4yK7IDiqnKDVjixV4Ll' +
134
+ 'aqT4SbJrc/CdjghtbZKJPKci38dvLGkDxtUFvAuROW6aJVaI6qCoPoSv/5GOM2HFwBLxRYM+Cvwh' +
135
+ '8AmB2wSuboIFqtruVFsz1WLoOHxawVid68S33ZlD4z52h4K+OyDGaM3EkyCyM6xuBhtJSgJLBeZl' +
136
+ 'vofbOc54AXnXphLR0V9A+a9At40C2drLakJBnVrWezwIGzoReRem45MTBl+XHgQOhc00R4Xvqiqq' +
137
+ 'DglSQ6WSWqXa6EgVUwW5GlP4FOba9+hX583I4Wx6ReaL4jyB6sagE0oDjbFb4aagCU6nSIHtqD6B' +
138
+ '78vlxgHfCO8g6MTXvL1K4H0Gfkfgvyj8H8AdwHXi6+Ge7lXAIlRX0zj7DmCvqG6p50VWSNRvsu0Z' +
139
+ '45ybFVYGd8e5D7wA8r4N/Zht/4rJ/gZhd3WTzdb0XhsB3NG+X3M8I5aZILdC28TAN96yHU23oAx5' +
140
+ '+5i6Krx6MB6xlaE+m04VnEo4Kqd7NRL/Hq2r3qf/koPvdIqiSCqqrwDfw+f3N6qyNV/gZoXlJb8n' +
141
+ 'MF3kBhVjhsLk8n08CLlxntEKtTB4XfU8vLvjjQJvE7jVwAcR+Sgid6rqe5zqJU518hmjyPmIdDNW' +
142
+ 'DWHVV/FlY+sxegdsxhehaRSRwCWiuvh1A7wAvG/3Icrb74P0Kwj7g+NwtLXMitaxltWwXxEM6mUH' +
143
+ 'eytuAuD7Z/TiBn+K6iYIDLfiZkBGbGUeiP1tddTKDh58M1XUXIHEn0C7b8vBd5qF6gDwC+BJvP2q' +
144
+ 'Xnm/JryP9K2Rr441vWQVY3YDj6H6HeAZRrzJ4zW31Kq4NsL+l+Irkr0H+ADwAYHbRPVmde6SUHj9' +
145
+ 'VCUGCZ0mFobDNvhsA4QW8/UmTVF1orotAG86Bl4tFVgUWrm/PoBXTKLcsXM3HLoXTb+KcKC6yXY8' +
146
+ '6621llVq+la1Xio28RlgbiUbG3y9o2DLOhj6FuhWKpXiJWy2VWxlGmxltcNQZUTv1cB+nVyGFj5B' +
147
+ '4dL36sPzO3NEmyag5EsV9qH6CPAcvrp/Iz3wRgNXO9VON/0KrOwE/hnV+1D9GbAjAPAwJ17XtrI6' +
148
+ 'bMVXC7sN+ESQIS7PVGckp8aABbggHM0NJgensDNkxCW1+m7NhOPEmAMBmA+PsaKZh8hiYNZ0LpB0' +
149
+ 'wh9cTKL86qYdmEOfR9KvgB7wwGrqsdyRQmuj7GWB9Rqp2XBr+ySlS65sCL73JEO09/wIl/wD6FZE' +
150
+ 'M6Sy1FLnwVi87uvUM/GquwFwI7/tv5fLyKLfo9x9Ww6+004L3Ry00M3UL5ziSxx6i9m1NEiPncqy' +
151
+ 'A97T+gzwBVT/Evi2+o23o3hb3YnWU6h4j4qIzEPkJhX5OHCHwAVl1ZPSgFXEqshy/Oqi0QTnBF4W' +
152
+ '1V31QPe4mWI38FI4P2lwb5fgG2hO27Kg5uQGRgDf7OAXEPdlhAOjWK+pIzOYOqy3ungKVjPb8R/G' +
153
+ 'BN+7kj7a1j+Elr6BsgUlC5ttbtTGGyhp2Gjz4Kvhq5cbKhwAWY0UPolcloPv9NJCS/juC48GgKrH' +
154
+ 'jiywSuDNorpYp9lOeDjPQTFmF/Ckqv4z8DfAX+Ersq2vI0NMlNlbvCd4uYFbLXzYwKVl1ROWHsRT' +
155
+ 'q2X4Db5GElGG6ubA3MeTk3YDL9K4EpkGSWPF6w54q+D7wRe2Ex38AsZ9d5IK1QAAHmlJREFUGSP7' +
156
+ 'qvNqBXS1xudbOyyOZ73+rzNAbkXaP0lp+RvHBN/y+u9D+WuobvVyQ8hiq4LvcbYyrT3CxpuqkiFk' +
157
+ '5jIy+ynofof+KG7LoW3aANMevNb7ZFiC1xsvncBliNwYqlxN13MdMMa8YkSeRPV7qP6zqt6v8I0A' +
158
+ 'wo/jyzj21gDrRDThArA4dDW+zcCl6Qmk5apzEaoL8CnCjfZLMrw/d4f4fm5jn6vqvnAuYzXqnAtc' +
159
+ 'BLROw2SZUwPeKvhu2rQTPfBFSL+Clf2jFjXmuA4VIyxXjrOYVS7eDNS8G+n8DwytuqYh+H4u6SVZ' +
160
+ '9xC2/Hd+Jq0kUYjzeq/qKHmhks2WVf8evg9MGOmG4ieIrr9efxQ35bA2TUJ1O6oPhdquSYOHfgFw' +
161
+ 'M7DSnQSjm4IgPCTGbDbGPCSqf4/q3zj4mnop4odhInoRv2TvY2SjqqEMAMwQuFngl43XaicaTfik' +
162
+ 'hvkN2KcAwyqyNdROHv/8rB3Ca9y7aZxC3Yov1r5ERYqvO+ANDNTxwRe2I4e+iGZfwci+0VrvqDbw' +
163
+ 'OjrZQgRb0XqRYE/rQM07sa0fHxd8h9d9D0pfQuhBJEU0G5Ebgq/XBcPDqIMRYCa4HkSuwbV8iujq' +
164
+ '1XpvXMhRbVqAUD++ROfjNPZ/FoCFCu/CL4nPpfMv44vLPAP8o8BfKNzt4K/VM+EnUN2OTzpJGLtV' +
165
+ 'fCzwZoFuzbIJLeFVpEm9hWwWjesIl0X1VVE1qtqpqjPHOTrV9xrYGVYy9T+vyEwVuSKA8LSLaHIG' +
166
+ 'QKLqXtjON1Z+kXS2IvY3EJ1f7VBRBdvaNkG+qu+oPp1VexqdOHkH0qKUljtds+WpusXUP5f06h+u' +
167
+ '/y5cqmjxo6hcjqmIDKKkeGD3jFerTNc4iOzIRlsW5muVt2FmfIxruz+jbuNOMXl9hmkQR/De3vPx' +
168
+ 'G2otdUClVeBq4CV1br+eW+DrAqhWGH9/6m13L4pqi/pl+RXiy2cuGwOoTJALLkdkszq3XozJxpEF' +
169
+ 'vFPC10/QBmy6DZGb8V2OS0wgRTwUR59L49RjDTJSN/BImHxef8B7HPj+DensDDG/DrpwdBt4ajpZ' +
170
+ 'VDoViyAKViCrbRcvnb68Y6ejvOLzumbz03XB90+Sfv3D9d+Dyw0Sfwy4DLA4tf69eW0WW2XTreLx' +
171
+ '9XY0xRHh5DaOLdjChr574aUpWd9VRcZcO9aEnYxVTYNxY6YI8KTqazj8ODysb2wAKrOAtyKyG7/J' +
172
+ 'c0718Bp1c0SOEYrQDKvujGCfhVfwNW+vCYAmDcbLUvXV3sbqzYY61wYsHadzRmWsLMTrwBMe4ow8' +
173
+ 'uY3+vUW8k2KeZtkesbY8ne6RmdyHIGy4uT33Yt29GNlVTaiozWqr3YP1f9fjSqb4nsXoDFRuIWv/' +
174
+ 'GIMrrmooO/xJ0o+uexCSvwJ9BqVMvSw2Rbzuqz7BIgvar3c7SADjDtT+BoMXXjOF9d5KmshYjEQC' +
175
+ 'u2metDctlyU8tE003lF2QZs7c90gVFNUnwF+hu9S0Kgy1iV45re8ssY515cDTb6+7g5Uf4Tqg6hu' +
176
+ 'GOfezMZrtuNhw2zg0jDGxpvEgt1zwkc2gfETATNRXc40rFjWkPGeF9NlLd3N4fGKYzZuGIg3jVce' +
177
+ '0TPfl3fyd3wVFghifwuRRZiw1K8mVKggng4fl1ThN+WcCioGtBOxN2PaHaXloh/f8qx8PinXZb6f' +
178
+ 'XvddmlcnaNPvgXkTShNZOMsKwLqwmHHqv45swgUnhCpiLsQ2/wazuzfBszum2k0T3wFmEJGhMX/N' +
179
+ 't+uePJuctUVU5yHSGh7Mev200sC2zhjwBm/oQXXuaWAxIm+nfiHuInB5YL8dU4G1hxb1460gymJM' +
180
+ 'eorXqKzOPRlAavUYkkOr1L929YC3i3p90s4c+YgD+G/AZzJOX+Btj+mK4fZOS8+NzWz8wrL4IMUw' +
181
+ 'KDqZ9YafMf/Zw2MXBK+C7xf5CtE8kOi3gfMb1utVEYwqRiRY0JSq90EMSjuYm8k6Csxc9WX9+Kaf' +
182
+ '1QXfe5Ih/fSGHxB3G6Q5Qs01KHFw+VbAVUZlsSm+wlkt+GYqGHk75flv1qfig/LG8TsXn4VB1x8A' +
183
+ 'TmncnWFmAJjJikob8rHM9mVUa3fTz+BV0c0Y83BgtMsD0B4PCueJr6BlaNzV90zGzHBN28YA353q' +
184
+ '3I7xkg8mAL79qro3aKLFBsSrZZzPgssyGySGZePIDKf7GSggsjIw9PXTFniL0EXG3U3CxuZw9Ukx' +
185
+ 'NDVH2CaL1aZnrkt6b3m6t+uRvScBvsL5NZtsfnPNhGqPHMd6K64HVQNaADoQcwOuRZixMtU1LzxR' +
186
+ 'V/O9JxnSj298hFmXCRQ/hZM3oRSPq1pWAeKwuaZ+mCmQBaeF0g6FD1PsfnwKst5a4G14C8Rvlkxm' +
187
+ 'xf6mMMjHetjKKnKUs9CKW6xNVHUL8CCqnYgsqfM5I0Yy2aaC1LAIuAWRFWOsQH+C6vfUuT1hM+1U' +
188
+ 'JqchoA+RBdTv72aAFlRnqHNJvQ02NeZ8YJmMA9BMno7e6D5ZYK7C4kR1pkBvQUSnFfAWocsY7jYZ' +
189
+ 'OAOZhm3SYRwFUdpQ0qJFCq0Pv7k4cMeT+7rW7jgB8DXzwFXAFzDiRiVYqAhWFQ2sVyRoARhUbCi6' +
190
+ '3oKY63Gtg/QtHdB42/p60od8PhnUTz//fZpXZ0jLf8ZxFY5CjZ/XYPEF1a1Ile1mCEbBie/p5riW' +
191
+ 'dPZKfTDeJ+9KSlPs3h2lcXnEylWdBSxOVecBB6JTGJQ6NORfz2+8NNPYPpTg/aPZWbkqqkeD1rsy' +
192
+ 'cId6O+5T6eFsDuB7BY1Tmwfw3tx9kyDhRIHVjlf1zI1xnS5gRCcfa3wepX49jROJFryDoa3BeCsC' +
193
+ 'F0WqS8L7TS/gBW7HSZdDewhPTZIAEY5hlMKwYlQpRELW1Hr/VYuHP8LOrq+dKPhm9rd9CblQSF1V' +
194
+ 'Av8cmW9dLeNFEDVAhIrDaQti3kKhcxv/ed5+PrNrb933vScZ0jUbfkh6eRs0/SdUunGYUWy3msVG' +
195
+ 'pWdbkBu0Us+hDS3eyJJFT8PLUwl4NQyy3gB0BepVSPZ2n9Uicq2DRw+r9s06SfDVpqb54sGhi8Y2' +
196
+ 'HwGGRXUPjVvYnG69N1Xn9gI/Cjrk1Uyie+c0RH9Y+qc03vCrlHt8Xp0bOFnJwam2oroI7/5oVL7R' +
197
+ 'oToM9NVj1+qcVV+EfekYk74CW9T7i/tPAQwF1QUicnkYd3X7uInqUnwm27SRG6Iq2/WeOBzSlTrd' +
198
+ '2GfoejqBu19NuPsCDlNqNjTjkyAATLH5vmsWlmJe7fryiYCvzAO1v4WwcHSHisB2a7VexW/CKRJY' +
199
+ 'r0EwGGkni26mNPdpqA+8AHJXMqhr1j2Iu3IuWvgUzlxYTSXOqh5f7+3Ngsc4QoPc4J0P1lyN62xl' +
200
+ 'CnkFw4N3TD3A7Qsaoa03JIFVRrWsIgc6VDepc30TXa6GdEyrIs3AWxTeK55FN2JLDtXD+JqrZ1MX' +
201
+ 'T4Cfq2eSi8Vfn6layeoQvmpXSuMi4gvxPthn8IWBhk944nSuoHAlIm8JklGjGMbb0bTOaxigPXQR' +
202
+ 'XkCjFkWqCfAkIv94qozXiZxn/NL3Eho30FyMt5bFJ3NtzkaYIJR0h35GOCAxdLvAegcAhlCMKKk4' +
203
+ 'MnEMhpuSFFu+dMWF2ccu9v93PPDlYy/vhP1fQbO/BV5lpHBknVoOjFjLwEBgvSKGTCOQi4jji3TN' +
204
+ '2JYvuSvpI931AJp9G9VD1cLor81i84NmxG4WFlyyEtqnZnaMz0qqNIFsxD5iRC6xqr9u4ZcCe5po' +
205
+ 'FMKg/gDwK+KrQo3FHg+pyBbgVep0GTiTE1MoKv4z8cy3NGWfQNUD+KLnY9UmiBFZhcivIrLApamc' +
206
+ 'KOjiCwZVEhnGuoeHUT2AqmtA1FYGaaTRa2T4LMJXjcgRIzJ4KkcJXhFfray/4fURaUVkEXDhdCmG' +
207
+ 'ZMK6oEuqm/qKcwGAMxhIPOH3BW0CANuyI02UAhAXWr5w1QWqt8UzJwy+uvPLuPLfouyuaQM/GoBt' +
208
+ 'tXiOr+UgYvyhFoMBLZIyh77xUwblM7v2Qv9XQZ/HkY0qGZ25ChB7Llzx9qKV7bjZmKhT18ZTsRLS' +
209
+ 'dnxu/gBjm83bELkUkfch8gGnepM6t1CzrO6kpVnW4lSXqcjNiPx7gXeHClRj5cUbhW0KzzmRY6F2' +
210
+ '7tldGTi3A9WfhyXoMFMwaUKsTVE9iK9Dm4zxGWcAVyv8ilr71kx1/gQAt1WdWw28F5EP4JMnOse5' +
211
+ 'Dq8qvKz1x1MErBpj8q7YCV8KK7FTjlaRDG8Va9TotIJjC1SkS0WmRaPTaPRVk8pagdRBn6ErgY13' +
212
+ '70vm3B1zBKte5y0WvAUrxYNv1txKy5Lz9UM7jHw9OTS+7PDqLv4nX0YXgkR3Iiwa4b4CRpWR/sQV' +
213
+ 'BdigakFsWFY7hDLRBLXEFS9uZPNV38MUVuDk/BHfbs2RVYq4BwD2bgdh2M6kjYiztWHUmNn1q+om' +
214
+ '4HngTXgHQyMALgad7HyBixFZj8g+Ve0HhhQy8eMhBmYFdnsJ3vPZxNibLYovXr3BeU9lNkVArazO' +
215
+ 'bUH1kbCLv2iKSg5HUH0uuDAabVwaYI7AO4OeuU5VN6M6qCLlsOqpVBxrCmm3C4CVqHbh72fTOBN0' +
216
+ 'SeFFJ/JCg99rxncRnjvGWEiD1LRvsi6Og0MCL4wx+Wv4TF1B2z82LYDXWXpqTSOKdDl0owOeS+ie' +
217
+ 'FbORCEdZHAVxIdNMKRoXuvxCZlspLj5P379T+BaHxkq0GAW+6SJFzEdDz6aQvctx1rJgQfMJFT4N' +
218
+ '1tCLy3bTMrGLLLcnmf5x77fQue/C6flVbTeqfH68rksoF2mFao0HQxPNUzPFNIODAg8a703tGmcZ' +
219
+ 'qXhf71VhyenCMrwvfG0N4F0YkXjCJDf2aw4pPA086WBvcQpZesSYg+rcz1DtRqQNv+E21Xa+DwFP' +
220
+ '4NOdO2nsFjDAbPGT7OX4zdUDYcVzLEx47Xgdfk74PkbEMGKYbDyUVLcJrI+M2VGHPcfAgrCkbzTB' +
221
+ 'K3AMkS04d3Ayx7iFTUEqaW/wvjNFdRkwQ53rPWXb3RlhvBkbQXtAqjpv6nXejVkW3A2DKAW8rSwy' +
222
+ 'jrIoRSAtK5FVsFCKO4gvjPjwAav/i/0TBN+vkC4Csb+NsNDnQ4VNNluTUFEpH6kSHA7ZegrDPfW8' +
223
+ 'vA1j+UvbeHn2szh7OUqn13QVUidYq6M9vqG0JKKUtcTQ1LSpKAwIPKeeDVWWgmNNEhIebFvVD322' +
224
+ 'kqsBWjkBcCqpX1p+B1hXnII+ysxvYP2r9azoGqZYAW0xZkidexnVH+I3MpdN4P751G2ROTIinFUa' +
225
+ 'X0aceD2NQeAH+BoN9aID72qZOcbnGlRfB+OAsXbSXC2xSK9TrdQbnt3gvCwiM1FdGVZfvVNe4y1B' +
226
+ 'j8DaUYPVQeqCrcxDtEMGldKwkpSUqOzIyg4nDhVXOXUw7SQLFvHh1nkaxzKu5vu7r+4i2vUVtHwv' +
227
+ '6O7XaL0y6sb6mVv0FUz2rxQ2bzmhAX57kqHZc6AHqyy3ArYVnTdVU/X7+mI6Alk/v3wWMrEmEMEw' +
228
+ 'flR9g8THGLtL61gPclwDSDrB/5fhH7RvAs+bsVOYz1qURBIHWxgpGD4V4yjwQ1THKnFZ7741MZJt' +
229
+ '1h5WLcUTAF2Dr/D2fbz/uVHqbVuQndppbCU8Jr4tU9/puD46ssnWCFfaVGS1Tmaa/OkE3jDdrQVd' +
230
+ 'O8ISpMsBfUrXLxK67341mVfdYPP/02u8UZAbUpQMRa2AtJPOW3JC4Jvu/iqS/jW4l17bl43a3m3b' +
231
+ 'yZK/p7zlEbnrJFJ5dfBllKOjiqRXoKb6s+B48IXTB9CslzNZ9OUEw4o4K7IPeBTVB/G9uYY5sXYw' +
232
+ 'E2WqlQnwqMIzCv8K/FTK5SnLMFpFtODcQGgc+fPAhqYUMw8ZYjuBR0J791dqGOx4963eMZH7KAFo' +
233
+ 'Hw/j5pV6NSE0ywwwB5FljJU8o9qP6noJZqhJjuEwrnsbjGkFmgW6RHXGtAHeIDGsBV0b1tikhu40' +
234
+ 'rNUOV8C2FGxlZfEOh2EV0nJwO2SOLPNJEa7QQXb+Uj7Uct6EwPf3X93F8PavQvmPEX0UGD6uY0WC' +
235
+ '6I/R0n+jee//4s+PnVxRDJcM4DStgutre7FVSkRKkCF24gYGp0NtXjFmC/BvqH4L1afwVfxLddcP' +
236
+ 'J86KK/LDYOj88LjCPw7Dvw1Br8TxlL4+Yq2KMdsVnlDvckim4P1TMWYj8G1Uv4v/nAcZ2c0/1X2G' +
237
+ '2tfoxzPIH6D6baBHjKnrgVWRmYgsxUs1jexaafismzkNm1uiOiSqPYz0masHvMWQIHJ+qjqlO8mM' +
238
+ '2ogpQU8R1gY0vt0FjpfYoPMmZLRiPdtNHOKUOHKYyOBSR2Y9ZzTGb0ll2gHnLeVDe9Cvs2c8zRd2' +
239
+ '7dV79v8jbuV6TNsVZOZS0A5Ee8FtgP5nSbe8JJ9N+k9e8IsLXjsGXI2zASq+3kpLeP876AbibJDp' +
240
+ 'E3sdfNeJrLeqbxOR6xjx3xY48Rq9WThSYEBhm/gWM0+FJXG5VcRNl4sjqi8g8hA+8+o8pmbDRC/f' +
241
+ 'qD4LvB2Rq/A1Mgo12u2JgrCrvY94EHsYeDZooo191yLnK3RLY9AV4IiK7AR6zWkYD2LMsKpuA/YG' +
242
+ '9hvX/RwiTeo9y1vx8tLUB95R4GsUdXSXMN0ZrudpLzf4LLZUHTOKlki8zIDJMOIHsBEvR/jm0wK2' +
243
+ 'A120jF8/JPrVQ7vHLSv56aRf3QvP8ue8SLroITAxqiXYeUT+6yRUCXNmHo5WLxyI4jC+A0VIE86k' +
244
+ 'Up0MVB1p+hSHNh2bNsDid3MHhlRfttCL6uOILA6WohX44tUzJvjgpvgd9234TZdKL68DQJ8VmQzd' +
245
+ 'u1HB64kumU8syuV+jeONwA+CNWt+nfc/0fduVNtAT+Y8xJhMs6wXkR5gH6qPIbJS4XLxdRLmMnb2' +
246
+ 'mRwnH2nQXXcCGxB5Hu8B3wsMjOcAEJjHSFdf1+AC7FcPdqcvccanMm9DZC/1C6srYEV1echW3HKS' +
247
+ '41FP4t9ODXir4BuxVhJ6MuNu71e6mqGnmsXWIUokjrL42gcWSMPPbJaRqUEKleRcAdNJaeZyPqRG' +
248
+ 'v35410Rq+vrlysuTD3imaTWZzvZFcpzx9SICu604WX3ZSCWjn3LpGQaZNsBbiWbv7dwH7FPntuEf' +
249
+ 'ivnAHFRnBfBtw2/GtAAFhZL4ZeKxsBQ9ChxRrwPuFuf2G2snKyVzAPg2PgGk0AA8+sPydfImpmJR' +
250
+ 'U9X9At8Vr6N21HmYJFy7PomiscbqkcAaX2wAhBLY5FZOMHsuJKAMAbs0y/YqbA9APDvct4plrFW9' +
251
+ 'b7dYs6KpnTiPKuwWvzrZC+xG9VUx5kRIzDbgfhp3riBMxltOs4STAj8JK62ZYzD7o2FiOdEVwfPh' +
252
+ 'ms9scJ4uyD+nTADHZT3tltvblK65Qs91zWz8wuL4IJ0tES3FiKY4IrMFmpwliiKMKRCZAs5EWBOh' +
253
+ 'JkIoYE2lzsIA2f6t3H9k53jge1omzP9r9hzkks9TtO+iIDGRQCwavuK/Gv+zolEM36Ww7/fkHVOv' +
254
+ 'GPopXQfvyZwdQKcdaFMoqMiwqPbLCOgeDQ0V85h697ANnyDR5kSaRbVZIFaRWuAto3okFdmRwME2' +
255
+ 'nwWWx1SUGo6P/oy11nJ7Ajyd0H33vmTj3TNbjmDE28qKBYdExmexicOJlx0yUd9B2Dhv4FZQ00k0' +
256
+ 'dwW/hujXjuw48+C77CZEVpIRh5q7hKpk5jWZbJmm2PSbJBsPnms3XYxJ1Ll9gdVVWpGitUtT0FMt' +
257
+ 'vJ3HaY1jwMu8tsJJXRmkbZrUqX29xIQ2WY7Y+IEDYQ3h5YZBpTzsiEIWW8VWloqSibeVGZQsU1yq' +
258
+ 'uCxY0FSQaAZmwQp+beaS8dwOk8oQ/u/zz8fY96EsRkMvNn8YnCqZjtjKMoTMPQVHn+TdDJ2LN16M' +
259
+ 'ceHIxJhUjEmtSGb8310OulP+/mnl/oX7looxqREZfRiTxTnoTk/glSTRgwF8BxJ8cfQSSoKShSw2' +
260
+ 'ACkrkgbAzRw2bL45FCf+UISMWci8VXxwwQVnAnz143GBbMlHcOY6VOIArtR0Gx75PlPFaUqW/D3R' +
261
+ '87vyFu955JHHWQHeCvjuJn7g3xK6P30kmcNQgyy2DMUGLSkTRQP4CgouwwWfr0YzYWY3/37+hacd' +
262
+ 'fDsv/RUw7wU6QV2QF7ydrLb1e7UXm/suSe+PuYXBfIjkkUceZw14K+C7k/iBB47STUJWzWIrHyc3' +
263
+ 'pHjANaGRpIhigyvYBCA2KlhmwczVfHj+0kat20+Z7X768huR4gdBLkDFgmjVr+tbvo8Uw/F/9pIO' +
264
+ '/X/0btqRs9088sjjrANvBXxfyeIHLnwluZGBoTRspo1ksdnUVbPYJGi8mjlSqJEbvM9XjMHZ2cis' +
265
+ 'y3l50bLJBl/9Py+/lrjlN0EuRYlAU1BfUMTbxcCp1mSxZZB+ntbNv5BPJKV8eOSRRx5TAnhrwXfZ' +
266
+ 'luStUEpJSko5CZKDqM9iC7KDiGJDIZ3QxKfKgp3zsoOY2diOK9h+wSX68XhSKsjrH1x2Pdry26i5' +
267
+ 'EiGCSrIHWq08NiIxeMnBuX8mO/xPbOo7kg+NPPLI43TFKWmrGseyIk7ev/naBU+AbSKOIgo2Io4s' +
268
+ 'mXhPb9FEZFLAmAjNIu/plQIiEVYsTmKggDGCyQZJSz2Yl3rkb5OTMurrmtjQ3/1LSNOHEVmNkVag' +
269
+ 'gBJjpIAQg8bh/Q2xQEGgoE8TDf0BTet+Lh9Ncu9qHnnkMbUYby3z3ZzED6x+Yu+1RGlS1XnLMKpo' +
270
+ 'jq3Re9MaPTXDtxXy3YMNKh3YpqvQFW/W34znnATodnDs0g9C8TdBViASVXmt4nwfKc1AQjkcrXT4' +
271
+ '2UI5+WM61j2Vg24eeeQxpRlvLfO9Y1ay6v6uucO0NzdhbIHIRoi1iMRYEyFSAGMx4r/3XyPUefZr' +
272
+ 'bIS4CJXIOyD0IO5YD0OvbJavJ0PjstzeFZdiWt8H5iqszEJpxhAhgVGrxp5p41mvZ92WAoeJyn9E' +
273
+ '+swDclfSlw+JPPLIY1oA7yjwfdOiEsQtWOPB15kC1kRYiVAXYWREboACRgoebMNhiEAKiBEkS1A9' +
274
+ 'gAxvvvMnm4a/tDXeVJvtdnsXXff/8qUt2KbrcOYyjFmA0IqRCCh6WSGArW/cPlpuMBxF088QP7uW' +
275
+ 'P+Jw7mLII488phXwVsD3IwuSVfdduTSFQgsm6LzWRFWN1xgPvkY8wCIWE0B4FACLBQqggqhDTIpx' +
276
+ 'JYwOYcQithPDHEQ6wXRitQUxntkaAthKMYBwDMQohfBvESIDZMl/o/m5b+agm0ceeUxb4B0Fvm+8' +
277
+ 'wGELrUSmQGYKWAngKyPgKxQwxo6SG6BQBV91UXAkeDCNxCJYDAWMKSJSBGkCLVRfD4mDnDAiKaAx' +
278
+ 'Ygo4jb38wAAm/TOGn/0n/jQH3TzyyOPMxqQnLUiS6H174013PrXdAENk4lOHjXGjstgExYjDZf57' +
279
+ 'RckcOKfgHOrCz0UxoQmPiiBGULE++w1GfLmVMjfqqj/zdV/Ub6ZVf3YIkj9Bn/0m/28Ounnkkcc5' +
280
+ 'ALwV8P3S3njT7zy7FSQdJPOeghH/bqaoc6gLWWyS+a84rMl8koX41N4K+LoAnuo8kKqodyn4Tm+o' +
281
+ 'etCtOnRVa8DY/8yyA1P+DE3rvsmf0Xs2SlPmkUceeUSn64UlSVR3xJu4ZOcs2i60iHZgjJKlihol' +
282
+ 'qoBwsJWZUEinmmSBIhXbl/OA6kLFLOMUjAds1Qgxrgq6hsynBuMQzcBYD85uKzr0V6Q9P+XPGM5B' +
283
+ 'N4888jinGG8t+PJ9DjP8yg5w/b4RpnFeYqhhwVX26zwYOqdoOHCB+UpI9xVXlQ6q7NeF15HRDBfJ' +
284
+ 'PBN2j8LRNbT0/FjuSYZy0M0jjzzOWeCtgu+D9H7kF5sTbOlgtUjO8XKDL9Po04hrdeCK3FAFVlXQ' +
285
+ 'zCdd4PuiIRlohtGK1uu8E4JhbHof8Z7P0bJ1ndyVJPktzyOPPM52nLlC5HEst8xKVj389gszbNsi' +
286
+ 'HMWqrayaTBFSiR0FbycT/9U5bwGDmMhUnAkxxnj3gqGAmBjROHh2Cwh7MMNraet5HBiQuxKX3+48' +
287
+ '8shjKkR0pt5IkkTZSw8duwscmjVIYfZFONMBohD0XhMK5xjrcM4QiQNrq+yXsKGmRn3isSrWBFeD' +
288
+ '06D1DoH7AXro21y98xW5Pcn7TOWRRx6vL6nhNQD8+aTM6sOv3vnzjQeIhncCCeq8rcxlOkpuUILW' +
289
+ 'i9dyK7ayWstY5ryeK5KC20TW/+dEz91L585tOejmkUcer2upoZ70wB8h7GibQ2n+cgqFBThTRCTG' +
290
+ 'MSI/1GaxCRHOebkhIkJMDGoRXiUb/PGdP9xw6EsfjF/IZYU88sgjB97xAPgGLDOYQfuyJZjiYpRZ' +
291
+ 'iA1a7XFZbDakFyN9mPJLpH3rWLRrJ5DkgJtHHnnkwHsyDPg72N85mCz/wlsWD2NaZxHFbb6mA6Bp' +
292
+ 'iSjtZWj/PkrHjrCKlM+iuT0sjzzymE7x/wNjSpXBVP9tBwAAAABJRU5ErkJggg==';
@@ -10,13 +10,9 @@
10
10
  "strict": true,
11
11
  "baseUrl": ".",
12
12
  "paths": {
13
- "@btc-vision/logger": [
14
- "node_modules/@btc-vision/logger"
15
- ]
13
+ "@btc-vision/logger": ["node_modules/@btc-vision/logger"]
16
14
  },
17
15
  "moduleResolution": "bundler"
18
16
  },
19
- "exclude": [
20
- "./src/tests"
21
- ]
17
+ "exclude": ["./src/tests"]
22
18
  }
package/webpack.config.js CHANGED
@@ -66,6 +66,10 @@ export default {
66
66
  },
67
67
  ],
68
68
  },
69
+ {
70
+ test: /\.css$/,
71
+ use: ['style-loader', 'css-loader'],
72
+ },
69
73
  ],
70
74
  },
71
75
  optimization: {
@@ -1,21 +0,0 @@
1
- import { Network } from '@btc-vision/bitcoin';
2
- import { Address, Unisat, UnisatSigner } from '@btc-vision/transaction';
3
- import { AbstractRpcProvider } from 'opnet';
4
- export declare enum SupportedWallets {
5
- OP_WALLET = "op_wallet",
6
- UNISAT = "unisat"
7
- }
8
- export type Signers = UnisatSigner;
9
- export type Wallets = Unisat;
10
- export declare class WalletConnection {
11
- signer: Signers | null;
12
- walletType: SupportedWallets | null;
13
- walletWindowInstance: Wallets | null;
14
- connect(walletType: SupportedWallets): Promise<void>;
15
- disconnect(): void;
16
- getAddress(): Promise<Address>;
17
- getAddressTyped(): Promise<string>;
18
- getNetwork(): Promise<Network>;
19
- getProvider(): Promise<AbstractRpcProvider>;
20
- }
21
- export default WalletConnection;
@@ -1,25 +0,0 @@
1
- import { Network } from '@btc-vision/bitcoin';
2
- import { Address } from '@btc-vision/transaction';
3
- import { AbstractRpcProvider } from 'opnet';
4
- import { ReactNode } from 'react';
5
- import { Signers, SupportedWallets, Wallets } from './WalletConnection';
6
- export interface Account {
7
- isConnected: boolean;
8
- signer: Signers | null;
9
- address: Address;
10
- addressTyped: string;
11
- network: Network;
12
- provider: AbstractRpcProvider;
13
- }
14
- interface WalletContextType {
15
- connect: (wallet: SupportedWallets, signal?: AbortSignal) => Promise<void>;
16
- disconnect: () => void;
17
- walletType: SupportedWallets | null;
18
- walletWindowInstance: Wallets | null;
19
- account: Account | null;
20
- }
21
- export declare const WalletProvider: ({ children }: {
22
- children: ReactNode;
23
- }) => import("react/jsx-runtime").JSX.Element;
24
- export declare const useWallet: () => WalletContextType;
25
- export {};
@@ -1,21 +0,0 @@
1
- import { Network } from '@btc-vision/bitcoin';
2
- import { Address, Unisat, UnisatSigner } from '@btc-vision/transaction';
3
- import { AbstractRpcProvider } from 'opnet';
4
- export declare enum SupportedWallets {
5
- OP_WALLET = "op_wallet",
6
- UNISAT = "unisat"
7
- }
8
- export type Signers = UnisatSigner;
9
- export type Wallets = Unisat;
10
- export declare class WalletConnection {
11
- signer: Signers | null;
12
- walletType: SupportedWallets | null;
13
- walletWindowInstance: Wallets | null;
14
- connect(walletType: SupportedWallets): Promise<void>;
15
- disconnect(): void;
16
- getAddress(): Promise<Address>;
17
- getAddressTyped(): Promise<string>;
18
- getNetwork(): Promise<Network>;
19
- getProvider(): Promise<AbstractRpcProvider>;
20
- }
21
- export default WalletConnection;