@multiplatform.one/web3 7.88.2 → 7.88.3

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 (44) hide show
  1. package/dist/cjs/connectkit/adapters/SolanaAdapter.cjs +81 -6
  2. package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js +94 -6
  3. package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  4. package/dist/cjs/connectkit/adapters/discover.cjs +15 -0
  5. package/dist/cjs/connectkit/adapters/discover.native.js +17 -0
  6. package/dist/cjs/connectkit/adapters/discover.native.js.map +1 -1
  7. package/dist/cjs/connectkit/connectors/getWalletConnectors.cjs +4 -1
  8. package/dist/cjs/connectkit/connectors/getWalletConnectors.native.js +4 -1
  9. package/dist/cjs/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
  10. package/dist/esm/connectkit/adapters/SolanaAdapter.mjs +79 -6
  11. package/dist/esm/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
  12. package/dist/esm/connectkit/adapters/SolanaAdapter.native.js +92 -6
  13. package/dist/esm/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  14. package/dist/esm/connectkit/adapters/discover.mjs +16 -1
  15. package/dist/esm/connectkit/adapters/discover.mjs.map +1 -1
  16. package/dist/esm/connectkit/adapters/discover.native.js +18 -1
  17. package/dist/esm/connectkit/adapters/discover.native.js.map +1 -1
  18. package/dist/esm/connectkit/connectors/getWalletConnectors.mjs +4 -1
  19. package/dist/esm/connectkit/connectors/getWalletConnectors.mjs.map +1 -1
  20. package/dist/esm/connectkit/connectors/getWalletConnectors.native.js +4 -1
  21. package/dist/esm/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
  22. package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs +79 -6
  23. package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
  24. package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js +94 -6
  25. package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  26. package/dist/jsx/connectkit/adapters/discover.mjs +16 -1
  27. package/dist/jsx/connectkit/adapters/discover.mjs.map +1 -1
  28. package/dist/jsx/connectkit/adapters/discover.native.js +17 -0
  29. package/dist/jsx/connectkit/adapters/discover.native.js.map +1 -1
  30. package/dist/jsx/connectkit/connectors/getWalletConnectors.mjs +4 -1
  31. package/dist/jsx/connectkit/connectors/getWalletConnectors.mjs.map +1 -1
  32. package/dist/jsx/connectkit/connectors/getWalletConnectors.native.js +4 -1
  33. package/dist/jsx/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
  34. package/dist/keycloak/login.iife.js +251 -251
  35. package/package.json +7 -7
  36. package/src/connectkit/adapters/SolanaAdapter.ts +102 -6
  37. package/src/connectkit/adapters/discover.ts +19 -2
  38. package/src/connectkit/connectors/getWalletConnectors.ts +1 -0
  39. package/src/keycloak/KeycloakWalletLogin.solana.spec.tsx +158 -0
  40. package/types/connectkit/adapters/SolanaAdapter.d.ts +37 -0
  41. package/types/connectkit/adapters/SolanaAdapter.d.ts.map +1 -1
  42. package/types/connectkit/adapters/discover.d.ts +5 -1
  43. package/types/connectkit/adapters/discover.d.ts.map +1 -1
  44. package/types/connectkit/connectors/getWalletConnectors.d.ts.map +1 -1
@@ -1,3 +1,4 @@
1
+ import { SolanaSignMessage, StandardConnect } from "../../clients/walletStandard.native.js";
1
2
  import { buildWalletMessage } from "../../message/index.native.js";
