@metaplex-foundation/umi-uploader-irys 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,103 @@
1
+ import {
2
+ Commitment,
3
+ Signer,
4
+ base58,
5
+ createSignerFromKeypair,
6
+ signTransaction,
7
+ Context,
8
+ } from '@metaplex-foundation/umi';
9
+ import {
10
+ fromWeb3JsKeypair,
11
+ fromWeb3JsLegacyTransaction,
12
+ toWeb3JsLegacyTransaction,
13
+ toWeb3JsPublicKey,
14
+ } from '@metaplex-foundation/umi-web3js-adapters';
15
+ import {
16
+ Connection as Web3JsConnection,
17
+ Keypair as Web3JsKeypair,
18
+ SendOptions as Web3JsSendOptions,
19
+ Signer as Web3JsSigner,
20
+ Transaction as Web3JsTransaction,
21
+ TransactionSignature as Web3JsTransactionSignature,
22
+ } from '@solana/web3.js';
23
+
24
+ import { WebUploader } from '@irys/web-upload';
25
+ import { WebSolana } from '@irys/web-upload-solana';
26
+ import BaseWebIrys from '@irys/web-upload/dist/types/base';
27
+ import type { UmiPlugin } from '@metaplex-foundation/umi';
28
+ import {
29
+ IrysWalletAdapter,
30
+ createBaseIrysUploader as CIU,
31
+ IrysUploaderOptions,
32
+ IrysUploader,
33
+ } from './createIrysUploader';
34
+ import { FailedToInitializeIrysError } from './errors';
35
+
36
+ export const irysUploader = (options?: IrysUploaderOptions): UmiPlugin => ({
37
+ install(umi) {
38
+ umi.uploader = createIrysUploader(umi, options);
39
+ },
40
+ });
41
+
42
+ export function createIrysUploader(
43
+ context: Pick<Context, 'rpc' | 'payer' | 'eddsa'>,
44
+ uploaderOptions: IrysUploaderOptions = {}
45
+ ): IrysUploader {
46
+ return CIU(initWebIrys, context, uploaderOptions);
47
+ }
48
+
49
+ export const initWebIrys = async (
50
+ address: string,
51
+ payer: Signer,
52
+ options: any,
53
+ context: any
54
+ ): Promise<BaseWebIrys> => {
55
+ const wallet: IrysWalletAdapter = {
56
+ publicKey: toWeb3JsPublicKey(payer.publicKey),
57
+ signMessage: (message: Uint8Array) => payer.signMessage(message),
58
+ signTransaction: async (web3JsTransaction: Web3JsTransaction) =>
59
+ toWeb3JsLegacyTransaction(
60
+ await payer.signTransaction(
61
+ fromWeb3JsLegacyTransaction(web3JsTransaction)
62
+ )
63
+ ),
64
+ signAllTransactions: async (web3JsTransactions: Web3JsTransaction[]) => {
65
+ const transactions = web3JsTransactions.map(fromWeb3JsLegacyTransaction);
66
+ const signedTransactions = await payer.signAllTransactions(transactions);
67
+ return signedTransactions.map(toWeb3JsLegacyTransaction);
68
+ },
69
+ sendTransaction: async (
70
+ web3JsTransaction: Web3JsTransaction,
71
+ connection: Web3JsConnection,
72
+ options: Web3JsSendOptions & { signers?: Web3JsSigner[] } = {}
73
+ ): Promise<Web3JsTransactionSignature> => {
74
+ const { signers: web3JsSigners = [], ...sendOptions } = options;
75
+ const signers = web3JsSigners.map((web3JsSigner) =>
76
+ createSignerFromKeypair(
77
+ context,
78
+ fromWeb3JsKeypair(Web3JsKeypair.fromSecretKey(web3JsSigner.secretKey))
79
+ )
80
+ );
81
+
82
+ let transaction = fromWeb3JsLegacyTransaction(web3JsTransaction);
83
+ transaction = await signTransaction(transaction, [payer, ...signers]);
84
+
85
+ const signature = await context.rpc.sendTransaction(transaction, {
86
+ ...sendOptions,
87
+ preflightCommitment: sendOptions.preflightCommitment as Commitment,
88
+ });
89
+
90
+ return base58.deserialize(signature)[0];
91
+ },
92
+ };
93
+
94
+ try {
95
+ return await WebUploader(WebSolana)
96
+ .withProvider(wallet)
97
+ .bundlerUrl(address)
98
+ .withIrysConfig(options)
99
+ .build();
100
+ } catch (error) {
101
+ throw new FailedToInitializeIrysError(error as Error);
102
+ }
103
+ };
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var createIrysUploader = require('./createIrysUploader.cjs');
6
-
7
- const irysUploader = options => ({
8
- install(umi) {
9
- umi.uploader = createIrysUploader.createIrysUploader(umi, options);
10
- }
11
- });
12
-
13
- exports.irysUploader = irysUploader;
14
- //# sourceMappingURL=plugin.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.cjs","sources":["../../src/plugin.ts"],"sourcesContent":["import type { UmiPlugin } from '@metaplex-foundation/umi';\nimport { IrysUploaderOptions, createIrysUploader } from './createIrysUploader';\n\nexport const irysUploader = (options?: IrysUploaderOptions): UmiPlugin => ({\n install(umi) {\n umi.uploader = createIrysUploader(umi, options);\n },\n});\n"],"names":["irysUploader","options","install","umi","uploader","createIrysUploader"],"mappings":";;;;;;AAGaA,MAAAA,YAAY,GAAIC,OAA6B,KAAiB;EACzEC,OAAO,CAACC,GAAG,EAAE;IACXA,GAAG,CAACC,QAAQ,GAAGC,qCAAkB,CAACF,GAAG,EAAEF,OAAO,CAAC,CAAA;AACjD,GAAA;AACF,CAAC;;;;"}
@@ -1,10 +0,0 @@
1
- import { createIrysUploader } from './createIrysUploader.mjs';
2
-
3
- const irysUploader = options => ({
4
- install(umi) {
5
- umi.uploader = createIrysUploader(umi, options);
6
- }
7
- });
8
-
9
- export { irysUploader };
10
- //# sourceMappingURL=plugin.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.mjs","sources":["../../src/plugin.ts"],"sourcesContent":["import type { UmiPlugin } from '@metaplex-foundation/umi';\nimport { IrysUploaderOptions, createIrysUploader } from './createIrysUploader';\n\nexport const irysUploader = (options?: IrysUploaderOptions): UmiPlugin => ({\n install(umi) {\n umi.uploader = createIrysUploader(umi, options);\n },\n});\n"],"names":["irysUploader","options","install","umi","uploader","createIrysUploader"],"mappings":";;AAGaA,MAAAA,YAAY,GAAIC,OAA6B,KAAiB;EACzEC,OAAO,CAACC,GAAG,EAAE;IACXA,GAAG,CAACC,QAAQ,GAAGC,kBAAkB,CAACF,GAAG,EAAEF,OAAO,CAAC,CAAA;AACjD,GAAA;AACF,CAAC;;;;"}
@@ -1,3 +0,0 @@
1
- import type { UmiPlugin } from '@metaplex-foundation/umi';
2
- import { IrysUploaderOptions } from './createIrysUploader';
3
- export declare const irysUploader: (options?: IrysUploaderOptions) => UmiPlugin;
package/src/plugin.ts DELETED
@@ -1,8 +0,0 @@
1
- import type { UmiPlugin } from '@metaplex-foundation/umi';
2
- import { IrysUploaderOptions, createIrysUploader } from './createIrysUploader';
3
-
4
- export const irysUploader = (options?: IrysUploaderOptions): UmiPlugin => ({
5
- install(umi) {
6
- umi.uploader = createIrysUploader(umi, options);
7
- },
8
- });