@txnlab/use-wallet-w3wallet 5.0.0-rc.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.
- package/LICENSE +21 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +141 -0
- package/dist/index.js.map +1 -0
- package/package.json +46 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 TxnLab, Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import algosdk from "algosdk";
|
|
2
|
+
import { AdapterConstructorParams, BaseWallet, WalletAccount, WalletMetadata, WalletTransaction } from "@txnlab/use-wallet/adapter";
|
|
3
|
+
import { WalletAdapterConfig } from "@txnlab/use-wallet";
|
|
4
|
+
|
|
5
|
+
//#region src/adapter.d.ts
|
|
6
|
+
interface W3WalletProvider {
|
|
7
|
+
isConnected: () => Promise<boolean>;
|
|
8
|
+
account: () => Promise<WalletAccount>;
|
|
9
|
+
signTxns: (transactions: WalletTransaction[]) => Promise<(string | null)[]>;
|
|
10
|
+
}
|
|
11
|
+
declare class W3WalletAdapter extends BaseWallet {
|
|
12
|
+
private client;
|
|
13
|
+
constructor(params: AdapterConstructorParams);
|
|
14
|
+
static defaultMetadata: WalletMetadata;
|
|
15
|
+
private initializeClient;
|
|
16
|
+
connect: () => Promise<WalletAccount[]>;
|
|
17
|
+
disconnect: () => Promise<void>;
|
|
18
|
+
resumeSession: () => Promise<void>;
|
|
19
|
+
private processTxns;
|
|
20
|
+
private processEncodedTxns;
|
|
21
|
+
signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region src/index.d.ts
|
|
25
|
+
declare const WALLET_ID: "w3wallet";
|
|
26
|
+
declare function w3wallet(): WalletAdapterConfig;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { W3WalletAdapter, type W3WalletProvider, WALLET_ID, w3wallet };
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import algosdk from "algosdk";
|
|
2
|
+
import { BaseWallet, base64ToByteArray, byteArrayToBase64, flattenTxnGroup, isSignedTxn, isTransactionArray } from "@txnlab/use-wallet/adapter";
|
|
3
|
+
//#endregion
|
|
4
|
+
//#region src/adapter.ts
|
|
5
|
+
const ICON = `data:image/svg+xml;base64,${btoa(`
|
|
6
|
+
<svg width="860" height="860" viewBox="0 0 860 860" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
7
|
+
<rect width="860" height="860" rx="30" fill="#151923"/>
|
|
8
|
+
<path d="M766 207L496.627 623.406C463.521 675.336 382.014 652.248 382.014 590.941V432.568L260.638 623.28C227.559 675.255 146 652.186 146 590.854V274.844H234.646V499.761L356.022 309.049C389.101 257.074 470.66 280.143 470.66 341.475V499.978L660.146 207L766 207Z" fill="#4BB7D1"/>
|
|
9
|
+
</svg>
|
|
10
|
+
`)}`;
|
|
11
|
+
var W3WalletAdapter = class extends BaseWallet {
|
|
12
|
+
client = null;
|
|
13
|
+
constructor(params) {
|
|
14
|
+
super(params);
|
|
15
|
+
}
|
|
16
|
+
static defaultMetadata = {
|
|
17
|
+
name: "W3 Wallet",
|
|
18
|
+
icon: ICON
|
|
19
|
+
};
|
|
20
|
+
async initializeClient() {
|
|
21
|
+
this.logger.info("Initializing client...");
|
|
22
|
+
if (typeof window === "undefined" || window.w3walletAlgorand === void 0) {
|
|
23
|
+
this.logger.error("W3 Wallet is not available.");
|
|
24
|
+
throw new Error("W3 Wallet is not available.");
|
|
25
|
+
}
|
|
26
|
+
const client = window.w3walletAlgorand;
|
|
27
|
+
this.client = client;
|
|
28
|
+
this.logger.info("Client initialized");
|
|
29
|
+
return client;
|
|
30
|
+
}
|
|
31
|
+
connect = async () => {
|
|
32
|
+
this.logger.info("Connecting...");
|
|
33
|
+
const activeAccount = await (this.client || await this.initializeClient()).account();
|
|
34
|
+
const walletState = {
|
|
35
|
+
accounts: [activeAccount],
|
|
36
|
+
activeAccount
|
|
37
|
+
};
|
|
38
|
+
this.store.addWallet(walletState);
|
|
39
|
+
this.logger.info("Connected successfully", walletState);
|
|
40
|
+
return [activeAccount];
|
|
41
|
+
};
|
|
42
|
+
disconnect = async () => {
|
|
43
|
+
this.logger.info("Disconnecting...");
|
|
44
|
+
this.onDisconnect();
|
|
45
|
+
this.logger.info("Disconnected");
|
|
46
|
+
};
|
|
47
|
+
resumeSession = async () => {
|
|
48
|
+
try {
|
|
49
|
+
if (!this.store.getWalletState()) {
|
|
50
|
+
this.logger.info("No session to resume");
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.logger.info("Resuming session...");
|
|
54
|
+
if (!await (await this.initializeClient()).isConnected()) {
|
|
55
|
+
this.logger.error("W3 Wallet is not connected.");
|
|
56
|
+
throw new Error("W3 Wallet is not connected.");
|
|
57
|
+
}
|
|
58
|
+
this.logger.info("Session resumed");
|
|
59
|
+
} catch (error) {
|
|
60
|
+
this.logger.error("Error resuming session:", error.message);
|
|
61
|
+
this.onDisconnect();
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
processTxns(txnGroup, indexesToSign) {
|
|
66
|
+
const txnsToSign = [];
|
|
67
|
+
txnGroup.forEach((txn, index) => {
|
|
68
|
+
const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
|
|
69
|
+
const signer = txn.sender.toString();
|
|
70
|
+
const canSignTxn = this.addresses.includes(signer);
|
|
71
|
+
const txnString = byteArrayToBase64(txn.toByte());
|
|
72
|
+
if (isIndexMatch && canSignTxn) txnsToSign.push({ txn: txnString });
|
|
73
|
+
else txnsToSign.push({
|
|
74
|
+
txn: txnString,
|
|
75
|
+
signers: []
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
return txnsToSign;
|
|
79
|
+
}
|
|
80
|
+
processEncodedTxns(txnGroup, indexesToSign) {
|
|
81
|
+
const txnsToSign = [];
|
|
82
|
+
txnGroup.forEach((txnBuffer, index) => {
|
|
83
|
+
const isSigned = isSignedTxn(algosdk.msgpackRawDecode(txnBuffer));
|
|
84
|
+
const txn = isSigned ? algosdk.decodeSignedTransaction(txnBuffer).txn : algosdk.decodeUnsignedTransaction(txnBuffer);
|
|
85
|
+
const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
|
|
86
|
+
const signer = txn.sender.toString();
|
|
87
|
+
const canSignTxn = !isSigned && this.addresses.includes(signer);
|
|
88
|
+
const txnString = byteArrayToBase64(txn.toByte());
|
|
89
|
+
if (isIndexMatch && canSignTxn) txnsToSign.push({ txn: txnString });
|
|
90
|
+
else txnsToSign.push({
|
|
91
|
+
txn: txnString,
|
|
92
|
+
signers: []
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
return txnsToSign;
|
|
96
|
+
}
|
|
97
|
+
signTransactions = async (txnGroup, indexesToSign) => {
|
|
98
|
+
try {
|
|
99
|
+
this.logger.debug("Signing transactions...", {
|
|
100
|
+
txnGroup,
|
|
101
|
+
indexesToSign
|
|
102
|
+
});
|
|
103
|
+
let txnsToSign = [];
|
|
104
|
+
if (isTransactionArray(txnGroup)) {
|
|
105
|
+
const flatTxns = flattenTxnGroup(txnGroup);
|
|
106
|
+
txnsToSign = this.processTxns(flatTxns, indexesToSign);
|
|
107
|
+
} else {
|
|
108
|
+
const flatTxns = flattenTxnGroup(txnGroup);
|
|
109
|
+
txnsToSign = this.processEncodedTxns(flatTxns, indexesToSign);
|
|
110
|
+
}
|
|
111
|
+
const client = this.client || await this.initializeClient();
|
|
112
|
+
this.logger.debug("Sending processed transactions to wallet...", txnsToSign);
|
|
113
|
+
const signTxnsResult = await client.signTxns(txnsToSign);
|
|
114
|
+
this.logger.debug("Received signed transactions from wallet", signTxnsResult);
|
|
115
|
+
const result = signTxnsResult.map((value) => {
|
|
116
|
+
if (value === null) return null;
|
|
117
|
+
return base64ToByteArray(value);
|
|
118
|
+
});
|
|
119
|
+
this.logger.debug("Transactions signed successfully", result);
|
|
120
|
+
return result;
|
|
121
|
+
} catch (error) {
|
|
122
|
+
this.logger.error("Error signing transactions:", error.message);
|
|
123
|
+
throw error;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
//#endregion
|
|
128
|
+
//#region src/index.ts
|
|
129
|
+
const WALLET_ID = "w3wallet";
|
|
130
|
+
function w3wallet() {
|
|
131
|
+
return {
|
|
132
|
+
id: WALLET_ID,
|
|
133
|
+
metadata: W3WalletAdapter.defaultMetadata,
|
|
134
|
+
Adapter: W3WalletAdapter,
|
|
135
|
+
capabilities: { supportedNetworks: ["mainnet"] }
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
//#endregion
|
|
139
|
+
export { W3WalletAdapter, WALLET_ID, w3wallet };
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/icon.ts","../src/adapter.ts","../src/index.ts"],"sourcesContent":["export const icon = `\n<svg width=\"860\" height=\"860\" viewBox=\"0 0 860 860\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"860\" height=\"860\" rx=\"30\" fill=\"#151923\"/>\n <path d=\"M766 207L496.627 623.406C463.521 675.336 382.014 652.248 382.014 590.941V432.568L260.638 623.28C227.559 675.255 146 652.186 146 590.854V274.844H234.646V499.761L356.022 309.049C389.101 257.074 470.66 280.143 470.66 341.475V499.978L660.146 207L766 207Z\" fill=\"#4BB7D1\"/>\n</svg>\n`\n","import algosdk from 'algosdk'\nimport {\n BaseWallet,\n base64ToByteArray,\n byteArrayToBase64,\n flattenTxnGroup,\n isSignedTxn,\n isTransactionArray,\n type AdapterConstructorParams,\n type WalletAccount,\n type WalletMetadata,\n type WalletState,\n type WalletTransaction\n} from '@txnlab/use-wallet/adapter'\n\nexport interface W3WalletProvider {\n isConnected: () => Promise<boolean>\n account: () => Promise<WalletAccount>\n signTxns: (transactions: WalletTransaction[]) => Promise<(string | null)[]>\n}\n\ntype WindowExtended = { w3walletAlgorand: W3WalletProvider } & Window & typeof globalThis\n\nimport { icon } from './icon'\n\nconst ICON = `data:image/svg+xml;base64,${btoa(icon)}`\n\nexport class W3WalletAdapter extends BaseWallet {\n private client: W3WalletProvider | null = null\n\n constructor(params: AdapterConstructorParams) {\n super(params)\n }\n\n static defaultMetadata: WalletMetadata = {\n name: 'W3 Wallet',\n icon: ICON\n }\n\n private async initializeClient(): Promise<W3WalletProvider> {\n this.logger.info('Initializing client...')\n if (\n typeof window === 'undefined' ||\n (window as WindowExtended).w3walletAlgorand === undefined\n ) {\n this.logger.error('W3 Wallet is not available.')\n throw new Error('W3 Wallet is not available.')\n }\n const client = (window as WindowExtended).w3walletAlgorand\n this.client = client\n this.logger.info('Client initialized')\n return client\n }\n\n public connect = async (): Promise<WalletAccount[]> => {\n this.logger.info('Connecting...')\n const client = this.client || (await this.initializeClient())\n\n const activeAccount = await client.account()\n\n const walletState: WalletState = {\n accounts: [activeAccount],\n activeAccount\n }\n\n this.store.addWallet(walletState)\n\n this.logger.info('Connected successfully', walletState)\n return [activeAccount]\n }\n\n public disconnect = async (): Promise<void> => {\n this.logger.info('Disconnecting...')\n this.onDisconnect()\n this.logger.info('Disconnected')\n }\n\n public resumeSession = async (): Promise<void> => {\n try {\n const walletState = this.store.getWalletState()\n\n // No session to resume\n if (!walletState) {\n this.logger.info('No session to resume')\n return\n }\n\n this.logger.info('Resuming session...')\n const client = await this.initializeClient()\n const isConnected = await client.isConnected()\n\n if (!isConnected) {\n this.logger.error('W3 Wallet is not connected.')\n throw new Error('W3 Wallet is not connected.')\n }\n this.logger.info('Session resumed')\n } catch (error: any) {\n this.logger.error('Error resuming session:', error.message)\n this.onDisconnect()\n throw error\n }\n }\n\n private processTxns(\n txnGroup: algosdk.Transaction[],\n indexesToSign?: number[]\n ): WalletTransaction[] {\n const txnsToSign: WalletTransaction[] = []\n\n txnGroup.forEach((txn, index) => {\n const isIndexMatch = !indexesToSign || indexesToSign.includes(index)\n const signer = txn.sender.toString()\n const canSignTxn = this.addresses.includes(signer)\n\n const txnString = byteArrayToBase64(txn.toByte())\n\n if (isIndexMatch && canSignTxn) {\n txnsToSign.push({ txn: txnString })\n } else {\n txnsToSign.push({ txn: txnString, signers: [] })\n }\n })\n\n return txnsToSign\n }\n\n private processEncodedTxns(\n txnGroup: Uint8Array[],\n indexesToSign?: number[]\n ): WalletTransaction[] {\n const txnsToSign: WalletTransaction[] = []\n\n txnGroup.forEach((txnBuffer, index) => {\n const decodedObj = algosdk.msgpackRawDecode(txnBuffer)\n const isSigned = isSignedTxn(decodedObj)\n\n const txn: algosdk.Transaction = isSigned\n ? algosdk.decodeSignedTransaction(txnBuffer).txn\n : algosdk.decodeUnsignedTransaction(txnBuffer)\n\n const isIndexMatch = !indexesToSign || indexesToSign.includes(index)\n const signer = txn.sender.toString()\n const canSignTxn = !isSigned && this.addresses.includes(signer)\n\n const txnString = byteArrayToBase64(txn.toByte())\n\n if (isIndexMatch && canSignTxn) {\n txnsToSign.push({ txn: txnString })\n } else {\n txnsToSign.push({ txn: txnString, signers: [] })\n }\n })\n\n return txnsToSign\n }\n\n public signTransactions = async <T extends algosdk.Transaction[] | Uint8Array[]>(\n txnGroup: T | T[],\n indexesToSign?: number[]\n ): Promise<(Uint8Array | null)[]> => {\n try {\n this.logger.debug('Signing transactions...', { txnGroup, indexesToSign })\n let txnsToSign: WalletTransaction[] = []\n\n // Determine type and process transactions for signing\n if (isTransactionArray(txnGroup)) {\n const flatTxns: algosdk.Transaction[] = flattenTxnGroup(txnGroup)\n txnsToSign = this.processTxns(flatTxns, indexesToSign)\n } else {\n const flatTxns: Uint8Array[] = flattenTxnGroup(txnGroup as Uint8Array[])\n txnsToSign = this.processEncodedTxns(flatTxns, indexesToSign)\n }\n\n const client = this.client || (await this.initializeClient())\n\n this.logger.debug('Sending processed transactions to wallet...', txnsToSign)\n\n // Sign transactions\n const signTxnsResult = await client.signTxns(txnsToSign)\n this.logger.debug('Received signed transactions from wallet', signTxnsResult)\n\n // Convert base64 to Uint8Array\n const result = signTxnsResult.map((value) => {\n if (value === null) {\n return null\n }\n return base64ToByteArray(value)\n })\n\n this.logger.debug('Transactions signed successfully', result)\n return result\n } catch (error: any) {\n this.logger.error('Error signing transactions:', error.message)\n throw error\n }\n }\n}\n","import { W3WalletAdapter } from './adapter'\nimport type { WalletAdapterConfig } from '@txnlab/use-wallet'\n\nexport const WALLET_ID = 'w3wallet' as const\n\nexport function w3wallet(): WalletAdapterConfig {\n return {\n id: WALLET_ID,\n metadata: W3WalletAdapter.defaultMetadata,\n Adapter: W3WalletAdapter as unknown as WalletAdapterConfig['Adapter'],\n capabilities: { supportedNetworks: ['mainnet'] }\n }\n}\n\nexport { W3WalletAdapter }\nexport type { W3WalletProvider } from './adapter'\n"],"mappings":";;;;ACyBA,MAAM,OAAO,6BAA6B,KDzBtB;;;;;ECyBgC;AAEpD,IAAa,kBAAb,cAAqC,WAAW;CAC9C,SAA0C;CAE1C,YAAY,QAAkC;AAC5C,QAAM,OAAO;;CAGf,OAAO,kBAAkC;EACvC,MAAM;EACN,MAAM;EACP;CAED,MAAc,mBAA8C;AAC1D,OAAK,OAAO,KAAK,yBAAyB;AAC1C,MACE,OAAO,WAAW,eACjB,OAA0B,qBAAqB,KAAA,GAChD;AACA,QAAK,OAAO,MAAM,8BAA8B;AAChD,SAAM,IAAI,MAAM,8BAA8B;;EAEhD,MAAM,SAAU,OAA0B;AAC1C,OAAK,SAAS;AACd,OAAK,OAAO,KAAK,qBAAqB;AACtC,SAAO;;CAGT,UAAiB,YAAsC;AACrD,OAAK,OAAO,KAAK,gBAAgB;EAGjC,MAAM,gBAAgB,OAFP,KAAK,UAAW,MAAM,KAAK,kBAAkB,EAEzB,SAAS;EAE5C,MAAM,cAA2B;GAC/B,UAAU,CAAC,cAAc;GACzB;GACD;AAED,OAAK,MAAM,UAAU,YAAY;AAEjC,OAAK,OAAO,KAAK,0BAA0B,YAAY;AACvD,SAAO,CAAC,cAAc;;CAGxB,aAAoB,YAA2B;AAC7C,OAAK,OAAO,KAAK,mBAAmB;AACpC,OAAK,cAAc;AACnB,OAAK,OAAO,KAAK,eAAe;;CAGlC,gBAAuB,YAA2B;AAChD,MAAI;AAIF,OAAI,CAHgB,KAAK,MAAM,gBAAgB,EAG7B;AAChB,SAAK,OAAO,KAAK,uBAAuB;AACxC;;AAGF,QAAK,OAAO,KAAK,sBAAsB;AAIvC,OAAI,CAFgB,OADL,MAAM,KAAK,kBAAkB,EACX,aAAa,EAE5B;AAChB,SAAK,OAAO,MAAM,8BAA8B;AAChD,UAAM,IAAI,MAAM,8BAA8B;;AAEhD,QAAK,OAAO,KAAK,kBAAkB;WAC5B,OAAY;AACnB,QAAK,OAAO,MAAM,2BAA2B,MAAM,QAAQ;AAC3D,QAAK,cAAc;AACnB,SAAM;;;CAIV,YACE,UACA,eACqB;EACrB,MAAM,aAAkC,EAAE;AAE1C,WAAS,SAAS,KAAK,UAAU;GAC/B,MAAM,eAAe,CAAC,iBAAiB,cAAc,SAAS,MAAM;GACpE,MAAM,SAAS,IAAI,OAAO,UAAU;GACpC,MAAM,aAAa,KAAK,UAAU,SAAS,OAAO;GAElD,MAAM,YAAY,kBAAkB,IAAI,QAAQ,CAAC;AAEjD,OAAI,gBAAgB,WAClB,YAAW,KAAK,EAAE,KAAK,WAAW,CAAC;OAEnC,YAAW,KAAK;IAAE,KAAK;IAAW,SAAS,EAAE;IAAE,CAAC;IAElD;AAEF,SAAO;;CAGT,mBACE,UACA,eACqB;EACrB,MAAM,aAAkC,EAAE;AAE1C,WAAS,SAAS,WAAW,UAAU;GAErC,MAAM,WAAW,YADE,QAAQ,iBAAiB,UAAU,CACd;GAExC,MAAM,MAA2B,WAC7B,QAAQ,wBAAwB,UAAU,CAAC,MAC3C,QAAQ,0BAA0B,UAAU;GAEhD,MAAM,eAAe,CAAC,iBAAiB,cAAc,SAAS,MAAM;GACpE,MAAM,SAAS,IAAI,OAAO,UAAU;GACpC,MAAM,aAAa,CAAC,YAAY,KAAK,UAAU,SAAS,OAAO;GAE/D,MAAM,YAAY,kBAAkB,IAAI,QAAQ,CAAC;AAEjD,OAAI,gBAAgB,WAClB,YAAW,KAAK,EAAE,KAAK,WAAW,CAAC;OAEnC,YAAW,KAAK;IAAE,KAAK;IAAW,SAAS,EAAE;IAAE,CAAC;IAElD;AAEF,SAAO;;CAGT,mBAA0B,OACxB,UACA,kBACmC;AACnC,MAAI;AACF,QAAK,OAAO,MAAM,2BAA2B;IAAE;IAAU;IAAe,CAAC;GACzE,IAAI,aAAkC,EAAE;AAGxC,OAAI,mBAAmB,SAAS,EAAE;IAChC,MAAM,WAAkC,gBAAgB,SAAS;AACjE,iBAAa,KAAK,YAAY,UAAU,cAAc;UACjD;IACL,MAAM,WAAyB,gBAAgB,SAAyB;AACxE,iBAAa,KAAK,mBAAmB,UAAU,cAAc;;GAG/D,MAAM,SAAS,KAAK,UAAW,MAAM,KAAK,kBAAkB;AAE5D,QAAK,OAAO,MAAM,+CAA+C,WAAW;GAG5E,MAAM,iBAAiB,MAAM,OAAO,SAAS,WAAW;AACxD,QAAK,OAAO,MAAM,4CAA4C,eAAe;GAG7E,MAAM,SAAS,eAAe,KAAK,UAAU;AAC3C,QAAI,UAAU,KACZ,QAAO;AAET,WAAO,kBAAkB,MAAM;KAC/B;AAEF,QAAK,OAAO,MAAM,oCAAoC,OAAO;AAC7D,UAAO;WACA,OAAY;AACnB,QAAK,OAAO,MAAM,+BAA+B,MAAM,QAAQ;AAC/D,SAAM;;;;;;AC9LZ,MAAa,YAAY;AAEzB,SAAgB,WAAgC;AAC9C,QAAO;EACL,IAAI;EACJ,UAAU,gBAAgB;EAC1B,SAAS;EACT,cAAc,EAAE,mBAAmB,CAAC,UAAU,EAAE;EACjD"}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@txnlab/use-wallet-w3wallet",
|
|
3
|
+
"version": "5.0.0-rc.1",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public",
|
|
6
|
+
"provenance": true
|
|
7
|
+
},
|
|
8
|
+
"description": "W3 Wallet adapter for @txnlab/use-wallet",
|
|
9
|
+
"author": "Doug Richar <drichar@gmail.com>",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/txnlab/use-wallet.git",
|
|
14
|
+
"directory": "packages/wallets/w3wallet"
|
|
15
|
+
},
|
|
16
|
+
"type": "module",
|
|
17
|
+
"main": "./dist/index.js",
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"default": "./dist/index.js"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"@txnlab/use-wallet": "^5.0.0",
|
|
30
|
+
"algosdk": "^3.0.0"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@txnlab/use-wallet": "5.0.0-rc.1",
|
|
34
|
+
"algosdk": "3.5.2",
|
|
35
|
+
"tsdown": "0.21.0",
|
|
36
|
+
"typescript": "5.9.3"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "tsdown",
|
|
40
|
+
"start": "tsdown --watch",
|
|
41
|
+
"test": "vitest run",
|
|
42
|
+
"test:watch": "vitest --watch",
|
|
43
|
+
"lint": "eslint \"src/**/*.{js,ts}\"",
|
|
44
|
+
"typecheck": "tsc --noEmit"
|
|
45
|
+
}
|
|
46
|
+
}
|