2
3
  function _class_call_check(instance, Constructor) {
3
4
  if (!(instance instanceof Constructor)) {
@@ -61,20 +62,105 @@ function getInjectedProvider() {
61
62
  }
62
63
  return provider;
63
64
  }
65
+ var isSolanaAccount = function isSolanaAccount2(account) {
66
+ return account.chains.some(function (chain) {
67
+ return chain.startsWith("solana:");
68
+ });
69
+ };
70
+ function isStandardSolanaWallet(wallet) {
71
+ return !!wallet.features[StandardConnect] && !!wallet.features[SolanaSignMessage] && wallet.chains.some(function (chain) {
72
+ return chain.startsWith("solana:");
73
+ });
74
+ }
75
+ function standardSolanaProvider(wallet) {
76
+ var connectFeature = wallet.features[StandardConnect];
77
+ var signFeature = wallet.features[SolanaSignMessage];
78
+ var events = wallet.features["standard:events"];
79
+ var disconnectFeature = wallet.features["standard:disconnect"];
80
+ var key = function key2(account2) {
81
+ return {
82
+ toString: function toString() {
83
+ return account2.address;
84
+ }
85
+ };
86
+ };
87
+ var pick = function pick2(accounts) {
88
+ var _accounts_find;
89
+ return (_accounts_find = accounts.find(isSolanaAccount)) !== null && _accounts_find !== void 0 ? _accounts_find : null;
90
+ };
91
+ var unsubscribes = /* @__PURE__ */new Map();
92
+ var account = null;
93
+ return {
94
+ get publicKey() {
95
+ return account ? key(account) : null;
96
+ },
97
+ async connect(options) {
98
+ var {
99
+ accounts
100
+ } = await connectFeature.connect((options === null || options === void 0 ? void 0 : options.onlyIfTrusted) ? {
101
+ silent: true
102
+ } : void 0);
103
+ account = pick(accounts);
104
+ if (!account) {
105
+ throw Object.assign(new Error(`${wallet.name} shared no Solana account.`), {
106
+ code: 4001
107
+ });
108
+ }
109
+ return {
110
+ publicKey: key(account)
111
+ };
112
+ },
113
+ async disconnect() {
114
+ account = null;
115
+ await (disconnectFeature === null || disconnectFeature === void 0 ? void 0 : disconnectFeature.disconnect());
116
+ },
117
+ async signMessage(message) {
118
+ if (!account) throw new Error("connect a Solana wallet first");
119
+ var [signed] = await signFeature.signMessage({
120
+ account,
121
+ message
122
+ });
123
+ return {
124
+ signature: signed.signature
125
+ };
126
+ },
127
+ on(event, listener) {
128
+ if (!events) return;
129
+ var unsubscribe = events.on("change", function (param) {
130
+ var {
131
+ accounts
132
+ } = param;
133
+ if (!accounts) return;
134
+ account = pick(accounts);
135
+ if (event === "accountChanged" && account) listener(key(account));
136
+ if (event === "disconnect" && !account) listener(null);
137
+ });
138
+ unsubscribes.set(listener, unsubscribe);
139
+ },
140
+ off(_event, listener) {
141
+ var _unsubscribes_get;
142
+ (_unsubscribes_get = unsubscribes.get(listener)) === null || _unsubscribes_get === void 0 ? void 0 : _unsubscribes_get();
143
+ unsubscribes.delete(listener);
144
+ }
145
+ };
146
+ }
64
147
  var SolanaAdapter = /* @__PURE__ */function () {
65
148
  "use strict";
66
149
 
67
150
  function SolanaAdapter2() {
151
+ var provider = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getInjectedProvider;
68
152
  _class_call_check(this, SolanaAdapter2);
69
153
  _define_property(this, "chain", "solana");
70
154
  _define_property(this, "address", null);
71
155
  _define_property(this, "networkId", "mainnet-beta");
72
156
  _define_property(this, "isConnected", false);
157
+ _define_property(this, "provider", void 0);
158
+ this.provider = provider;
73
159
  }
74
160
  _create_class(SolanaAdapter2, [{
75
161
  key: "connect",
76
162
  value: async function connect() {
77
- var provider = getInjectedProvider();
163
+ var provider = this.provider();
78
164
  var {
79
165
  publicKey
80
166
  } = await provider.connect();
@@ -90,7 +176,7 @@ var SolanaAdapter = /* @__PURE__ */function () {
90
176
  * any other failure, and when no wallet is injected yet.
91
177
  */
92
178
  async function restore() {
93
- var provider = getInjectedProvider();
179
+ var provider = this.provider();
94
180
  try {
95
181
  var {
96
182
  publicKey
@@ -115,7 +201,7 @@ var SolanaAdapter = /* @__PURE__ */function () {
115
201
  value: function subscribe(listener) {
116
202
  var _this = this;
117
203
  var _provider_on, _provider_on1;
118
- var provider = getInjectedProvider();
204
+ var provider = this.provider();
119
205
  var onAccount = function onAccount2(publicKey) {
120
206
  _this.address = publicKey ? publicKey.toString() : null;
121
207
  _this.isConnected = _this.address !== null;
@@ -140,7 +226,7 @@ var SolanaAdapter = /* @__PURE__ */function () {
140
226
  key: "disconnect",
141
227
  value: async function disconnect() {
142
228
  try {
143
- await getInjectedProvider().disconnect();
229
+ await this.provider().disconnect();
144
230
  } catch (unused) {}
145
231
  this.address = null;
146
232
  this.isConnected = false;
@@ -159,7 +245,7 @@ var SolanaAdapter = /* @__PURE__ */function () {
159
245
  key: "signMessage",
160
246
  value: (/** Sign the UTF-8 message bytes; returns the base58 ed25519 signature. */
161
247
  async function signMessage(message) {
162
- var provider = getInjectedProvider();
248
+ var provider = this.provider();
163
249
  var {
164
250
  signature
165
251
  } = await provider.signMessage(new TextEncoder().encode(message), "utf8");
@@ -168,5 +254,5 @@ var SolanaAdapter = /* @__PURE__ */function () {
168
254
  }]);
169
255
  return SolanaAdapter2;
170
256
  }();
171
- export { SolanaAdapter };
257
+ export { SolanaAdapter, isStandardSolanaWallet, standardSolanaProvider };
172
258
  //# sourceMappingURL=SolanaAdapter.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["buildWalletMessage","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","BASE58_ALPHABET","base58encode","bytes","digits","carry","j","push","str","i1","i2","getInjectedProvider","_ref","_w_phantom","w","window","provider","phantom","solana","Error","SolanaAdapter","SolanaAdapter2","connect","publicKey","address","toString","isConnected","restore","onlyIfTrusted","error","code"],"sources":["../../../../src/connectkit/adapters/SolanaAdapter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SolanaSignMessage","StandardConnect","buildWalletMessage","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","BASE58_ALPHABET","base58encode","bytes","digits","carry","j","push","str","i1","i2","getInjectedProvider","_ref","_w_phantom","w","window","provider","phantom","solana","Error","isSolanaAccount","isSolanaAccount2","account","chains","some","chain","startsWith","isStandardSolanaWallet","wallet","features","standardSolanaProvider","connectFeature","signFeature","events","disconnectFeature","key2","account2","toString","address","pick","pick2","accounts","_accounts_find","find","unsubscribes","Map","publicKey","connect","options","onlyIfTrusted","silent","assign","name","code","disconnect","signMessage","message","signed","signature","on","event","listener","unsubscribe","param","set","off","_event","_unsubscribes_get","get","delete","SolanaAdapter","SolanaAdapter2","arguments","isConnected"],"sources":["../../../../src/connectkit/adapters/SolanaAdapter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import { SolanaAdapter } from "./SolanaAdapter.mjs";
1
+ import { getStandardWallets } from "../../clients/walletStandard.mjs";
2
+ import { SolanaAdapter, isStandardSolanaWallet, standardSolanaProvider } from "./SolanaAdapter.mjs";
2
3
  import { SuiAdapter, discoverSuiWallets } from "./SuiAdapter.mjs";
3
4
  import { BitcoinAdapter } from "./BitcoinAdapter.mjs";
4
5
  function discoverWallets() {
@@ -13,6 +14,20 @@ function discoverWallets() {
13
14
  ecosystem: "solana",
14
15
  adapter: new SolanaAdapter()
15
16
  });
17
+ } else {
18
+ const standard = getStandardWallets().find(isStandardSolanaWallet);
19
+ if (standard) {
20
+ const provider = standardSolanaProvider(standard);
21
+ out.push({
22
+ id: `wallet:solana:${standard.name.toLowerCase().replace(/[^a-z0-9]+/g, "-")}`,
23
+ name: standard.name,
24
+ ecosystem: "solana",
25
+ adapter: new SolanaAdapter(() => provider),
26
+ ...(standard.icon ? {
27
+ icon: standard.icon
28
+ } : {})
29
+ });
30
+ }
16
31
  }
17
32
  const suiWallets = discoverSuiWallets();
18
33
  if (suiWallets.length) {
@@ -1 +1 @@
1
- {"version":3,"names":["SolanaAdapter","SuiAdapter","discoverSuiWallets","BitcoinAdapter","discoverWallets","window","w","out","sol","phantom","solana","push","id","isPhantom","name","ecosystem","adapter","suiWallets","length","unisat","okxwallet","bitcoin"],"sources":["../../../../src/connectkit/adapters/discover.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,aAAA,QAAqB;AAC9B,SAASC,UAAA,EAAYC,kBAAA,QAA0B;AAC/C,SAASC,cAAA,QAAsB;AAqBxB,SAASC,gBAAA,EAAiC;EAC/C,IAAI,OAAOC,MAAA,KAAW,aAAa,OAAO,EAAC;EAC3C,MAAMC,CAAA,GAAID,MAAA;EAMV,MAAME,GAAA,GAAqB,EAAC;EAE5B,MAAMC,GAAA,GAAMF,CAAA,CAAEG,OAAA,EAASC,MAAA,IAAUJ,CAAA,CAAEI,MAAA;EACnC,IAAIF,GAAA,EAAK;IACPD,GAAA,CAAII,IAAA,CAAK;MACPC,EAAA,EAAIJ,GAAA,CAAIK,SAAA,GAAY,0BAA0B;MAC9CC,IAAA,EAAMN,GAAA,CAAIK,SAAA,GAAY,YAAY;MAClCE,SAAA,EAAW;MACXC,OAAA,EAAS,IAAIhB,aAAA,CAAc;IAC7B,CAAC;EACH;EAEA,MAAMiB,UAAA,GAAaf,kBAAA,CAAmB;EACtC,IAAIe,UAAA,CAAWC,MAAA,EAAQ;IACrBX,GAAA,CAAII,IAAA,CAAK;MACPC,EAAA,EAAI;MACJE,IAAA,EAAMG,UAAA,CAAW,CAAC,EAAEH,IAAA,IAAQ;MAC5BC,SAAA,EAAW;MACXC,OAAA,EAAS,IAAIf,UAAA,CAAW;IAC1B,CAAC;EACH;EAEA,IAAIK,CAAA,CAAEa,MAAA,IAAUb,CAAA,CAAEc,SAAA,EAAWC,OAAA,IAAWf,CAAA,CAAEG,OAAA,EAASY,OAAA,EAAS;IAC1D,MAAMT,EAAA,GAAKN,CAAA,CAAEa,MAAA,GACT,0BACAb,CAAA,CAAEc,SAAA,EAAWC,OAAA,GACX,uBACA;IACN,MAAMP,IAAA,GAAOR,CAAA,CAAEa,MAAA,GAAS,WAAWb,CAAA,CAAEc,SAAA,EAAWC,OAAA,GAAU,eAAe;IACzEd,GAAA,CAAII,IAAA,CAAK;MAAEC,EAAA;MAAIE,IAAA;MAAMC,SAAA,EAAW;MAAWC,OAAA,EAAS,IAAIb,cAAA,CAAe;IAAE,CAAC;EAC5E;EAEA,OAAOI,GAAA;AACT","ignoreList":[]}
1
+ {"version":3,"names":["getStandardWallets","SolanaAdapter","isStandardSolanaWallet","standardSolanaProvider","SuiAdapter","discoverSuiWallets","BitcoinAdapter","discoverWallets","window","w","out","sol","phantom","solana","push","id","isPhantom","name","ecosystem","adapter","standard","find","provider","toLowerCase","replace","icon","suiWallets","length","unisat","okxwallet","bitcoin"],"sources":["../../../../src/connectkit/adapters/discover.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AAEnC,SAASC,aAAA,EAAeC,sBAAA,EAAwBC,sBAAA,QAA8B;AAC9E,SAASC,UAAA,EAAYC,kBAAA,QAA0B;AAC/C,SAASC,cAAA,QAAsB;AAyBxB,SAASC,gBAAA,EAAiC;EAC/C,IAAI,OAAOC,MAAA,KAAW,aAAa,OAAO,EAAC;EAC3C,MAAMC,CAAA,GAAID,MAAA;EAMV,MAAME,GAAA,GAAqB,EAAC;EAE5B,MAAMC,GAAA,GAAMF,CAAA,CAAEG,OAAA,EAASC,MAAA,IAAUJ,CAAA,CAAEI,MAAA;EACnC,IAAIF,GAAA,EAAK;IACPD,GAAA,CAAII,IAAA,CAAK;MACPC,EAAA,EAAIJ,GAAA,CAAIK,SAAA,GAAY,0BAA0B;MAC9CC,IAAA,EAAMN,GAAA,CAAIK,SAAA,GAAY,YAAY;MAClCE,SAAA,EAAW;MACXC,OAAA,EAAS,IAAIlB,aAAA,CAAc;IAC7B,CAAC;EACH,OAAO;IACL,MAAMmB,QAAA,GAAWpB,kBAAA,CAAmB,EAAEqB,IAAA,CAAKnB,sBAAsB;IACjE,IAAIkB,QAAA,EAAU;MACZ,MAAME,QAAA,GAAWnB,sBAAA,CAAuBiB,QAAQ;MAChDV,GAAA,CAAII,IAAA,CAAK;QACPC,EAAA,EAAI,iBAAiBK,QAAA,CAASH,IAAA,CAAKM,WAAA,CAAY,EAAEC,OAAA,CAAQ,eAAe,GAAG,CAAC;QAC5EP,IAAA,EAAMG,QAAA,CAASH,IAAA;QACfC,SAAA,EAAW;QACXC,OAAA,EAAS,IAAIlB,aAAA,CAAc,MAAMqB,QAAQ;QACzC,IAAIF,QAAA,CAASK,IAAA,GAAO;UAAEA,IAAA,EAAML,QAAA,CAASK;QAAK,IAAI,CAAC;MACjD,CAAC;IACH;EACF;EAEA,MAAMC,UAAA,GAAarB,kBAAA,CAAmB;EACtC,IAAIqB,UAAA,CAAWC,MAAA,EAAQ;IACrBjB,GAAA,CAAII,IAAA,CAAK;MACPC,EAAA,EAAI;MACJE,IAAA,EAAMS,UAAA,CAAW,CAAC,EAAET,IAAA,IAAQ;MAC5BC,SAAA,EAAW;MACXC,OAAA,EAAS,IAAIf,UAAA,CAAW;IAC1B,CAAC;EACH;EAEA,IAAIK,CAAA,CAAEmB,MAAA,IAAUnB,CAAA,CAAEoB,SAAA,EAAWC,OAAA,IAAWrB,CAAA,CAAEG,OAAA,EAASkB,OAAA,EAAS;IAC1D,MAAMf,EAAA,GAAKN,CAAA,CAAEmB,MAAA,GACT,0BACAnB,CAAA,CAAEoB,SAAA,EAAWC,OAAA,GACX,uBACA;IACN,MAAMb,IAAA,GAAOR,CAAA,CAAEmB,MAAA,GAAS,WAAWnB,CAAA,CAAEoB,SAAA,EAAWC,OAAA,GAAU,eAAe;IACzEpB,GAAA,CAAII,IAAA,CAAK;MAAEC,EAAA;MAAIE,IAAA;MAAMC,SAAA,EAAW;MAAWC,OAAA,EAAS,IAAIb,cAAA,CAAe;IAAE,CAAC;EAC5E;EAEA,OAAOI,GAAA;AACT","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import { SolanaAdapter } from "./SolanaAdapter.native.js";
1
+ import { getStandardWallets } from "../../clients/walletStandard.native.js";
2
+ import { SolanaAdapter, isStandardSolanaWallet, standardSolanaProvider } from "./SolanaAdapter.native.js";
2
3
  import { SuiAdapter, discoverSuiWallets } from "./SuiAdapter.native.js";
3
4
  import { BitcoinAdapter } from "./BitcoinAdapter.native.js";
4
5
  function discoverWallets() {
@@ -15,6 +16,22 @@ function discoverWallets() {
15
16
  ecosystem: "solana",
16
17
  adapter: new SolanaAdapter()
17
18
  });
19
+ } else {
20
+ var standard = getStandardWallets().find(isStandardSolanaWallet);
21
+ if (standard) {
22
+ var provider = standardSolanaProvider(standard);
23
+ out.push({
24
+ id: `wallet:solana:${standard.name.toLowerCase().replace(/[^a-z0-9]+/g, "-")}`,
25
+ name: standard.name,
26
+ ecosystem: "solana",
27
+ adapter: new SolanaAdapter(function () {
28
+ return provider;
29
+ }),
30
+ ...(standard.icon ? {
31
+ icon: standard.icon
32
+ } : {})
33
+ });
34
+ }
18
35
  }
19
36
  var suiWallets = discoverSuiWallets();
20
37
  if (suiWallets.length) {
@@ -1 +1 @@
1
- {"version":3,"names":["SolanaAdapter","SuiAdapter","discoverSuiWallets","BitcoinAdapter","discoverWallets","_ref","_w_phantom","_w_okxwallet","_w_phantom1","window","w","out","sol","phantom","solana","push","id","isPhantom","name","ecosystem","adapter","suiWallets","length","unisat","okxwallet","bitcoin","_w_okxwallet1","_w_okxwallet2"],"sources":["../../../../src/connectkit/adapters/discover.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,aAAA,QAAqB;AAC9B,SAASC,UAAA,EAAYC,kBAAA,QAA0B;AAC/C,SAASC,cAAA,QAAsB;AAqBxB,SAASC,gBAAA,EAAiC;EAC/C,IAAIC,IAAA;EACJ,IAAAC,UAAU,EAAAC,YAAA,EAAAC,WAAA;EAMV,WAAMC,MAAsB;EAE5B,IAAAC,CAAA,GAAMD,MAAQ;EACd,IAAIE,GAAA,GAAK;EACP,IAAAC,GAAI,IAAKP,IAAA,IAAAC,UAAA,GAAAI,CAAA,CAAAG,OAAA,cAAAP,UAAA,uBAAAA,UAAA,CAAAQ,MAAA,cAAAT,IAAA,cAAAA,IAAA,GAAAK,CAAA,CAAAI,MAAA;EAAA,IACPF,GAAA,EAAI;IAA0CD,GAC9C,CAAAI,IAAM;MACNC,EAAA,EAAAJ,GAAA,CAAAK,SAAW;MACXC,IAAA,EAAAN,GAAS,CAAAK,SAAI,YAAc;MAC5BE,SAAA;MACHC,OAAA,MAAApB,aAAA;IAEA;EACA;EACE,IAAAqB,UAAS,GAAAnB,kBAAA;EAAA,IACPmB,UAAI,CAAAC,MAAA;IAAAX,GACJ,CAAAI,IAAM;MACNC,EAAA,cAAW;MACXE,IAAA,EAAAG,UAAa,IAAAH,IAAW;MACzBC,SAAA;MACHC,OAAA,MAAAnB,UAAA;IAEA,EAAI;EACF;EAKA,IAAAS,CAAA,CAAAa,MAAM,KAAS,CAAAhB,YAAS,GAAAG,CAAA,CAAAc,SAAa,MAAW,QAAAjB,YAAU,KAAe,kBAAAA,YAAA,CAAAkB,OAAA,OAAAjB,WAAA,GAAAE,CAAA,CAAAG,OAAA,cAAAL,WAAA,uBAAAA,WAAA,CAAAiB,OAAA;IACzE,IAAIC,aAAW,EAAAC,aAAiB;IAClC,IAAAX,EAAA,GAAAN,CAAA,CAAAa,MAAA,+BAAAG,aAAA,GAAAhB,CAAA,CAAAc,SAAA,cAAAE,aAAA,uBAAAA,aAAA,CAAAD,OAAA;IAEA,IAAAP,IAAO,GAAAR,CAAA,CAAAa,MAAA,gBAAAI,aAAA,GAAAjB,CAAA,CAAAc,SAAA,cAAAG,aAAA,uBAAAA,aAAA,CAAAF,OAAA;IACTd,GAAA,CAAAI,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["getStandardWallets","SolanaAdapter","isStandardSolanaWallet","standardSolanaProvider","SuiAdapter","discoverSuiWallets","BitcoinAdapter","discoverWallets","_ref","_w_phantom","_w_okxwallet","_w_phantom1","window","w","out","sol","phantom","solana","push","id","isPhantom","name","ecosystem","adapter","standard","find","provider","toLowerCase","replace","icon","suiWallets","length","unisat","okxwallet","bitcoin"],"sources":["../../../../src/connectkit/adapters/discover.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AAEnC,SAASC,aAAA,EAAeC,sBAAA,EAAwBC,sBAAA,QAA8B;AAC9E,SAASC,UAAA,EAAYC,kBAAA,QAA0B;AAC/C,SAASC,cAAA,QAAsB;AAyBxB,SAASC,gBAAA,EAAiC;EAC/C,IAAIC,IAAA;EACJ,IAAAC,UAAU,EAAAC,YAAA,EAAAC,WAAA;EAMV,WAAMC,MAAsB;EAE5B,IAAAC,CAAA,GAAMD,MAAQ;EACd,IAAIE,GAAA,GAAK;EACP,IAAAC,GAAI,IAAKP,IAAA,IAAAC,UAAA,GAAAI,CAAA,CAAAG,OAAA,cAAAP,UAAA,uBAAAA,UAAA,CAAAQ,MAAA,cAAAT,IAAA,cAAAA,IAAA,GAAAK,CAAA,CAAAI,MAAA;EAAA,IACPF,GAAA,EAAI;IAA0CD,GAC9C,CAAAI,IAAM;MACNC,EAAA,EAAAJ,GAAA,CAAAK,SAAW;MACXC,IAAA,EAAAN,GAAS,CAAAK,SAAI,YAAc;MAC5BE,SAAA;MACHC,OAAO,MAAAtB,aAAA;IACL;EACA,OAAI;IACF,IAAAuB,QAAM,GAAAxB,kBAAW,GAAAyB,IAAA,CAAAvB,sBAA+B;IAChD,IAAAsB,QAAS;MAAA,IACPE,QAAI,GAAAvB,sBAA+B,CAAAqB,QAAA;MAAyCV,GAC5E,CAAAI,IAAM;QACNC,EAAA,mBAAWK,QAAA,CAAAH,IAAA,CAAAM,WAAA,GAAAC,OAAA;QACXP,IAAA,EAAAG,QAAa,CAAAH,IAAA;QACbC,SAAI,UAAgB;QACrBC,OAAA,MAAAtB,aAAA;UACH,OAAAyB,QAAA;QACF;QAEM,IAAAF,QAAA,CAAAK,IAAa;UACfA,IAAA,EAAAL,QAAW,CAAQK;QACjB,KAAK;MACP;IAAI;EACwB;EACjB,IACXC,UAAS,GAAIzB,kBAAW;EAAA,IACzByB,UAAA,CAAAC,MAAA;IACHjB,GAAA,CAAAI,IAAA;MAEIC,EAAE,cAAY;MAChBE,IAAM,EAAAS,UAAO,IACTT,IAAA;MAIJC,SAAM,EAAO,KAAE;MACfC,OAAS,EAAE,IAAInB,UAAM;IACvB;EAEA;EACF,IAAAS,CAAA,CAAAmB,MAAA,MAAAtB,YAAA,GAAAG,CAAA,CAAAoB,SAAA,cAAAvB,YAAA,uBAAAA,YAAA,CAAAwB,OAAA,OAAAvB,WAAA,GAAAE,CAAA,CAAAG,OAAA,cAAAL,WAAA,uBAAAA,WAAA,CAAAuB,OAAA","ignoreList":[]}
@@ -5,7 +5,10 @@ function getWalletConnectors(entries = discoverWallets()) {
5
5
  id: e.id,
6
6
  name: e.name,
7
7
  ecosystem: e.ecosystem,
8
- adapter: e.adapter
8
+ adapter: e.adapter,
9
+ ...(e.icon ? {
10
+ icon: e.icon
11
+ } : {})
9
12
  }));
10
13
  }
11
14
  export { getWalletConnectors };
@@ -1 +1 @@
1
- {"version":3,"names":["discoverWallets","walletAdapterConnector","getWalletConnectors","entries","map","e","id","name","ecosystem","adapter"],"sources":["../../../../src/connectkit/connectors/getWalletConnectors.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAA,QAAyC;AAClD,SAASC,sBAAA,QAA8B;AAShC,SAASC,oBACdC,OAAA,GAAyBH,eAAA,CAAgB,GACpB;EACrB,OAAOG,OAAA,CAAQC,GAAA,CAAKC,CAAA,IAClBJ,sBAAA,CAAuB;IACrBK,EAAA,EAAID,CAAA,CAAEC,EAAA;IACNC,IAAA,EAAMF,CAAA,CAAEE,IAAA;IACRC,SAAA,EAAWH,CAAA,CAAEG,SAAA;IACbC,OAAA,EAASJ,CAAA,CAAEI;EACb,CAAC,CACH;AACF","ignoreList":[]}
1
+ {"version":3,"names":["discoverWallets","walletAdapterConnector","getWalletConnectors","entries","map","e","id","name","ecosystem","adapter","icon"],"sources":["../../../../src/connectkit/connectors/getWalletConnectors.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAA,QAAyC;AAClD,SAASC,sBAAA,QAA8B;AAShC,SAASC,oBACdC,OAAA,GAAyBH,eAAA,CAAgB,GACpB;EACrB,OAAOG,OAAA,CAAQC,GAAA,CAAKC,CAAA,IAClBJ,sBAAA,CAAuB;IACrBK,EAAA,EAAID,CAAA,CAAEC,EAAA;IACNC,IAAA,EAAMF,CAAA,CAAEE,IAAA;IACRC,SAAA,EAAWH,CAAA,CAAEG,SAAA;IACbC,OAAA,EAASJ,CAAA,CAAEI,OAAA;IACX,IAAIJ,CAAA,CAAEK,IAAA,GAAO;MAAEA,IAAA,EAAML,CAAA,CAAEK;IAAK,IAAI,CAAC;EACnC,CAAC,CACH;AACF","ignoreList":[]}
@@ -7,7 +7,10 @@ function getWalletConnectors() {
7
7
  id: e.id,
8
8
  name: e.name,
9
9
  ecosystem: e.ecosystem,
10
- adapter: e.adapter
10
+ adapter: e.adapter,
11
+ ...(e.icon ? {
12
+ icon: e.icon
13
+ } : {})
11
14
  });
12
15
  });
13
16
  }
@@ -1 +1 @@
1
- {"version":3,"names":["discoverWallets","walletAdapterConnector","getWalletConnectors","entries","arguments","length","map","e","id","name","ecosystem","adapter"],"sources":["../../../../src/connectkit/connectors/getWalletConnectors.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAA,QAAyC;AAClD,SAASC,sBAAA,QAA8B;AAShC,SAASC,oBAAA,EACd;EAEA,IAAAC,OAAO,GAAAC,SAAQ,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,MAAAJ,eAAA;EAAA,OAAKG,OAClB,CAAAG,GAAA,WAAAC,CAAA;IAAuB,OACjBN,sBAAE;MACNO,EAAA,EAAAD,CAAA,CAAMC,EAAE;MACRC,IAAA,EAAAF,CAAA,CAAAE,IAAW;MACXC,SAAS,EAAEH,CAAA,CAAAG,SAAA;MACZC,OAAA,EAAAJ,CAAA,CAAAI;IACH;EACF","ignoreList":[]}
1
+ {"version":3,"names":["discoverWallets","walletAdapterConnector","getWalletConnectors","entries","arguments","length","map","e","id","name","ecosystem","adapter","icon"],"sources":["../../../../src/connectkit/connectors/getWalletConnectors.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAA,QAAyC;AAClD,SAASC,sBAAA,QAA8B;AAShC,SAASC,oBAAA,EACd;EAEA,IAAAC,OAAO,GAAAC,SAAQ,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,MAAAJ,eAAA;EAAA,OAAKG,OAClB,CAAAG,GAAA,WAAAC,CAAA;IAAuB,OACjBN,sBAAE;MACNO,EAAA,EAAAD,CAAA,CAAMC,EAAE;MACRC,IAAA,EAAAF,CAAA,CAAAE,IAAW;MACXC,SAAS,EAAEH,CAAA,CAAAG,SAAA;MACXC,OAAM,EAAAJ,CAAA,CAAAI,OAAS;MAChB,IAAAJ,CAAA,CAAAK,IAAA;QACHA,IAAA,EAAAL,CAAA,CAAAK;MACF","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ import { SolanaSignMessage, StandardConnect } from "../../clients/walletStandard.mjs";
1
2
  import { buildWalletMessage } from "../../message/index.mjs";
2
3
  const BASE58_ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
3
4
  function base58encode(bytes) {
@@ -27,13 +28,85 @@ function getInjectedProvider() {
27
28
  }
28
29
  return provider;
29
30
  }
31
+ const isSolanaAccount = account => account.chains.some(chain => chain.startsWith("solana:"));
32
+ function isStandardSolanaWallet(wallet) {
33
+ return !!wallet.features[StandardConnect] && !!wallet.features[SolanaSignMessage] && wallet.chains.some(chain => chain.startsWith("solana:"));
34
+ }
35
+ function standardSolanaProvider(wallet) {
36
+ const connectFeature = wallet.features[StandardConnect];
37
+ const signFeature = wallet.features[SolanaSignMessage];
38
+ const events = wallet.features["standard:events"];
39
+ const disconnectFeature = wallet.features["standard:disconnect"];
40
+ const key = account2 => ({
41
+ toString: () => account2.address
42
+ });
43
+ const pick = accounts => accounts.find(isSolanaAccount) ?? null;
44
+ const unsubscribes = /* @__PURE__ */new Map();
45
+ let account = null;
46
+ return {
47
+ get publicKey() {
48
+ return account ? key(account) : null;
49
+ },
50
+ async connect(options) {
51
+ const {
52
+ accounts
53
+ } = await connectFeature.connect(options?.onlyIfTrusted ? {
54
+ silent: true
55
+ } : void 0);
56
+ account = pick(accounts);
57
+ if (!account) {
58
+ throw Object.assign(new Error(`${wallet.name} shared no Solana account.`), {
59
+ code: 4001
60
+ });
61
+ }
62
+ return {
63
+ publicKey: key(account)
64
+ };
65
+ },
66
+ async disconnect() {
67
+ account = null;
68
+ await disconnectFeature?.disconnect();
69
+ },
70
+ async signMessage(message) {
71
+ if (!account) throw new Error("connect a Solana wallet first");
72
+ const [signed] = await signFeature.signMessage({
73
+ account,
74
+ message
75
+ });
76
+ return {
77
+ signature: signed.signature
78
+ };
79
+ },
80
+ on(event, listener) {
81
+ if (!events) return;
82
+ const unsubscribe = events.on("change", ({
83
+ accounts
84
+ }) => {
85
+ if (!accounts) return;
86
+ account = pick(accounts);
87
+ if (event === "accountChanged" && account) listener(key(account));
88
+ if (event === "disconnect" && !account) listener(null);
89
+ });
90
+ unsubscribes.set(listener, unsubscribe);
91
+ },
92
+ off(_event, listener) {
93
+ unsubscribes.get(listener)?.();
94
+ unsubscribes.delete(listener);
95
+ }
96
+ };
97
+ }
30
98
  class SolanaAdapter {
31
99
  chain = "solana";
32
100
  address = null;
33
101
  networkId = "mainnet-beta";
34
102
  isConnected = false;
103
+ /** Drives the injected wallet unless given another provider, such as `standardSolanaProvider(wallet)`. */
104
+ provider;
105
+ constructor(provider = getInjectedProvider) {
106
+ this.provider = provider;
107
+ }
35
108
  async connect() {
36
- const provider = getInjectedProvider();
109
+ const provider = this.provider();
37
110
  const {
38
111
  publicKey
39
112
  } = await provider.connect();
@@ -46,7 +119,7 @@ class SolanaAdapter {
46
119
  * any other failure, and when no wallet is injected yet.
47
120
  */
48
121
  async restore() {
49
- const provider = getInjectedProvider();
122
+ const provider = this.provider();
50
123
  try {
51
124
  const {
52
125
  publicKey
@@ -67,7 +140,7 @@ class SolanaAdapter {
67
140
  * page must connect again; the adapter treats it as a disconnect.
68
141
  */
69
142
  subscribe(listener) {
70
- const provider = getInjectedProvider();
143
+ const provider = this.provider();
71
144
  const onAccount = publicKey => {
72
145
  this.address = publicKey ? publicKey.toString() : null;
73
146
  this.isConnected = this.address !== null;
@@ -88,7 +161,7 @@ class SolanaAdapter {
88
161
  }
89
162
  async disconnect() {
90
163
  try {
91
- await getInjectedProvider().disconnect();
164
+ await this.provider().disconnect();
92
165
  } catch {}
93
166
  this.address = null;
94
167
  this.isConnected = false;
@@ -103,12 +176,12 @@ class SolanaAdapter {
103
176
  }
104
177
  /** Sign the UTF-8 message bytes; returns the base58 ed25519 signature. */
105
178
  async signMessage(message) {
106
- const provider = getInjectedProvider();
179
+ const provider = this.provider();
107
180
  const {
108
181
  signature
109
182
  } = await provider.signMessage(new TextEncoder().encode(message), "utf8");
110
183
  return base58encode(signature);
111
184
  }
112
185
  }
113
- export { SolanaAdapter };
186
+ export { SolanaAdapter, isStandardSolanaWallet, standardSolanaProvider };
114
187
  //# sourceMappingURL=SolanaAdapter.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["buildWalletMessage","BASE58_ALPHABET","base58encode","bytes","digits","i","length","carry","j","push","str","getInjectedProvider","w","window","provider","phantom","solana","Error","SolanaAdapter","chain","address","networkId","isConnected","connect","publicKey","toString","restore","onlyIfTrusted","error","code","subscribe","listener","onAccount","onDisconnect","on","off","removeListener","bind","disconnect","buildMessage","opts","signMessage","message","signature","TextEncoder","encode"],"sources":["../../../../src/connectkit/adapters/SolanaAdapter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SolanaSignMessage","StandardConnect","buildWalletMessage","BASE58_ALPHABET","base58encode","bytes","digits","i","length","carry","j","push","str","getInjectedProvider","w","window","provider","phantom","solana","Error","isSolanaAccount","account","chains","some","chain","startsWith","isStandardSolanaWallet","wallet","features","standardSolanaProvider","connectFeature","signFeature","events","disconnectFeature","key","toString","account2","address","pick","accounts","find","unsubscribes","Map","publicKey","connect","options","onlyIfTrusted","silent","Object","assign","name","code","disconnect","signMessage","message","signed","signature","on","event","listener","unsubscribe","set","off","_event","get","delete","SolanaAdapter","networkId","isConnected","constructor","restore","error","subscribe","onAccount","onDisconnect","removeListener","bind","buildMessage","opts","TextEncoder","encode"],"sources":["../../../../src/connectkit/adapters/SolanaAdapter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -24,9 +24,12 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
24
24
  }), mod);
25
25
  var SolanaAdapter_exports = {};
26
26
  __export(SolanaAdapter_exports, {
27
- SolanaAdapter: () => SolanaAdapter
27
+ SolanaAdapter: () => SolanaAdapter,
28
+ isStandardSolanaWallet: () => isStandardSolanaWallet,
29
+ standardSolanaProvider: () => standardSolanaProvider
28
30
  });
29
31
  module.exports = __toCommonJS(SolanaAdapter_exports);
32
+ var import_walletStandard = require("../../clients/walletStandard.native.js");
30
33
  var import_message = require("../../message/index.native.js");
31
34
  function _class_call_check(instance, Constructor) {
32
35
  if (!(instance instanceof Constructor)) {
@@ -90,20 +93,105 @@ function getInjectedProvider() {
90
93
  }
91
94
  return provider;
92
95
  }
96
+ var isSolanaAccount = function isSolanaAccount2(account) {
97
+ return account.chains.some(function (chain) {
98
+ return chain.startsWith("solana:");
99
+ });
100
+ };
101
+ function isStandardSolanaWallet(wallet) {
102
+ return !!wallet.features[import_walletStandard.StandardConnect] && !!wallet.features[import_walletStandard.SolanaSignMessage] && wallet.chains.some(function (chain) {
103
+ return chain.startsWith("solana:");
104
+ });
105
+ }
106
+ function standardSolanaProvider(wallet) {
107
+ var connectFeature = wallet.features[import_walletStandard.StandardConnect];
108
+ var signFeature = wallet.features[import_walletStandard.SolanaSignMessage];
109
+ var events = wallet.features["standard:events"];
110
+ var disconnectFeature = wallet.features["standard:disconnect"];
111
+ var key = function key2(account2) {
112
+ return {
113
+ toString: function toString() {
114
+ return account2.address;
115
+ }
116
+ };
117
+ };
118
+ var pick = function pick2(accounts) {
119
+ var _accounts_find;
120
+ return (_accounts_find = accounts.find(isSolanaAccount)) !== null && _accounts_find !== void 0 ? _accounts_find : null;
121
+ };
122
+ var unsubscribes = /* @__PURE__ */new Map();
123
+ var account = null;
124
+ return {
125
+ get publicKey() {
126
+ return account ? key(account) : null;
127
+ },
128
+ async connect(options) {
129
+ var {
130
+ accounts
131
+ } = await connectFeature.connect((options === null || options === void 0 ? void 0 : options.onlyIfTrusted) ? {
132
+ silent: true
133
+ } : void 0);
134
+ account = pick(accounts);
135
+ if (!account) {
136
+ throw Object.assign(new Error(`${wallet.name} shared no Solana account.`), {
137
+ code: 4001
138
+ });
139
+ }
140
+ return {
141
+ publicKey: key(account)
142
+ };
143
+ },
144
+ async disconnect() {
145
+ account = null;
146
+ await (disconnectFeature === null || disconnectFeature === void 0 ? void 0 : disconnectFeature.disconnect());
147
+ },
148
+ async signMessage(message) {
149
+ if (!account) throw new Error("connect a Solana wallet first");
150
+ var [signed] = await signFeature.signMessage({
151
+ account,
152
+ message
153
+ });
154
+ return {
155
+ signature: signed.signature
156
+ };
157
+ },
158
+ on(event, listener) {
159
+ if (!events) return;
160
+ var unsubscribe = events.on("change", function (param) {
161
+ var {
162
+ accounts
163
+ } = param;
164
+ if (!accounts) return;
165
+ account = pick(accounts);
166
+ if (event === "accountChanged" && account) listener(key(account));
167
+ if (event === "disconnect" && !account) listener(null);
168
+ });
169
+ unsubscribes.set(listener, unsubscribe);
170
+ },
171
+ off(_event, listener) {
172
+ var _unsubscribes_get;
173
+ (_unsubscribes_get = unsubscribes.get(listener)) === null || _unsubscribes_get === void 0 ? void 0 : _unsubscribes_get();
174
+ unsubscribes.delete(listener);
175
+ }
176
+ };
177
+ }
93
178
  var SolanaAdapter = /* @__PURE__ */function () {
94
179
  "use strict";
95
180
 
96
181
  function SolanaAdapter2() {
182
+ var provider = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getInjectedProvider;
97
183
  _class_call_check(this, SolanaAdapter2);
98
184
  _define_property(this, "chain", "solana");
99
185
  _define_property(this, "address", null);
100
186
  _define_property(this, "networkId", "mainnet-beta");
101
187
  _define_property(this, "isConnected", false);
188
+ _define_property(this, "provider", void 0);
189
+ this.provider = provider;
102
190
  }
103
191
  _create_class(SolanaAdapter2, [{
104
192
  key: "connect",
105
193
  value: async function connect() {
106
- var provider = getInjectedProvider();
194
+ var provider = this.provider();
107
195
  var {
108
196
  publicKey
109
197
  } = await provider.connect();
@@ -119,7 +207,7 @@ var SolanaAdapter = /* @__PURE__ */function () {
119
207
  * any other failure, and when no wallet is injected yet.
120
208
  */
121
209
  async function restore() {
122
- var provider = getInjectedProvider();
210
+ var provider = this.provider();
123
211
  try {
124
212
  var {
125
213
  publicKey
@@ -144,7 +232,7 @@ var SolanaAdapter = /* @__PURE__ */function () {
144
232
  value: function subscribe(listener) {
145
233
  var _this = this;
146
234
  var _provider_on, _provider_on1;
147
- var provider = getInjectedProvider();
235
+ var provider = this.provider();
148
236
  var onAccount = function onAccount2(publicKey) {
149
237
  _this.address = publicKey ? publicKey.toString() : null;
150
238
  _this.isConnected = _this.address !== null;
@@ -169,7 +257,7 @@ var SolanaAdapter = /* @__PURE__ */function () {
169
257
  key: "disconnect",
170
258
  value: async function disconnect() {
171
259
  try {
172
- await getInjectedProvider().disconnect();
260
+ await this.provider().disconnect();
173
261
  } catch (unused) {}
174
262
  this.address = null;
175
263
  this.isConnected = false;
@@ -188,7 +276,7 @@ var SolanaAdapter = /* @__PURE__ */function () {
188
276
  key: "signMessage",
189
277
  value: (/** Sign the UTF-8 message bytes; returns the base58 ed25519 signature. */
190
278
  async function signMessage(message) {
191
- var provider = getInjectedProvider();
279
+ var provider = this.provider();
192
280
  var {
193
281
  signature
194
282
  } = await provider.signMessage(new TextEncoder().encode(message), "utf8");