@txnlab/use-wallet 0.1.21 → 0.1.22
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/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +1281 -41
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/providers/index.d.ts +7 -7
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +1258 -15
- package/dist/esm/providers/index.d.ts +7 -7
- package/dist/index.d.ts +63 -1
- package/package.json +8 -8
- package/dist/cjs/base-9794b627.js +0 -174
- package/dist/cjs/base-9794b627.js.map +0 -1
- package/dist/cjs/clients/algosigner.js +0 -144
- package/dist/cjs/clients/algosigner.js.map +0 -1
- package/dist/cjs/clients/defly.js +0 -159
- package/dist/cjs/clients/defly.js.map +0 -1
- package/dist/cjs/clients/exodus.js +0 -118
- package/dist/cjs/clients/exodus.js.map +0 -1
- package/dist/cjs/clients/kmd.js +0 -140
- package/dist/cjs/clients/kmd.js.map +0 -1
- package/dist/cjs/clients/myalgowallet.js +0 -128
- package/dist/cjs/clients/myalgowallet.js.map +0 -1
- package/dist/cjs/clients/perawallet.js +0 -169
- package/dist/cjs/clients/perawallet.js.map +0 -1
- package/dist/cjs/clients/walletconnect.js +0 -199
- package/dist/cjs/clients/walletconnect.js.map +0 -1
- package/dist/cjs/constants-e76d1f05.js +0 -63
- package/dist/cjs/constants-e76d1f05.js.map +0 -1
- package/dist/cjs/constants.js +0 -22
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/providers.js +0 -81
- package/dist/cjs/providers.js.map +0 -1
- package/dist/cjs/utils.js +0 -74
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/base-71089716.js +0 -152
- package/dist/esm/base-71089716.js.map +0 -1
- package/dist/esm/clients/algosigner.js +0 -142
- package/dist/esm/clients/algosigner.js.map +0 -1
- package/dist/esm/clients/defly.js +0 -139
- package/dist/esm/clients/defly.js.map +0 -1
- package/dist/esm/clients/exodus.js +0 -116
- package/dist/esm/clients/exodus.js.map +0 -1
- package/dist/esm/clients/kmd.js +0 -138
- package/dist/esm/clients/kmd.js.map +0 -1
- package/dist/esm/clients/myalgowallet.js +0 -108
- package/dist/esm/clients/myalgowallet.js.map +0 -1
- package/dist/esm/clients/perawallet.js +0 -149
- package/dist/esm/clients/perawallet.js.map +0 -1
- package/dist/esm/clients/walletconnect.js +0 -179
- package/dist/esm/clients/walletconnect.js.map +0 -1
- package/dist/esm/constants-49b44514.js +0 -53
- package/dist/esm/constants-49b44514.js.map +0 -1
- package/dist/esm/constants.js +0 -2
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/providers.js +0 -77
- package/dist/esm/providers.js.map +0 -1
- package/dist/esm/utils.js +0 -70
- package/dist/esm/utils.js.map +0 -1
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { B as BaseWallet, A as Algod } from '../base-71089716.js';
|
|
2
|
-
import { P as PROVIDER_ID } from '../constants-49b44514.js';
|
|
3
|
-
import { providers } from '../providers.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Helpful resources:
|
|
7
|
-
* https://github.com/randlabs/myalgo-connect
|
|
8
|
-
*/
|
|
9
|
-
class MyAlgoWalletClient extends BaseWallet {
|
|
10
|
-
#client;
|
|
11
|
-
id;
|
|
12
|
-
provider;
|
|
13
|
-
constructor({ client, id, provider, algosdk, algodClient }) {
|
|
14
|
-
super(algosdk, algodClient);
|
|
15
|
-
this.#client = client;
|
|
16
|
-
this.id = id;
|
|
17
|
-
this.provider = provider;
|
|
18
|
-
}
|
|
19
|
-
static async init() {
|
|
20
|
-
const { algosdk, algodClient } = await Algod.init();
|
|
21
|
-
const MyAlgoConnect = (await import('@randlabs/myalgo-connect')).default;
|
|
22
|
-
const myAlgo = new MyAlgoConnect({ disableLedgerNano: false });
|
|
23
|
-
return new MyAlgoWalletClient({
|
|
24
|
-
id: PROVIDER_ID.MYALGO_WALLET,
|
|
25
|
-
client: myAlgo,
|
|
26
|
-
provider: providers[PROVIDER_ID.MYALGO_WALLET],
|
|
27
|
-
algosdk: algosdk,
|
|
28
|
-
algodClient: algodClient,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
async connect() {
|
|
32
|
-
const accounts = await this.#client.connect();
|
|
33
|
-
if (accounts.length === 0) {
|
|
34
|
-
throw new Error(`No accounts found for ${this.provider}`);
|
|
35
|
-
}
|
|
36
|
-
const mappedAccounts = accounts.map((account) => ({
|
|
37
|
-
...account,
|
|
38
|
-
providerId: this.provider.id,
|
|
39
|
-
}));
|
|
40
|
-
return {
|
|
41
|
-
...this.provider,
|
|
42
|
-
accounts: mappedAccounts,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
async reconnect() {
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
async disconnect() {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
async signTransactions(activeAdress, transactions) {
|
|
52
|
-
// Decode the transactions to access their properties.
|
|
53
|
-
const decodedTxns = transactions.map((txn) => {
|
|
54
|
-
return this.algosdk.decodeObj(txn);
|
|
55
|
-
});
|
|
56
|
-
// Get the unsigned transactions.
|
|
57
|
-
const txnsToSign = decodedTxns.reduce((acc, txn, i) => {
|
|
58
|
-
// If the transaction isn't already signed and is to be sent from a connected account,
|
|
59
|
-
// add it to the arrays of transactions to be signed.
|
|
60
|
-
if (!("txn" in txn) &&
|
|
61
|
-
this.algosdk.encodeAddress(txn["snd"]) === activeAdress) {
|
|
62
|
-
acc.push(transactions[i]);
|
|
63
|
-
}
|
|
64
|
-
return acc;
|
|
65
|
-
}, []);
|
|
66
|
-
// Sign them with the client.
|
|
67
|
-
const result = await this.#client.signTransaction(txnsToSign);
|
|
68
|
-
// Join the newly signed transactions with the original group of transactions.
|
|
69
|
-
const signedTxns = decodedTxns.reduce((acc, txn, i) => {
|
|
70
|
-
if (!("txn" in txn)) {
|
|
71
|
-
const signedByUser = result.shift()?.blob;
|
|
72
|
-
signedByUser && acc.push(signedByUser);
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
acc.push(transactions[i]);
|
|
76
|
-
}
|
|
77
|
-
return acc;
|
|
78
|
-
}, []);
|
|
79
|
-
return signedTxns;
|
|
80
|
-
}
|
|
81
|
-
async signEncodedTransactions(transactions) {
|
|
82
|
-
const transactionsToSign = [];
|
|
83
|
-
const signedRawTransactions = [];
|
|
84
|
-
for (const [type, txn] of transactions) {
|
|
85
|
-
if (type === "u") {
|
|
86
|
-
transactionsToSign.push(txn);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
const result = await this.#client.signTransaction(transactionsToSign);
|
|
90
|
-
if (!result) {
|
|
91
|
-
throw new Error("Signing failed.");
|
|
92
|
-
}
|
|
93
|
-
let resultIndex = 0;
|
|
94
|
-
for (const [type, txn] of transactions) {
|
|
95
|
-
if (type === "u") {
|
|
96
|
-
signedRawTransactions.push(result[resultIndex].blob);
|
|
97
|
-
resultIndex++;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
signedRawTransactions.push(new Uint8Array(Buffer.from(txn, "base64")));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return signedRawTransactions;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export { MyAlgoWalletClient as default };
|
|
108
|
-
//# sourceMappingURL=myalgowallet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"myalgowallet.js","sources":["../../../src/clients/myalgowallet.ts"],"sourcesContent":["/**\n * Helpful resources:\n * https://github.com/randlabs/myalgo-connect\n */\nimport BaseWallet from \"./base\";\nimport type MyAlgoConnect from \"@randlabs/myalgo-connect\";\nimport type _algosdk from \"algosdk\";\nimport Algod from \"../algod\";\nimport { PROVIDER_ID } from \"../constants\";\nimport { providers } from \"../providers\";\nimport type { WalletProvider } from \"../types\";\nimport { TransactionsArray } from \"../types\";\nimport { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\ntype InitWallet = {\n id: PROVIDER_ID;\n client: MyAlgoConnect;\n provider: WalletProvider;\n algosdk: typeof _algosdk;\n algodClient: _algosdk.Algodv2;\n};\n\nclass MyAlgoWalletClient extends BaseWallet {\n #client: MyAlgoConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor({ client, id, provider, algosdk, algodClient }: InitWallet) {\n super(algosdk, algodClient);\n\n this.#client = client;\n this.id = id;\n this.provider = provider;\n }\n\n static async init() {\n const { algosdk, algodClient } = await Algod.init();\n const MyAlgoConnect = (await import(\"@randlabs/myalgo-connect\")).default;\n const myAlgo = new MyAlgoConnect({ disableLedgerNano: false });\n\n return new MyAlgoWalletClient({\n id: PROVIDER_ID.MYALGO_WALLET,\n client: myAlgo,\n provider: providers[PROVIDER_ID.MYALGO_WALLET],\n algosdk: algosdk,\n algodClient: algodClient,\n });\n }\n\n async connect() {\n const accounts = await this.#client.connect();\n\n if (accounts.length === 0) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const mappedAccounts = accounts.map((account) => ({\n ...account,\n providerId: this.provider.id,\n }));\n\n return {\n ...this.provider,\n accounts: mappedAccounts,\n };\n }\n\n async reconnect() {\n return null;\n }\n\n async disconnect() {\n return;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Get the unsigned transactions.\n const txnsToSign = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n // If the transaction isn't already signed and is to be sent from a connected account,\n // add it to the arrays of transactions to be signed.\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n // Sign them with the client.\n const result = await this.#client.signTransaction(txnsToSign);\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n if (!(\"txn\" in txn)) {\n const signedByUser = result.shift()?.blob;\n signedByUser && acc.push(signedByUser);\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign: string[] = [];\n const signedRawTransactions: Uint8Array[] = [];\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n transactionsToSign.push(txn);\n }\n }\n\n const result = await this.#client.signTransaction(transactionsToSign);\n\n if (!result) {\n throw new Error(\"Signing failed.\");\n }\n\n let resultIndex = 0;\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n signedRawTransactions.push(result[resultIndex].blob);\n resultIndex++;\n } else {\n signedRawTransactions.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n }\n\n return signedRawTransactions;\n }\n}\n\nexport default MyAlgoWalletClient;\n"],"names":[],"mappings":";;;;AAAA;;;AAGG;AAmBH,MAAM,kBAAmB,SAAQ,UAAU,CAAA;AACzC,IAAA,OAAO,CAAgB;AACvB,IAAA,EAAE,CAAc;AAChB,IAAA,QAAQ,CAAiB;IAEzB,WAAY,CAAA,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAc,EAAA;AACpE,QAAA,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAE5B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AACtB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;IAED,aAAa,IAAI,GAAA;QACf,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,CAAC,MAAM,OAAO,0BAA0B,CAAC,EAAE,OAAO,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;QAE/D,OAAO,IAAI,kBAAkB,CAAC;YAC5B,EAAE,EAAE,WAAW,CAAC,aAAa;AAC7B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC;AAC9C,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,WAAW,EAAE,WAAW;AACzB,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,OAAO,GAAA;QACX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAE9C,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAE,CAAA,CAAC,CAAC;AAC3D,SAAA;QAED,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM;AAChD,YAAA,GAAG,OAAO;AACV,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,SAAA,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;AAED,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,MAAM,UAAU,GAAA;QACd,OAAO;KACR;AAED,IAAA,MAAM,gBAAgB,CAAC,YAAoB,EAAE,YAA0B,EAAA;;QAErE,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,SAAC,CAAyD,CAAC;;AAG3D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;;;AAGlE,YAAA,IACE,EAAE,KAAK,IAAI,GAAG,CAAC;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,YAAY,EACvD;gBACA,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;;QAGP,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;;AAG9D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AAClE,YAAA,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE;gBACnB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;AAC1C,gBAAA,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;AAEP,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,MAAM,uBAAuB,CAAC,YAA+B,EAAA;QAC3D,MAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,MAAM,qBAAqB,GAAiB,EAAE,CAAC;QAE/C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,gBAAA,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,aAAA;AACF,SAAA;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACpC,SAAA;QAED,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AACrD,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA;AAAM,iBAAA;AACL,gBAAA,qBAAqB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxE,aAAA;AACF,SAAA;AAED,QAAA,OAAO,qBAAqB,CAAC;KAC9B;AACF;;;;"}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { providers } from '../providers.js';
|
|
2
|
-
import { B as BaseWallet, A as Algod } from '../base-71089716.js';
|
|
3
|
-
import { P as PROVIDER_ID } from '../constants-49b44514.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Helpful resources:
|
|
7
|
-
* https://github.com/perawallet/connect
|
|
8
|
-
*/
|
|
9
|
-
class PeraWalletClient extends BaseWallet {
|
|
10
|
-
#client;
|
|
11
|
-
id;
|
|
12
|
-
provider;
|
|
13
|
-
constructor({ client, id, provider, algosdk, algodClient }) {
|
|
14
|
-
super(algosdk, algodClient);
|
|
15
|
-
this.#client = client;
|
|
16
|
-
this.id = id;
|
|
17
|
-
this.provider = provider;
|
|
18
|
-
}
|
|
19
|
-
static async init() {
|
|
20
|
-
const { algosdk, algodClient } = await Algod.init();
|
|
21
|
-
const PeraWalletConnect = (await import('@perawallet/connect'))
|
|
22
|
-
.PeraWalletConnect;
|
|
23
|
-
const peraWallet = new PeraWalletConnect({ shouldShowSignTxnToast: false });
|
|
24
|
-
return new PeraWalletClient({
|
|
25
|
-
id: PROVIDER_ID.PERA_WALLET,
|
|
26
|
-
client: peraWallet,
|
|
27
|
-
provider: providers[PROVIDER_ID.PERA_WALLET],
|
|
28
|
-
algosdk: algosdk,
|
|
29
|
-
algodClient: algodClient,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
async connect(onDisconnect) {
|
|
33
|
-
this.keepWCAliveStart();
|
|
34
|
-
const accounts = await this.#client.connect();
|
|
35
|
-
this.keepWCAliveStop();
|
|
36
|
-
this.#client.connector?.on("disconnect", onDisconnect);
|
|
37
|
-
if (accounts.length === 0) {
|
|
38
|
-
throw new Error(`No accounts found for ${this.provider}`);
|
|
39
|
-
}
|
|
40
|
-
const mappedAccounts = accounts.map((address, index) => ({
|
|
41
|
-
name: `Pera Wallet ${index + 1}`,
|
|
42
|
-
address,
|
|
43
|
-
providerId: this.provider.id,
|
|
44
|
-
}));
|
|
45
|
-
return {
|
|
46
|
-
...this.provider,
|
|
47
|
-
accounts: mappedAccounts,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
async reconnect(onDisconnect) {
|
|
51
|
-
const accounts = await this.#client.reconnectSession();
|
|
52
|
-
this.#client.connector?.on("disconnect", onDisconnect);
|
|
53
|
-
if (!accounts) {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
...this.provider,
|
|
58
|
-
accounts: accounts.map((address, index) => ({
|
|
59
|
-
name: `Pera Wallet ${index + 1}`,
|
|
60
|
-
address,
|
|
61
|
-
providerId: this.provider.id,
|
|
62
|
-
})),
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
async disconnect() {
|
|
66
|
-
await this.#client.disconnect();
|
|
67
|
-
}
|
|
68
|
-
formatTransactionsArray(transactions) {
|
|
69
|
-
const formattedTransactions = [];
|
|
70
|
-
for (const [type, txn] of transactions) {
|
|
71
|
-
if (type === "s") {
|
|
72
|
-
formattedTransactions.push({
|
|
73
|
-
...this.algosdk.decodeSignedTransaction(new Uint8Array(Buffer.from(txn, "base64"))),
|
|
74
|
-
signers: [],
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
formattedTransactions.push({
|
|
79
|
-
txn: this.algosdk.decodeUnsignedTransaction(new Uint8Array(Buffer.from(txn, "base64"))),
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return formattedTransactions;
|
|
84
|
-
}
|
|
85
|
-
async signTransactions(activeAdress, transactions) {
|
|
86
|
-
// Decode the transactions to access their properties.
|
|
87
|
-
const decodedTxns = transactions.map((txn) => {
|
|
88
|
-
return this.algosdk.decodeObj(txn);
|
|
89
|
-
});
|
|
90
|
-
// Marshal the transactions,
|
|
91
|
-
// and add the signers property if they shouldn't be signed.
|
|
92
|
-
const txnsToSign = decodedTxns.reduce((acc, txn, i) => {
|
|
93
|
-
if (!("txn" in txn) &&
|
|
94
|
-
this.algosdk.encodeAddress(txn["snd"]) === activeAdress) {
|
|
95
|
-
acc.push({
|
|
96
|
-
txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
acc.push({
|
|
101
|
-
txn: this.algosdk.decodeSignedTransaction(transactions[i]).txn,
|
|
102
|
-
signers: [],
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
return acc;
|
|
106
|
-
}, []);
|
|
107
|
-
// Play an audio file to keep Wallet Connect's web socket open on iOS
|
|
108
|
-
// when the user goes into background mode.
|
|
109
|
-
this.keepWCAliveStart();
|
|
110
|
-
// Sign them with the client.
|
|
111
|
-
const result = await this.#client.signTransaction([txnsToSign]);
|
|
112
|
-
this.keepWCAliveStop();
|
|
113
|
-
// Join the newly signed transactions with the original group of transactions.
|
|
114
|
-
const signedTxns = decodedTxns.reduce((acc, txn, i) => {
|
|
115
|
-
if (!("txn" in txn)) {
|
|
116
|
-
const signedByUser = result.shift();
|
|
117
|
-
signedByUser && acc.push(signedByUser);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
acc.push(transactions[i]);
|
|
121
|
-
}
|
|
122
|
-
return acc;
|
|
123
|
-
}, []);
|
|
124
|
-
return signedTxns;
|
|
125
|
-
}
|
|
126
|
-
async signEncodedTransactions(transactions) {
|
|
127
|
-
const transactionsToSign = this.formatTransactionsArray(transactions);
|
|
128
|
-
this.keepWCAliveStart();
|
|
129
|
-
const result = (await this.#client.signTransaction([
|
|
130
|
-
transactionsToSign,
|
|
131
|
-
]));
|
|
132
|
-
this.keepWCAliveStop();
|
|
133
|
-
const signedTransactions = [];
|
|
134
|
-
let resultIndex = 0;
|
|
135
|
-
for (const [type, txn] of transactions) {
|
|
136
|
-
if (type === "u") {
|
|
137
|
-
signedTransactions.push(result[resultIndex]);
|
|
138
|
-
resultIndex++;
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
signedTransactions.push(new Uint8Array(Buffer.from(txn, "base64")));
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return signedTransactions;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
export { PeraWalletClient as default };
|
|
149
|
-
//# sourceMappingURL=perawallet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"perawallet.js","sources":["../../../src/clients/perawallet.ts"],"sourcesContent":["/**\n * Helpful resources:\n * https://github.com/perawallet/connect\n */\nimport { providers } from \"../providers\";\nimport type _algosdk from \"algosdk\";\nimport Algod from \"../algod\";\nimport type { PeraWalletConnect } from \"@perawallet/connect\";\nimport type { WalletProvider, Wallet } from \"../types\";\nimport { PROVIDER_ID } from \"../constants\";\nimport type { Transaction } from \"algosdk\";\nimport BaseWallet from \"./base\";\nimport { TransactionsArray } from \"../types\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\nexport interface PeraTransaction {\n txn: Transaction;\n /**\n * Optional list of addresses that must sign the transactions.\n * Wallet skips to sign this txn if signers is empty array.\n * If undefined, wallet tries to sign it.\n */\n signers?: string[];\n}\n\ntype InitWallet = {\n id: PROVIDER_ID;\n client: PeraWalletConnect;\n provider: WalletProvider;\n algosdk: typeof _algosdk;\n algodClient: _algosdk.Algodv2;\n};\n\nclass PeraWalletClient extends BaseWallet {\n #client: PeraWalletConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor({ client, id, provider, algosdk, algodClient }: InitWallet) {\n super(algosdk, algodClient);\n\n this.#client = client;\n this.id = id;\n this.provider = provider;\n }\n\n static async init() {\n const { algosdk, algodClient } = await Algod.init();\n const PeraWalletConnect = (await import(\"@perawallet/connect\"))\n .PeraWalletConnect;\n\n const peraWallet = new PeraWalletConnect({ shouldShowSignTxnToast: false });\n\n return new PeraWalletClient({\n id: PROVIDER_ID.PERA_WALLET,\n client: peraWallet,\n provider: providers[PROVIDER_ID.PERA_WALLET],\n algosdk: algosdk,\n algodClient: algodClient,\n });\n }\n\n async connect(onDisconnect: () => void): Promise<Wallet> {\n this.keepWCAliveStart();\n\n const accounts = await this.#client.connect();\n\n this.keepWCAliveStop();\n\n this.#client.connector?.on(\"disconnect\", onDisconnect);\n\n if (accounts.length === 0) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const mappedAccounts = accounts.map((address: string, index: number) => ({\n name: `Pera Wallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n }));\n\n return {\n ...this.provider,\n accounts: mappedAccounts,\n };\n }\n\n async reconnect(onDisconnect: () => void) {\n const accounts = await this.#client.reconnectSession();\n this.#client.connector?.on(\"disconnect\", onDisconnect);\n\n if (!accounts) {\n return null;\n }\n\n return {\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Pera Wallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n };\n }\n\n async disconnect() {\n await this.#client.disconnect();\n }\n\n formatTransactionsArray(transactions: TransactionsArray): PeraTransaction[] {\n const formattedTransactions: PeraTransaction[] = [];\n\n for (const [type, txn] of transactions) {\n if (type === \"s\") {\n formattedTransactions.push({\n ...this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ),\n signers: [],\n });\n } else {\n formattedTransactions.push({\n txn: this.algosdk.decodeUnsignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ),\n });\n }\n }\n\n return formattedTransactions;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Marshal the transactions,\n // and add the signers property if they shouldn't be signed.\n const txnsToSign = decodedTxns.reduce<PeraTransaction[]>((acc, txn, i) => {\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push({\n txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),\n });\n } else {\n acc.push({\n txn: this.algosdk.decodeSignedTransaction(transactions[i]).txn,\n signers: [],\n });\n }\n\n return acc;\n }, []);\n\n // Play an audio file to keep Wallet Connect's web socket open on iOS\n // when the user goes into background mode.\n this.keepWCAliveStart();\n\n // Sign them with the client.\n const result = await this.#client.signTransaction([txnsToSign]);\n\n this.keepWCAliveStop();\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n if (!(\"txn\" in txn)) {\n const signedByUser = result.shift();\n signedByUser && acc.push(signedByUser);\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign = this.formatTransactionsArray(transactions);\n\n this.keepWCAliveStart();\n\n const result = (await this.#client.signTransaction([\n transactionsToSign,\n ])) as Uint8Array[];\n\n this.keepWCAliveStop();\n\n const signedTransactions: Uint8Array[] = [];\n let resultIndex = 0;\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n signedTransactions.push(result[resultIndex]);\n resultIndex++;\n } else {\n signedTransactions.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n }\n\n return signedTransactions;\n }\n}\n\nexport default PeraWalletClient;\n"],"names":[],"mappings":";;;;AAAA;;;AAGG;AA8BH,MAAM,gBAAiB,SAAQ,UAAU,CAAA;AACvC,IAAA,OAAO,CAAoB;AAC3B,IAAA,EAAE,CAAc;AAChB,IAAA,QAAQ,CAAiB;IAEzB,WAAY,CAAA,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAc,EAAA;AACpE,QAAA,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAE5B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AACtB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;IAED,aAAa,IAAI,GAAA;QACf,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,iBAAiB,GAAG,CAAC,MAAM,OAAO,qBAAqB,CAAC;AAC3D,aAAA,iBAAiB,CAAC;QAErB,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,CAAC;QAE5E,OAAO,IAAI,gBAAgB,CAAC;YAC1B,EAAE,EAAE,WAAW,CAAC,WAAW;AAC3B,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC;AAC5C,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,WAAW,EAAE,WAAW;AACzB,SAAA,CAAC,CAAC;KACJ;IAED,MAAM,OAAO,CAAC,YAAwB,EAAA;QACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAE9C,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAEvD,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAE,CAAA,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAa,MAAM;AACvE,YAAA,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,GAAG,CAAC,CAAE,CAAA;YAChC,OAAO;AACP,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,SAAA,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;IAED,MAAM,SAAS,CAAC,YAAwB,EAAA;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEvD,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAa,MAAM;AAC1D,gBAAA,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,GAAG,CAAC,CAAE,CAAA;gBAChC,OAAO;AACP,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,aAAA,CAAC,CAAC;SACJ,CAAC;KACH;AAED,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;KACjC;AAED,IAAA,uBAAuB,CAAC,YAA+B,EAAA;QACrD,MAAM,qBAAqB,GAAsB,EAAE,CAAC;QAEpD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,qBAAqB,CAAC,IAAI,CAAC;AACzB,oBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CACrC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC3C;AACD,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,qBAAqB,CAAC,IAAI,CAAC;AACzB,oBAAA,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,yBAAyB,CACzC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC3C;AACF,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AAED,QAAA,OAAO,qBAAqB,CAAC;KAC9B;AAED,IAAA,MAAM,gBAAgB,CAAC,YAAoB,EAAE,YAA0B,EAAA;;QAErE,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,SAAC,CAAyD,CAAC;;;AAI3D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AACvE,YAAA,IACE,EAAE,KAAK,IAAI,GAAG,CAAC;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,YAAY,EACvD;gBACA,GAAG,CAAC,IAAI,CAAC;oBACP,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7D,iBAAA,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC;AACP,oBAAA,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AAC9D,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;;;QAIP,IAAI,CAAC,gBAAgB,EAAE,CAAC;;AAGxB,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,eAAe,EAAE,CAAC;;AAGvB,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AAClE,YAAA,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE;AACnB,gBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AACpC,gBAAA,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;AAEP,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,MAAM,uBAAuB,CAAC,YAA+B,EAAA;QAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAEtE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,MAAM,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YACjD,kBAAkB;AACnB,SAAA,CAAC,CAAiB,CAAC;QAEpB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,kBAAkB,GAAiB,EAAE,CAAC;QAC5C,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7C,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA;AAAM,iBAAA;AACL,gBAAA,kBAAkB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrE,aAAA;AACF,SAAA;AAED,QAAA,OAAO,kBAAkB,CAAC;KAC3B;AACF;;;;"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { B as BaseWallet, A as Algod } from '../base-71089716.js';
|
|
2
|
-
import { providers } from '../providers.js';
|
|
3
|
-
import { P as PROVIDER_ID, c as NODE_NETWORK } from '../constants-49b44514.js';
|
|
4
|
-
import { formatJsonRpcRequest } from '@json-rpc-tools/utils';
|
|
5
|
-
|
|
6
|
-
class WalletConnectClient extends BaseWallet {
|
|
7
|
-
#client;
|
|
8
|
-
id;
|
|
9
|
-
provider;
|
|
10
|
-
constructor({ client, id, provider, algosdk, algodClient }) {
|
|
11
|
-
super(algosdk, algodClient);
|
|
12
|
-
this.#client = client;
|
|
13
|
-
this.id = id;
|
|
14
|
-
this.provider = provider;
|
|
15
|
-
}
|
|
16
|
-
static async init() {
|
|
17
|
-
const { algosdk, algodClient } = await Algod.init();
|
|
18
|
-
const WalletConnect = (await import('@walletconnect/client')).default;
|
|
19
|
-
const QRCodeModal = (await import('algorand-walletconnect-qrcode-modal'))
|
|
20
|
-
.default;
|
|
21
|
-
const walletConnect = new WalletConnect({
|
|
22
|
-
bridge: "https://bridge.walletconnect.org",
|
|
23
|
-
qrcodeModal: QRCodeModal,
|
|
24
|
-
});
|
|
25
|
-
const initWallet = {
|
|
26
|
-
id: PROVIDER_ID.WALLET_CONNECT,
|
|
27
|
-
client: walletConnect,
|
|
28
|
-
provider: providers[PROVIDER_ID.WALLET_CONNECT],
|
|
29
|
-
algosdk: algosdk,
|
|
30
|
-
algodClient: algodClient,
|
|
31
|
-
};
|
|
32
|
-
return new WalletConnectClient(initWallet);
|
|
33
|
-
}
|
|
34
|
-
async connect() {
|
|
35
|
-
let chainId = 416001;
|
|
36
|
-
if (NODE_NETWORK === "betanet") {
|
|
37
|
-
chainId = 416003;
|
|
38
|
-
}
|
|
39
|
-
else if (NODE_NETWORK === "testnet") {
|
|
40
|
-
chainId = 416002;
|
|
41
|
-
}
|
|
42
|
-
if (!this.#client.connected) {
|
|
43
|
-
await this.#client.createSession({ chainId });
|
|
44
|
-
}
|
|
45
|
-
return new Promise((resolve, reject) => {
|
|
46
|
-
this.#client.on("connect", (error, payload) => {
|
|
47
|
-
if (error) {
|
|
48
|
-
reject(error);
|
|
49
|
-
}
|
|
50
|
-
const { accounts } = payload.params[0];
|
|
51
|
-
resolve({
|
|
52
|
-
...this.provider,
|
|
53
|
-
accounts: accounts.map((address, index) => ({
|
|
54
|
-
name: `Wallet Connect ${index + 1}`,
|
|
55
|
-
address,
|
|
56
|
-
providerId: this.provider.id,
|
|
57
|
-
})),
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
this.#client.on("session_update", (error, payload) => {
|
|
61
|
-
if (error) {
|
|
62
|
-
reject(error);
|
|
63
|
-
}
|
|
64
|
-
const { accounts } = payload.params[0];
|
|
65
|
-
resolve({
|
|
66
|
-
...this.provider,
|
|
67
|
-
accounts: accounts.map((address, index) => ({
|
|
68
|
-
name: `Wallet Connect ${index + 1}`,
|
|
69
|
-
address,
|
|
70
|
-
providerId: this.provider.id,
|
|
71
|
-
})),
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
async reconnect() {
|
|
77
|
-
this.#client = (await WalletConnectClient.init()).#client;
|
|
78
|
-
const accounts = this.#client.accounts;
|
|
79
|
-
if (!accounts) {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
...this.provider,
|
|
84
|
-
accounts: accounts.map((address, index) => ({
|
|
85
|
-
name: `Wallet Connect ${index + 1}`,
|
|
86
|
-
address,
|
|
87
|
-
providerId: this.provider.id,
|
|
88
|
-
})),
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
check() {
|
|
92
|
-
return this.#client.connected;
|
|
93
|
-
}
|
|
94
|
-
async disconnect() {
|
|
95
|
-
try {
|
|
96
|
-
await this.#client.killSession();
|
|
97
|
-
}
|
|
98
|
-
catch (e) {
|
|
99
|
-
console.error("Error disconnecting", e);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
formatTransactionsArray(transactions) {
|
|
103
|
-
const formattedTransactions = transactions.map((txn) => {
|
|
104
|
-
const formattedTxn = {
|
|
105
|
-
txn: txn[1],
|
|
106
|
-
};
|
|
107
|
-
if (txn[0] === "s") {
|
|
108
|
-
const decodedTxn = this.algosdk.decodeSignedTransaction(new Uint8Array(Buffer.from(txn[1], "base64")));
|
|
109
|
-
formattedTxn.txn = Buffer.from(this.algosdk.encodeUnsignedTransaction(decodedTxn.txn)).toString("base64");
|
|
110
|
-
formattedTxn.signers = [];
|
|
111
|
-
}
|
|
112
|
-
return formattedTxn;
|
|
113
|
-
});
|
|
114
|
-
return formattedTransactions;
|
|
115
|
-
}
|
|
116
|
-
async signTransactions(activeAdress, transactions) {
|
|
117
|
-
// Decode the transactions to access their properties.
|
|
118
|
-
const decodedTxns = transactions.map((txn) => {
|
|
119
|
-
return this.algosdk.decodeObj(txn);
|
|
120
|
-
});
|
|
121
|
-
// Marshal the transactions,
|
|
122
|
-
// and add the signers property if they shouldn't be signed.
|
|
123
|
-
const txnsToSign = decodedTxns.reduce((acc, txn, i) => {
|
|
124
|
-
if (!("txn" in txn) &&
|
|
125
|
-
this.algosdk.encodeAddress(txn["snd"]) === activeAdress) {
|
|
126
|
-
acc.push({
|
|
127
|
-
txn: Buffer.from(transactions[i]).toString("base64"),
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
acc.push({
|
|
132
|
-
txn: Buffer.from(transactions[i]).toString("base64"),
|
|
133
|
-
signers: [],
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
return acc;
|
|
137
|
-
}, []);
|
|
138
|
-
const requestParams = [txnsToSign];
|
|
139
|
-
const request = formatJsonRpcRequest("algo_signTxn", requestParams);
|
|
140
|
-
// Play an audio file to keep Wallet Connect's web socket open on iOS
|
|
141
|
-
// when the user goes into background mode.
|
|
142
|
-
this.keepWCAliveStart();
|
|
143
|
-
// Sign them with the client.
|
|
144
|
-
const result = await this.#client.sendCustomRequest(request);
|
|
145
|
-
this.keepWCAliveStop();
|
|
146
|
-
// Join the newly signed transactions with the original group of transactions.
|
|
147
|
-
const signedTxns = result.reduce((signedTxns, txn, i) => {
|
|
148
|
-
if (txn) {
|
|
149
|
-
signedTxns.push(new Uint8Array(Buffer.from(txn, "base64")));
|
|
150
|
-
}
|
|
151
|
-
if (txn === null) {
|
|
152
|
-
signedTxns.push(transactions[i]);
|
|
153
|
-
}
|
|
154
|
-
return signedTxns;
|
|
155
|
-
}, []);
|
|
156
|
-
return signedTxns;
|
|
157
|
-
}
|
|
158
|
-
async signEncodedTransactions(transactions) {
|
|
159
|
-
const transactionsToSign = this.formatTransactionsArray(transactions);
|
|
160
|
-
const requestParams = [transactionsToSign];
|
|
161
|
-
const request = formatJsonRpcRequest("algo_signTxn", requestParams);
|
|
162
|
-
this.keepWCAliveStart();
|
|
163
|
-
const result = await this.#client.sendCustomRequest(request);
|
|
164
|
-
this.keepWCAliveStop();
|
|
165
|
-
const signedRawTransactions = result.reduce((signedTxns, txn, currentIndex) => {
|
|
166
|
-
if (txn) {
|
|
167
|
-
signedTxns.push(new Uint8Array(Buffer.from(txn, "base64")));
|
|
168
|
-
}
|
|
169
|
-
if (txn === null) {
|
|
170
|
-
signedTxns.push(new Uint8Array(Buffer.from(transactions[currentIndex][1], "base64")));
|
|
171
|
-
}
|
|
172
|
-
return signedTxns;
|
|
173
|
-
}, []);
|
|
174
|
-
return signedRawTransactions;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
export { WalletConnectClient as default };
|
|
179
|
-
//# sourceMappingURL=walletconnect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"walletconnect.js","sources":["../../../src/clients/walletconnect.ts"],"sourcesContent":["/**\n * Helpful resources:\n * https://developer.algorand.org/docs/get-details/walletconnect/\n */\nimport type _algosdk from \"algosdk\";\nimport Algod from \"../algod\";\nimport type WalletConnect from \"@walletconnect/client\";\nimport { providers } from \"../providers\";\nimport type { WalletProvider, Wallet } from \"../types/wallet\";\nimport { PROVIDER_ID, NODE_NETWORK } from \"../constants\";\nimport BaseWallet from \"./base\";\nimport { formatJsonRpcRequest } from \"@json-rpc-tools/utils\";\nimport { TransactionsArray } from \"../types/api\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\ntype WalletConnectTransaction = {\n txn: string;\n message?: string;\n // if the transaction does not need to be signed,\n // because it is part of an atomic group that will be signed by another party,\n // specify an empty signers array\n signers?: string[] | [];\n};\n\ntype InitWallet = {\n id: PROVIDER_ID;\n client: WalletConnect;\n provider: WalletProvider;\n algosdk: typeof _algosdk;\n algodClient: _algosdk.Algodv2;\n};\n\nclass WalletConnectClient extends BaseWallet {\n #client: WalletConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor({ client, id, provider, algosdk, algodClient }: InitWallet) {\n super(algosdk, algodClient);\n\n this.#client = client;\n this.id = id;\n this.provider = provider;\n }\n\n static async init() {\n const { algosdk, algodClient } = await Algod.init();\n const WalletConnect = (await import(\"@walletconnect/client\")).default;\n const QRCodeModal = (await import(\"algorand-walletconnect-qrcode-modal\"))\n .default;\n\n const walletConnect = new WalletConnect({\n bridge: \"https://bridge.walletconnect.org\",\n qrcodeModal: QRCodeModal,\n });\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.WALLET_CONNECT,\n client: walletConnect,\n provider: providers[PROVIDER_ID.WALLET_CONNECT],\n algosdk: algosdk,\n algodClient: algodClient,\n };\n\n return new WalletConnectClient(initWallet);\n }\n\n async connect(): Promise<Wallet> {\n let chainId = 416001;\n\n if (NODE_NETWORK === \"betanet\") {\n chainId = 416003;\n } else if (NODE_NETWORK === \"testnet\") {\n chainId = 416002;\n }\n\n if (!this.#client.connected) {\n await this.#client.createSession({ chainId });\n }\n\n return new Promise((resolve, reject) => {\n this.#client.on(\"connect\", (error, payload) => {\n if (error) {\n reject(error);\n }\n\n const { accounts } = payload.params[0];\n\n resolve({\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Wallet Connect ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n });\n });\n\n this.#client.on(\"session_update\", (error, payload) => {\n if (error) {\n reject(error);\n }\n\n const { accounts } = payload.params[0];\n\n resolve({\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Wallet Connect ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n });\n });\n });\n }\n\n async reconnect() {\n this.#client = (await WalletConnectClient.init()).#client;\n\n const accounts = this.#client.accounts;\n\n if (!accounts) {\n return null;\n }\n\n return {\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Wallet Connect ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n };\n }\n\n check() {\n return this.#client.connected;\n }\n\n async disconnect() {\n try {\n await this.#client.killSession();\n } catch (e) {\n console.error(\"Error disconnecting\", e);\n }\n }\n\n formatTransactionsArray(\n transactions: TransactionsArray\n ): WalletConnectTransaction[] {\n const formattedTransactions = transactions.map((txn) => {\n const formattedTxn: WalletConnectTransaction = {\n txn: txn[1],\n };\n\n if (txn[0] === \"s\") {\n const decodedTxn = this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn[1], \"base64\"))\n );\n\n formattedTxn.txn = Buffer.from(\n this.algosdk.encodeUnsignedTransaction(decodedTxn.txn)\n ).toString(\"base64\");\n\n formattedTxn.signers = [];\n }\n\n return formattedTxn;\n });\n\n return formattedTransactions;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Marshal the transactions,\n // and add the signers property if they shouldn't be signed.\n const txnsToSign = decodedTxns.reduce<WalletConnectTransaction[]>(\n (acc, txn, i) => {\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push({\n txn: Buffer.from(transactions[i]).toString(\"base64\"),\n });\n } else {\n acc.push({\n txn: Buffer.from(transactions[i]).toString(\"base64\"),\n signers: [],\n });\n }\n\n return acc;\n },\n []\n );\n\n const requestParams = [txnsToSign];\n const request = formatJsonRpcRequest(\"algo_signTxn\", requestParams);\n\n // Play an audio file to keep Wallet Connect's web socket open on iOS\n // when the user goes into background mode.\n this.keepWCAliveStart();\n\n // Sign them with the client.\n const result: Array<string | null> = await this.#client.sendCustomRequest(\n request\n );\n\n this.keepWCAliveStop();\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = result.reduce((signedTxns: Uint8Array[], txn, i) => {\n if (txn) {\n signedTxns.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n\n if (txn === null) {\n signedTxns.push(transactions[i]);\n }\n\n return signedTxns;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign = this.formatTransactionsArray(transactions);\n const requestParams = [transactionsToSign];\n const request = formatJsonRpcRequest(\"algo_signTxn\", requestParams);\n\n this.keepWCAliveStart();\n\n const result: Array<string | null> = await this.#client.sendCustomRequest(\n request\n );\n\n this.keepWCAliveStop();\n\n const signedRawTransactions = result.reduce(\n (signedTxns: Uint8Array[], txn, currentIndex) => {\n if (txn) {\n signedTxns.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n\n if (txn === null) {\n signedTxns.push(\n new Uint8Array(Buffer.from(transactions[currentIndex][1], \"base64\"))\n );\n }\n\n return signedTxns;\n },\n []\n );\n\n return signedRawTransactions;\n }\n}\n\nexport default WalletConnectClient;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
var PROVIDER_ID;
|
|
2
|
-
(function (PROVIDER_ID) {
|
|
3
|
-
PROVIDER_ID["KMD_WALLET"] = "KMD Wallet";
|
|
4
|
-
PROVIDER_ID["PERA_WALLET"] = "Pera Wallet";
|
|
5
|
-
PROVIDER_ID["MYALGO_WALLET"] = "MyAlgo Wallet";
|
|
6
|
-
PROVIDER_ID["ALGO_SIGNER"] = "Algo Signer";
|
|
7
|
-
PROVIDER_ID["DEFLY"] = "Defly";
|
|
8
|
-
PROVIDER_ID["EXODUS"] = "Exodus";
|
|
9
|
-
PROVIDER_ID["WALLET_CONNECT"] = "Wallet Connect";
|
|
10
|
-
})(PROVIDER_ID || (PROVIDER_ID = {}));
|
|
11
|
-
const NODE_SERVER = process.env.NODE_SERVER ||
|
|
12
|
-
process.env.REACT_APP_NODE_SERVER ||
|
|
13
|
-
process.env.NEXT_PUBLIC_NODE_SERVER ||
|
|
14
|
-
/** @todo deprecate this env var */
|
|
15
|
-
process.env.NEXT_PUBLIC_NODE_URL ||
|
|
16
|
-
"https://mainnet-api.algonode.cloud";
|
|
17
|
-
const NODE_TOKEN = process.env.NODE_TOKEN ||
|
|
18
|
-
process.env.REACT_APP_NODE_TOKEN ||
|
|
19
|
-
process.env.NEXT_PUBLIC_NODE_TOKEN ||
|
|
20
|
-
"";
|
|
21
|
-
const NODE_PORT = process.env.NODE_PORT ||
|
|
22
|
-
process.env.REACT_APP_NODE_PORT ||
|
|
23
|
-
process.env.NEXT_PUBLIC_NODE_PORT ||
|
|
24
|
-
"";
|
|
25
|
-
const NODE_NETWORK = process.env.NODE_NETWORK ||
|
|
26
|
-
process.env.REACT_APP_NODE_NETWORK ||
|
|
27
|
-
process.env.NEXT_PUBLIC_NODE_NETWORK ||
|
|
28
|
-
/** @todo deprecate this env var */
|
|
29
|
-
process.env.NEXT_PUBLIC_VERCEL_ENV ||
|
|
30
|
-
"mainnet";
|
|
31
|
-
const KMD_HOST = process.env.KMD_HOST ||
|
|
32
|
-
process.env.REACT_APP_KMD_HOST ||
|
|
33
|
-
process.env.NEXT_PUBLIC_KMD_HOST ||
|
|
34
|
-
"http://localhost";
|
|
35
|
-
const KMD_TOKEN = process.env.KMD_TOKEN ||
|
|
36
|
-
process.env.REACT_APP_KMD_TOKEN ||
|
|
37
|
-
process.env.NEXT_PUBLIC_KMD_TOKEN ||
|
|
38
|
-
"a".repeat(64);
|
|
39
|
-
const KMD_PORT = process.env.KMD_PORT ||
|
|
40
|
-
process.env.REACT_APP_KMD_PORT ||
|
|
41
|
-
process.env.NEXT_PUBLIC_KMD_PORT ||
|
|
42
|
-
"4002";
|
|
43
|
-
const KMD_WALLET = process.env.KMD_WALLET ||
|
|
44
|
-
process.env.REACT_APP_KMD_WALLET ||
|
|
45
|
-
process.env.NEXT_PUBLIC_KMD_WALLET ||
|
|
46
|
-
"unencrypted-default-wallet";
|
|
47
|
-
const KMD_PASSWORD = process.env.KMD_PASSWORD ||
|
|
48
|
-
process.env.REACT_APP_KMD_PASSWORD ||
|
|
49
|
-
process.env.NEXT_PUBLIC_KMD_PASSWORD ||
|
|
50
|
-
"";
|
|
51
|
-
|
|
52
|
-
export { KMD_HOST as K, NODE_SERVER as N, PROVIDER_ID as P, NODE_TOKEN as a, NODE_PORT as b, NODE_NETWORK as c, KMD_TOKEN as d, KMD_PORT as e, KMD_WALLET as f, KMD_PASSWORD as g };
|
|
53
|
-
//# sourceMappingURL=constants-49b44514.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants-49b44514.js","sources":["../../src/constants/constants.ts"],"sourcesContent":["export enum PROVIDER_ID {\n KMD_WALLET = \"KMD Wallet\",\n PERA_WALLET = \"Pera Wallet\",\n MYALGO_WALLET = \"MyAlgo Wallet\",\n ALGO_SIGNER = \"Algo Signer\",\n DEFLY = \"Defly\",\n EXODUS = \"Exodus\",\n WALLET_CONNECT = \"Wallet Connect\",\n}\n\nexport const NODE_SERVER =\n process.env.NODE_SERVER ||\n process.env.REACT_APP_NODE_SERVER ||\n process.env.NEXT_PUBLIC_NODE_SERVER ||\n /** @todo deprecate this env var */\n process.env.NEXT_PUBLIC_NODE_URL ||\n \"https://mainnet-api.algonode.cloud\";\n\nexport const NODE_TOKEN =\n process.env.NODE_TOKEN ||\n process.env.REACT_APP_NODE_TOKEN ||\n process.env.NEXT_PUBLIC_NODE_TOKEN ||\n \"\";\n\nexport const NODE_PORT =\n process.env.NODE_PORT ||\n process.env.REACT_APP_NODE_PORT ||\n process.env.NEXT_PUBLIC_NODE_PORT ||\n \"\";\n\nexport const NODE_NETWORK =\n process.env.NODE_NETWORK ||\n process.env.REACT_APP_NODE_NETWORK ||\n process.env.NEXT_PUBLIC_NODE_NETWORK ||\n /** @todo deprecate this env var */\n process.env.NEXT_PUBLIC_VERCEL_ENV ||\n \"mainnet\";\n\nexport const KMD_HOST =\n process.env.KMD_HOST ||\n process.env.REACT_APP_KMD_HOST ||\n process.env.NEXT_PUBLIC_KMD_HOST ||\n \"http://localhost\";\n\nexport const KMD_TOKEN =\n process.env.KMD_TOKEN ||\n process.env.REACT_APP_KMD_TOKEN ||\n process.env.NEXT_PUBLIC_KMD_TOKEN ||\n \"a\".repeat(64);\n\nexport const KMD_PORT =\n process.env.KMD_PORT ||\n process.env.REACT_APP_KMD_PORT ||\n process.env.NEXT_PUBLIC_KMD_PORT ||\n \"4002\";\n\nexport const KMD_WALLET =\n process.env.KMD_WALLET ||\n process.env.REACT_APP_KMD_WALLET ||\n process.env.NEXT_PUBLIC_KMD_WALLET ||\n \"unencrypted-default-wallet\";\n\nexport const KMD_PASSWORD =\n process.env.KMD_PASSWORD ||\n process.env.REACT_APP_KMD_PASSWORD ||\n process.env.NEXT_PUBLIC_KMD_PASSWORD ||\n \"\";\n"],"names":[],"mappings":"IAAY,YAQX;AARD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACnC,CAAC,EARW,WAAW,KAAX,WAAW,GAQtB,EAAA,CAAA,CAAA,CAAA;MAEY,WAAW,GACtB,OAAO,CAAC,GAAG,CAAC,WAAW;IACvB,OAAO,CAAC,GAAG,CAAC,qBAAqB;IACjC,OAAO,CAAC,GAAG,CAAC,uBAAuB;;IAEnC,OAAO,CAAC,GAAG,CAAC,oBAAoB;AAChC,IAAA,qCAAqC;MAE1B,UAAU,GACrB,OAAO,CAAC,GAAG,CAAC,UAAU;IACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB;AAClC,IAAA,GAAG;MAEQ,SAAS,GACpB,OAAO,CAAC,GAAG,CAAC,SAAS;IACrB,OAAO,CAAC,GAAG,CAAC,mBAAmB;IAC/B,OAAO,CAAC,GAAG,CAAC,qBAAqB;AACjC,IAAA,GAAG;MAEQ,YAAY,GACvB,OAAO,CAAC,GAAG,CAAC,YAAY;IACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB;IAClC,OAAO,CAAC,GAAG,CAAC,wBAAwB;;IAEpC,OAAO,CAAC,GAAG,CAAC,sBAAsB;AAClC,IAAA,UAAU;MAEC,QAAQ,GACnB,OAAO,CAAC,GAAG,CAAC,QAAQ;IACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB;IAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB;AAChC,IAAA,mBAAmB;MAER,SAAS,GACpB,OAAO,CAAC,GAAG,CAAC,SAAS;IACrB,OAAO,CAAC,GAAG,CAAC,mBAAmB;IAC/B,OAAO,CAAC,GAAG,CAAC,qBAAqB;AACjC,IAAA,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;MAEJ,QAAQ,GACnB,OAAO,CAAC,GAAG,CAAC,QAAQ;IACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB;IAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB;AAChC,IAAA,OAAO;MAEI,UAAU,GACrB,OAAO,CAAC,GAAG,CAAC,UAAU;IACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB;AAClC,IAAA,6BAA6B;MAElB,YAAY,GACvB,OAAO,CAAC,GAAG,CAAC,YAAY;IACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB;IAClC,OAAO,CAAC,GAAG,CAAC,wBAAwB;AACpC,IAAA;;;;"}
|
package/dist/esm/constants.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|