@ardrive/turbo-sdk 1.8.0 → 1.9.0-alpha.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.
- package/README.md +50 -3
- package/bundles/web.bundle.min.js +37254 -14090
- package/lib/cjs/common/factory.js +6 -1
- package/lib/cjs/common/signer.js +15 -0
- package/lib/cjs/common/token/ethereum.js +70 -0
- package/lib/cjs/common/token/index.js +3 -1
- package/lib/cjs/types.js +8 -4
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/web/factory.js +6 -1
- package/lib/esm/common/factory.js +7 -2
- package/lib/esm/common/signer.js +15 -0
- package/lib/esm/common/token/ethereum.js +64 -0
- package/lib/esm/common/token/index.js +3 -1
- package/lib/esm/types.js +6 -3
- package/lib/esm/version.js +1 -1
- package/lib/esm/web/factory.js +7 -2
- package/lib/types/common/factory.d.ts +2 -2
- package/lib/types/common/factory.d.ts.map +1 -1
- package/lib/types/common/payment.d.ts +2 -2
- package/lib/types/common/payment.d.ts.map +1 -1
- package/lib/types/common/signer.d.ts +3 -1
- package/lib/types/common/signer.d.ts.map +1 -1
- package/lib/types/common/token/ethereum.d.ts +36 -0
- package/lib/types/common/token/ethereum.d.ts.map +1 -0
- package/lib/types/common/token/index.d.ts +1 -0
- package/lib/types/common/token/index.d.ts.map +1 -1
- package/lib/types/common/upload.d.ts +2 -2
- package/lib/types/common/upload.d.ts.map +1 -1
- package/lib/types/types.d.ts +15 -6
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/version.d.ts +1 -1
- package/lib/types/web/factory.d.ts +2 -2
- package/lib/types/web/factory.d.ts.map +1 -1
- package/package.json +2 -1
@@ -55,7 +55,12 @@ class TurboBaseFactory {
|
|
55
55
|
else if (providedPrivateKey !== undefined) {
|
56
56
|
if (token === 'solana') {
|
57
57
|
signer = new arbundles_1.HexSolanaSigner(providedPrivateKey);
|
58
|
-
|
58
|
+
}
|
59
|
+
else if (token === 'ethereum') {
|
60
|
+
if (!(0, types_js_1.isEthPrivateKey)(providedPrivateKey)) {
|
61
|
+
throw new Error('An Ethereum private key must be provided for EthereumSigner.');
|
62
|
+
}
|
63
|
+
signer = new arbundles_1.EthereumSigner(providedPrivateKey);
|
59
64
|
}
|
60
65
|
else {
|
61
66
|
if (!(0, types_js_1.isJWK)(providedPrivateKey)) {
|
package/lib/cjs/common/signer.js
CHANGED
@@ -22,6 +22,7 @@ exports.TurboDataItemAbstractSigner = void 0;
|
|
22
22
|
*/
|
23
23
|
const arbundles_1 = require("arbundles");
|
24
24
|
const crypto_1 = require("crypto");
|
25
|
+
const ethers_1 = require("ethers");
|
25
26
|
const tweetnacl_1 = __importDefault(require("tweetnacl"));
|
26
27
|
const base64_js_1 = require("../utils/base64.js");
|
27
28
|
/**
|
@@ -65,6 +66,20 @@ class TurboDataItemAbstractSigner {
|
|
65
66
|
async getPublicKey() {
|
66
67
|
return this.signer.publicKey;
|
67
68
|
}
|
69
|
+
/** Let the signer handle sending tx for better compat with cross chain libraries/web wallets */
|
70
|
+
async sendTransaction({ target, amount, provider, }) {
|
71
|
+
if (!(this.signer instanceof arbundles_1.EthereumSigner)) {
|
72
|
+
throw new Error('Only EthereumSigner is supported for sendTransaction API currently!');
|
73
|
+
}
|
74
|
+
const keyAsStringFromUint8Array = Buffer.from(this.signer.key).toString('hex');
|
75
|
+
const ethWalletAndProvider = new ethers_1.Wallet(keyAsStringFromUint8Array, provider);
|
76
|
+
const tx = await ethWalletAndProvider.sendTransaction({
|
77
|
+
to: target,
|
78
|
+
value: (0, ethers_1.parseEther)(amount.toFixed(18)),
|
79
|
+
});
|
80
|
+
this.logger.debug('Sent transaction', { tx });
|
81
|
+
return tx.hash;
|
82
|
+
}
|
68
83
|
async signData(dataToSign) {
|
69
84
|
if (this.signer instanceof arbundles_1.HexSolanaSigner) {
|
70
85
|
const privateKey = this.signer.key;
|
@@ -0,0 +1,70 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.EthereumToken = exports.ETHToTokenAmount = exports.weiToTokenAmount = void 0;
|
4
|
+
/**
|
5
|
+
* Copyright (C) 2022-2023 Permanent Data Solutions, Inc. All Rights Reserved.
|
6
|
+
*
|
7
|
+
* This program is free software: you can redistribute it and/or modify
|
8
|
+
* it under the terms of the GNU Affero General Public License as published by
|
9
|
+
* the Free Software Foundation, either version 3 of the License, or
|
10
|
+
* (at your option) any later version.
|
11
|
+
*
|
12
|
+
* This program is distributed in the hope that it will be useful,
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
* GNU Affero General Public License for more details.
|
16
|
+
*
|
17
|
+
* You should have received a copy of the GNU Affero General Public License
|
18
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
*/
|
20
|
+
const bignumber_js_1 = require("bignumber.js");
|
21
|
+
const ethers_1 = require("ethers");
|
22
|
+
const logger_js_1 = require("../logger.js");
|
23
|
+
const weiToTokenAmount = (wei) => wei;
|
24
|
+
exports.weiToTokenAmount = weiToTokenAmount;
|
25
|
+
const ETHToTokenAmount = (eth) => new bignumber_js_1.BigNumber(eth).times(1e18).valueOf();
|
26
|
+
exports.ETHToTokenAmount = ETHToTokenAmount;
|
27
|
+
class EthereumToken {
|
28
|
+
constructor({ logger = new logger_js_1.TurboWinstonLogger(), gatewayUrl = 'https://cloudflare-eth.com/', pollingOptions = {
|
29
|
+
maxAttempts: 10,
|
30
|
+
pollingIntervalMs: 3000,
|
31
|
+
initialBackoffMs: 5000,
|
32
|
+
}, } = {}) {
|
33
|
+
this.logger = logger;
|
34
|
+
this.gatewayUrl = gatewayUrl;
|
35
|
+
this.pollingOptions = pollingOptions;
|
36
|
+
this.rpcProvider = new ethers_1.ethers.JsonRpcProvider(gatewayUrl);
|
37
|
+
}
|
38
|
+
async createAndSubmitTx({ target, tokenAmount, signer, }) {
|
39
|
+
// convert wei to eth
|
40
|
+
const eth = tokenAmount.shiftedBy(-18);
|
41
|
+
const txId = await signer.sendTransaction({
|
42
|
+
target,
|
43
|
+
amount: eth,
|
44
|
+
provider: this.rpcProvider,
|
45
|
+
});
|
46
|
+
return {
|
47
|
+
id: txId,
|
48
|
+
target,
|
49
|
+
};
|
50
|
+
}
|
51
|
+
async pollForTxBeingAvailable({ txId, }) {
|
52
|
+
await new Promise((resolve) => setTimeout(resolve, this.pollingOptions.initialBackoffMs));
|
53
|
+
let attempts = 0;
|
54
|
+
while (attempts < this.pollingOptions.maxAttempts) {
|
55
|
+
try {
|
56
|
+
const tx = await this.rpcProvider.getTransaction(txId);
|
57
|
+
if (tx) {
|
58
|
+
return;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
catch (e) {
|
62
|
+
this.logger.debug('Error polling for tx', { txId, e });
|
63
|
+
}
|
64
|
+
await new Promise((resolve) => setTimeout(resolve, this.pollingOptions.pollingIntervalMs));
|
65
|
+
attempts++;
|
66
|
+
}
|
67
|
+
throw new Error('Transaction not found after polling!');
|
68
|
+
}
|
69
|
+
}
|
70
|
+
exports.EthereumToken = EthereumToken;
|
@@ -16,11 +16,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
17
|
exports.defaultTokenMap = void 0;
|
18
18
|
const arweave_js_1 = require("./arweave.js");
|
19
|
+
const ethereum_js_1 = require("./ethereum.js");
|
19
20
|
const solana_js_1 = require("./solana.js");
|
20
21
|
exports.defaultTokenMap = {
|
21
22
|
arweave: (config) => new arweave_js_1.ArweaveToken(config),
|
22
23
|
solana: (config) => new solana_js_1.SolanaToken(config),
|
23
|
-
|
24
|
+
ethereum: (config) => new ethereum_js_1.EthereumToken(config),
|
24
25
|
};
|
25
26
|
__exportStar(require("./arweave.js"), exports);
|
26
27
|
__exportStar(require("./solana.js"), exports);
|
28
|
+
__exportStar(require("./ethereum.js"), exports);
|
package/lib/cjs/types.js
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.isJWK = exports.
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
exports.isJWK = exports.isEthPrivateKey = exports.tokenTypes = void 0;
|
4
|
+
exports.tokenTypes = ['arweave', 'solana', 'ethereum'];
|
5
|
+
function isEthPrivateKey(wallet) {
|
6
|
+
if (typeof wallet !== 'string')
|
7
|
+
return false;
|
8
|
+
return wallet.startsWith('0x');
|
9
|
+
}
|
10
|
+
exports.isEthPrivateKey = isEthPrivateKey;
|
7
11
|
const isJWK = (wallet) => wallet.kty !== undefined;
|
8
12
|
exports.isJWK = isJWK;
|
package/lib/cjs/version.js
CHANGED
package/lib/cjs/web/factory.js
CHANGED
@@ -31,7 +31,12 @@ class TurboFactory extends factory_js_1.TurboBaseFactory {
|
|
31
31
|
else if (providedPrivateKey !== undefined) {
|
32
32
|
if (token === 'solana') {
|
33
33
|
signer = new arbundles_1.HexSolanaSigner(providedPrivateKey);
|
34
|
-
|
34
|
+
}
|
35
|
+
else if (token === 'ethereum') {
|
36
|
+
if (!(0, types_js_1.isEthPrivateKey)(providedPrivateKey)) {
|
37
|
+
throw new Error('An Ethereum private key must be provided for EthereumSigner.');
|
38
|
+
}
|
39
|
+
signer = new arbundles_1.EthereumSigner(providedPrivateKey);
|
35
40
|
}
|
36
41
|
else {
|
37
42
|
if (!(0, types_js_1.isJWK)(providedPrivateKey)) {
|
@@ -16,7 +16,7 @@
|
|
16
16
|
*/
|
17
17
|
import { ArweaveSigner, EthereumSigner, HexSolanaSigner } from 'arbundles';
|
18
18
|
import { TurboNodeSigner } from '../node/signer.js';
|
19
|
-
import { isJWK, } from '../types.js';
|
19
|
+
import { isEthPrivateKey, isJWK, } from '../types.js';
|
20
20
|
import { TurboWebArweaveSigner } from '../web/signer.js';
|
21
21
|
import { TurboWinstonLogger } from './logger.js';
|
22
22
|
import { TurboAuthenticatedPaymentService, TurboUnauthenticatedPaymentService, } from './payment.js';
|
@@ -52,7 +52,12 @@ export class TurboBaseFactory {
|
|
52
52
|
else if (providedPrivateKey !== undefined) {
|
53
53
|
if (token === 'solana') {
|
54
54
|
signer = new HexSolanaSigner(providedPrivateKey);
|
55
|
-
|
55
|
+
}
|
56
|
+
else if (token === 'ethereum') {
|
57
|
+
if (!isEthPrivateKey(providedPrivateKey)) {
|
58
|
+
throw new Error('An Ethereum private key must be provided for EthereumSigner.');
|
59
|
+
}
|
60
|
+
signer = new EthereumSigner(providedPrivateKey);
|
56
61
|
}
|
57
62
|
else {
|
58
63
|
if (!isJWK(providedPrivateKey)) {
|
package/lib/esm/common/signer.js
CHANGED
@@ -16,6 +16,7 @@
|
|
16
16
|
*/
|
17
17
|
import { EthereumSigner, HexSolanaSigner } from 'arbundles';
|
18
18
|
import { randomBytes } from 'crypto';
|
19
|
+
import { Wallet as EthereumWallet, parseEther } from 'ethers';
|
19
20
|
import nacl from 'tweetnacl';
|
20
21
|
import { toB64Url } from '../utils/base64.js';
|
21
22
|
/**
|
@@ -59,6 +60,20 @@ export class TurboDataItemAbstractSigner {
|
|
59
60
|
async getPublicKey() {
|
60
61
|
return this.signer.publicKey;
|
61
62
|
}
|
63
|
+
/** Let the signer handle sending tx for better compat with cross chain libraries/web wallets */
|
64
|
+
async sendTransaction({ target, amount, provider, }) {
|
65
|
+
if (!(this.signer instanceof EthereumSigner)) {
|
66
|
+
throw new Error('Only EthereumSigner is supported for sendTransaction API currently!');
|
67
|
+
}
|
68
|
+
const keyAsStringFromUint8Array = Buffer.from(this.signer.key).toString('hex');
|
69
|
+
const ethWalletAndProvider = new EthereumWallet(keyAsStringFromUint8Array, provider);
|
70
|
+
const tx = await ethWalletAndProvider.sendTransaction({
|
71
|
+
to: target,
|
72
|
+
value: parseEther(amount.toFixed(18)),
|
73
|
+
});
|
74
|
+
this.logger.debug('Sent transaction', { tx });
|
75
|
+
return tx.hash;
|
76
|
+
}
|
62
77
|
async signData(dataToSign) {
|
63
78
|
if (this.signer instanceof HexSolanaSigner) {
|
64
79
|
const privateKey = this.signer.key;
|
@@ -0,0 +1,64 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (C) 2022-2023 Permanent Data Solutions, Inc. All Rights Reserved.
|
3
|
+
*
|
4
|
+
* This program is free software: you can redistribute it and/or modify
|
5
|
+
* it under the terms of the GNU Affero General Public License as published by
|
6
|
+
* the Free Software Foundation, either version 3 of the License, or
|
7
|
+
* (at your option) any later version.
|
8
|
+
*
|
9
|
+
* This program is distributed in the hope that it will be useful,
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
* GNU Affero General Public License for more details.
|
13
|
+
*
|
14
|
+
* You should have received a copy of the GNU Affero General Public License
|
15
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
*/
|
17
|
+
import { BigNumber } from 'bignumber.js';
|
18
|
+
import { ethers } from 'ethers';
|
19
|
+
import { TurboWinstonLogger } from '../logger.js';
|
20
|
+
export const weiToTokenAmount = (wei) => wei;
|
21
|
+
export const ETHToTokenAmount = (eth) => new BigNumber(eth).times(1e18).valueOf();
|
22
|
+
export class EthereumToken {
|
23
|
+
constructor({ logger = new TurboWinstonLogger(), gatewayUrl = 'https://cloudflare-eth.com/', pollingOptions = {
|
24
|
+
maxAttempts: 10,
|
25
|
+
pollingIntervalMs: 3000,
|
26
|
+
initialBackoffMs: 5000,
|
27
|
+
}, } = {}) {
|
28
|
+
this.logger = logger;
|
29
|
+
this.gatewayUrl = gatewayUrl;
|
30
|
+
this.pollingOptions = pollingOptions;
|
31
|
+
this.rpcProvider = new ethers.JsonRpcProvider(gatewayUrl);
|
32
|
+
}
|
33
|
+
async createAndSubmitTx({ target, tokenAmount, signer, }) {
|
34
|
+
// convert wei to eth
|
35
|
+
const eth = tokenAmount.shiftedBy(-18);
|
36
|
+
const txId = await signer.sendTransaction({
|
37
|
+
target,
|
38
|
+
amount: eth,
|
39
|
+
provider: this.rpcProvider,
|
40
|
+
});
|
41
|
+
return {
|
42
|
+
id: txId,
|
43
|
+
target,
|
44
|
+
};
|
45
|
+
}
|
46
|
+
async pollForTxBeingAvailable({ txId, }) {
|
47
|
+
await new Promise((resolve) => setTimeout(resolve, this.pollingOptions.initialBackoffMs));
|
48
|
+
let attempts = 0;
|
49
|
+
while (attempts < this.pollingOptions.maxAttempts) {
|
50
|
+
try {
|
51
|
+
const tx = await this.rpcProvider.getTransaction(txId);
|
52
|
+
if (tx) {
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
catch (e) {
|
57
|
+
this.logger.debug('Error polling for tx', { txId, e });
|
58
|
+
}
|
59
|
+
await new Promise((resolve) => setTimeout(resolve, this.pollingOptions.pollingIntervalMs));
|
60
|
+
attempts++;
|
61
|
+
}
|
62
|
+
throw new Error('Transaction not found after polling!');
|
63
|
+
}
|
64
|
+
}
|
@@ -1,9 +1,11 @@
|
|
1
1
|
import { ArweaveToken } from './arweave.js';
|
2
|
+
import { EthereumToken } from './ethereum.js';
|
2
3
|
import { SolanaToken } from './solana.js';
|
3
4
|
export const defaultTokenMap = {
|
4
5
|
arweave: (config) => new ArweaveToken(config),
|
5
6
|
solana: (config) => new SolanaToken(config),
|
6
|
-
|
7
|
+
ethereum: (config) => new EthereumToken(config),
|
7
8
|
};
|
8
9
|
export * from './arweave.js';
|
9
10
|
export * from './solana.js';
|
11
|
+
export * from './ethereum.js';
|
package/lib/esm/types.js
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
|
2
|
-
export
|
3
|
-
|
1
|
+
export const tokenTypes = ['arweave', 'solana', 'ethereum'];
|
2
|
+
export function isEthPrivateKey(wallet) {
|
3
|
+
if (typeof wallet !== 'string')
|
4
|
+
return false;
|
5
|
+
return wallet.startsWith('0x');
|
6
|
+
}
|
4
7
|
export const isJWK = (wallet) => wallet.kty !== undefined;
|
package/lib/esm/version.js
CHANGED
package/lib/esm/web/factory.js
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
import { ArweaveSigner, EthereumSigner, HexSolanaSigner } from 'arbundles';
|
18
18
|
import { TurboBaseFactory } from '../common/factory.js';
|
19
19
|
import { TurboAuthenticatedClient, TurboAuthenticatedPaymentService, TurboAuthenticatedUploadService, defaultTokenMap, } from '../common/index.js';
|
20
|
-
import { isJWK, } from '../types.js';
|
20
|
+
import { isEthPrivateKey, isJWK, } from '../types.js';
|
21
21
|
import { TurboWebArweaveSigner } from './signer.js';
|
22
22
|
export class TurboFactory extends TurboBaseFactory {
|
23
23
|
static getSigner(providedSigner, providedPrivateKey, token) {
|
@@ -28,7 +28,12 @@ export class TurboFactory extends TurboBaseFactory {
|
|
28
28
|
else if (providedPrivateKey !== undefined) {
|
29
29
|
if (token === 'solana') {
|
30
30
|
signer = new HexSolanaSigner(providedPrivateKey);
|
31
|
-
|
31
|
+
}
|
32
|
+
else if (token === 'ethereum') {
|
33
|
+
if (!isEthPrivateKey(providedPrivateKey)) {
|
34
|
+
throw new Error('An Ethereum private key must be provided for EthereumSigner.');
|
35
|
+
}
|
36
|
+
signer = new EthereumSigner(providedPrivateKey);
|
32
37
|
}
|
33
38
|
else {
|
34
39
|
if (!isJWK(providedPrivateKey)) {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { TokenType, TurboAuthenticatedConfiguration, TurboSigner, TurboUnauthenticatedConfiguration, TurboWallet } from '../types.js';
|
2
2
|
import { TurboWinstonLogger } from './logger.js';
|
3
3
|
import { TurboDataItemAbstractSigner } from './signer.js';
|
4
4
|
import { TurboAuthenticatedClient, TurboUnauthenticatedClient } from './turbo.js';
|
@@ -7,7 +7,7 @@ export declare class TurboBaseFactory {
|
|
7
7
|
static setLogLevel(level: string): void;
|
8
8
|
static setLogFormat(format: string): void;
|
9
9
|
static unauthenticated({ paymentServiceConfig, uploadServiceConfig, }?: TurboUnauthenticatedConfiguration): TurboUnauthenticatedClient;
|
10
|
-
protected static getSigner(providedSigner: TurboSigner | undefined, providedPrivateKey: TurboWallet | undefined, token:
|
10
|
+
protected static getSigner(providedSigner: TurboSigner | undefined, providedPrivateKey: TurboWallet | undefined, token: TokenType): TurboDataItemAbstractSigner;
|
11
11
|
static authenticated({ privateKey, signer: providedSigner, paymentServiceConfig, uploadServiceConfig, token, tokenMap, gatewayUrl, tokenTools, }: TurboAuthenticatedConfiguration): TurboAuthenticatedClient;
|
12
12
|
}
|
13
13
|
//# sourceMappingURL=factory.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/common/factory.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/common/factory.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,SAAS,EACT,+BAA+B,EAC/B,WAAW,EACX,iCAAiC,EACjC,WAAW,EAGZ,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAMpB,qBAAa,gBAAgB;IAC3B,SAAS,CAAC,MAAM,CAAC,MAAM,qBAA4B;IAEnD,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM;IAIhC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM;IAIlC,MAAM,CAAC,eAAe,CAAC,EACrB,oBAAyB,EACzB,mBAAwB,GACzB,GAAE,iCAAsC;IAezC,SAAS,CAAC,MAAM,CAAC,SAAS,CACxB,cAAc,EAAE,WAAW,GAAG,SAAS,EACvC,kBAAkB,EAAE,WAAW,GAAG,SAAS,EAC3C,KAAK,EAAE,SAAS,GACf,2BAA2B;IAqC9B,MAAM,CAAC,aAAa,CAAC,EACnB,UAAU,EACV,MAAM,EAAE,cAAc,EACtB,oBAAyB,EACzB,mBAAwB,EACxB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE,+BAA+B;CA8CnC"}
|
@@ -1,11 +1,11 @@
|
|
1
|
-
import {
|
1
|
+
import { Currency, TokenTools, TokenType, TurboAuthenticatedPaymentServiceConfiguration, TurboAuthenticatedPaymentServiceInterface, TurboBalanceResponse, TurboCheckoutSessionParams, TurboCheckoutSessionResponse, TurboCountriesResponse, TurboCryptoFundResponse, TurboCurrenciesResponse, TurboDataItemSigner, TurboFiatToArResponse, TurboFundWithTokensParams, TurboLogger, TurboPriceResponse, TurboRatesResponse, TurboSignedRequestHeaders, TurboSubmitFundTxResponse, TurboUnauthenticatedPaymentServiceConfiguration, TurboUnauthenticatedPaymentServiceInterface, TurboWincForFiatParams, TurboWincForFiatResponse } from '../types.js';
|
2
2
|
import { TurboHTTPService } from './http.js';
|
3
3
|
export declare const developmentPaymentServiceURL = "https://payment.ardrive.dev";
|
4
4
|
export declare const defaultPaymentServiceURL = "https://payment.ardrive.io";
|
5
5
|
export declare class TurboUnauthenticatedPaymentService implements TurboUnauthenticatedPaymentServiceInterface {
|
6
6
|
protected readonly httpService: TurboHTTPService;
|
7
7
|
protected logger: TurboLogger;
|
8
|
-
protected readonly token:
|
8
|
+
protected readonly token: TokenType;
|
9
9
|
constructor({ url, retryConfig, logger, token, }: TurboUnauthenticatedPaymentServiceConfiguration);
|
10
10
|
getFiatRates(): Promise<TurboRatesResponse>;
|
11
11
|
getFiatToAR({ currency, }: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/common/payment.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,
|
1
|
+
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/common/payment.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EAET,6CAA6C,EAC7C,yCAAyC,EACzC,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EAEzB,WAAW,EAEX,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,+CAA+C,EAC/C,2CAA2C,EAC3C,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7C,eAAO,MAAM,4BAA4B,gCAAgC,CAAC;AAC1E,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AAErE,qBAAa,kCACX,YAAW,2CAA2C;IAEtD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACjD,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;gBAExB,EACV,GAA8B,EAC9B,WAAW,EACX,MAAiC,EACjC,KAAiB,GAClB,EAAE,+CAA+C;IAU3C,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAM3C,WAAW,CAAC,EACjB,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,QAAQ,CAAC;KACpB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAM3B,qBAAqB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAMxD,sBAAsB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAMpD,cAAc,CAAC,EAC1B,KAAK,GACN,EAAE;QACD,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAW1B,cAAc,CAAC,EACpB,MAAM,GACP,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAO7D,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;cAK/C,WAAW,CACzB,EACE,MAAM,EACN,KAAK,EACL,UAAe,EACf,MAAiB,GAClB,EAAE,0BAA0B,EAC7B,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,4BAA4B,CAAC;IA0BjC,qBAAqB,CAC1B,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,4BAA4B,CAAC;IAI3B,qBAAqB,CAAC,EACjC,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAqCvC;AAED,qBAAa,gCACX,SAAQ,kCACR,YAAW,yCAAyC;IAEpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;gBAE1C,EACV,GAA8B,EAC9B,WAAW,EACX,MAAM,EACN,MAAiC,EACjC,KAAiB,EACjB,UAAU,GACX,EAAE,6CAA6C;IAMnC,UAAU,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAY3C,cAAc,CAAC,EAC1B,MAAM,EACN,UAAe,GAChB,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShD,qBAAqB,CAChC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,4BAA4B,CAAC;YAO1B,sBAAsB;IAYvB,eAAe,CAAC,EAC3B,aAAiB,EACjB,WAAW,EAAE,YAAY,GAC1B,EAAE,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAwChE"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/// <reference types="node" />
|
2
|
-
import { FileStreamFactory, TurboDataItemSigner, TurboDataItemSignerParams, TurboFileFactory, TurboLogger, TurboSignedDataItemFactory, TurboSigner } from '../types.js';
|
2
|
+
import { FileStreamFactory, SendTxWithSignerParams, TurboDataItemSigner, TurboDataItemSignerParams, TurboFileFactory, TurboLogger, TurboSignedDataItemFactory, TurboSigner } from '../types.js';
|
3
3
|
/**
|
4
4
|
* Abstract class for signing TurboDataItems.
|
5
5
|
*/
|
@@ -18,6 +18,8 @@ export declare abstract class TurboDataItemAbstractSigner implements TurboDataIt
|
|
18
18
|
'x-signature': string;
|
19
19
|
}>;
|
20
20
|
getPublicKey(): Promise<Buffer>;
|
21
|
+
/** Let the signer handle sending tx for better compat with cross chain libraries/web wallets */
|
22
|
+
sendTransaction({ target, amount, provider, }: SendTxWithSignerParams): Promise<string>;
|
21
23
|
signData(dataToSign: Uint8Array): Promise<Uint8Array>;
|
22
24
|
}
|
23
25
|
//# sourceMappingURL=signer.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/common/signer.ts"],"names":[],"mappings":";
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/common/signer.ts"],"names":[],"mappings":";AAqBA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,WAAW,EACZ,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,8BAAsB,2BACpB,YAAW,mBAAmB;IAE9B,QAAQ,CAAC,YAAY,CAAC,EACpB,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAE5E,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;gBAElB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,yBAAyB;IAKzD,SAAS,KAAK,SAAS,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAmB1E;IAEY,4BAA4B;;;;;IAY5B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C,gGAAgG;IACnF,eAAe,CAAC,EAC3B,MAAM,EACN,MAAM,EACN,QAAQ,GACT,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB9B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAgBnE"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (C) 2022-2023 Permanent Data Solutions, Inc. All Rights Reserved.
|
3
|
+
*
|
4
|
+
* This program is free software: you can redistribute it and/or modify
|
5
|
+
* it under the terms of the GNU Affero General Public License as published by
|
6
|
+
* the Free Software Foundation, either version 3 of the License, or
|
7
|
+
* (at your option) any later version.
|
8
|
+
*
|
9
|
+
* This program is distributed in the hope that it will be useful,
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
* GNU Affero General Public License for more details.
|
13
|
+
*
|
14
|
+
* You should have received a copy of the GNU Affero General Public License
|
15
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
*/
|
17
|
+
import { BigNumber } from 'bignumber.js';
|
18
|
+
import { ethers } from 'ethers';
|
19
|
+
import { TokenConfig, TokenCreateTxParams, TokenPollingOptions, TokenTools, TurboLogger } from '../../types.js';
|
20
|
+
export declare const weiToTokenAmount: (wei: BigNumber.Value) => BigNumber.Value;
|
21
|
+
export declare const ETHToTokenAmount: (eth: BigNumber.Value) => string;
|
22
|
+
export declare class EthereumToken implements TokenTools {
|
23
|
+
protected logger: TurboLogger;
|
24
|
+
protected gatewayUrl: string;
|
25
|
+
protected pollingOptions: TokenPollingOptions;
|
26
|
+
protected rpcProvider: ethers.JsonRpcProvider;
|
27
|
+
constructor({ logger, gatewayUrl, pollingOptions, }?: TokenConfig);
|
28
|
+
createAndSubmitTx({ target, tokenAmount, signer, }: TokenCreateTxParams): Promise<{
|
29
|
+
id: string;
|
30
|
+
target: string;
|
31
|
+
}>;
|
32
|
+
pollForTxBeingAvailable({ txId, }: {
|
33
|
+
txId: string;
|
34
|
+
}): Promise<void>;
|
35
|
+
}
|
36
|
+
//# sourceMappingURL=ethereum.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../../../src/common/token/ethereum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAGxB,eAAO,MAAM,gBAAgB,QAAS,UAAU,KAAK,oBAAQ,CAAC;AAC9D,eAAO,MAAM,gBAAgB,QAAS,UAAU,KAAK,WACX,CAAC;AAE3C,qBAAa,aAAc,YAAW,UAAU;IAC9C,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAE9C,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC;gBAElC,EACV,MAAiC,EACjC,UAA0C,EAC1C,cAIC,GACF,GAAE,WAAgB;IAQN,iBAAiB,CAAC,EAC7B,MAAM,EACN,WAAW,EACX,MAAM,GACP,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAC/B,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAeW,uBAAuB,CAAC,EACnC,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBlB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/token/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/token/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK3D,eAAO,MAAM,eAAe,EAAE,YAIpB,CAAC;AAEX,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
@@ -14,14 +14,14 @@
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License
|
15
15
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
16
|
*/
|
17
|
-
import {
|
17
|
+
import { TokenType, TurboAbortSignal, TurboAuthenticatedUploadServiceConfiguration, TurboAuthenticatedUploadServiceInterface, TurboDataItemSigner, TurboFileFactory, TurboLogger, TurboSignedDataItemFactory, TurboUnauthenticatedUploadServiceConfiguration, TurboUnauthenticatedUploadServiceInterface, TurboUploadDataItemResponse } from '../types.js';
|
18
18
|
import { TurboHTTPService } from './http.js';
|
19
19
|
export declare const developmentUploadServiceURL = "https://upload.ardrive.dev";
|
20
20
|
export declare const defaultUploadServiceURL = "https://upload.ardrive.io";
|
21
21
|
export declare class TurboUnauthenticatedUploadService implements TurboUnauthenticatedUploadServiceInterface {
|
22
22
|
protected httpService: TurboHTTPService;
|
23
23
|
protected logger: TurboLogger;
|
24
|
-
protected token:
|
24
|
+
protected token: TokenType;
|
25
25
|
constructor({ url, retryConfig, logger, token, }: TurboUnauthenticatedUploadServiceConfiguration);
|
26
26
|
uploadSignedDataItem({ dataItemStreamFactory, dataItemSizeFactory, signal, }: TurboSignedDataItemFactory & TurboAbortSignal): Promise<TurboUploadDataItemResponse>;
|
27
27
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/common/upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/common/upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,4CAA4C,EAC5C,wCAAwC,EACxC,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,8CAA8C,EAC9C,0CAA0C,EAC1C,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7C,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AACxE,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAEnE,qBAAa,iCACX,YAAW,0CAA0C;IAErD,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACxC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;gBAEf,EACV,GAA6B,EAC7B,WAAW,EACX,MAAiC,EACjC,KAAiB,GAClB,EAAE,8CAA8C;IAU3C,oBAAoB,CAAC,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,MAAM,GACP,EAAE,0BAA0B,GAC3B,gBAAgB,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAc1D;AAGD,qBAAa,+BACX,SAAQ,iCACR,YAAW,wCAAwC;IAEnD,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC;gBAE1B,EACV,GAA6B,EAC7B,WAAW,EACX,MAAM,EACN,MAAM,EACN,KAAK,GACN,EAAE,4CAA4C;IAKzC,UAAU,CAAC,EACf,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,YAAY,GACb,EAAE,gBAAgB,GACjB,gBAAgB,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAqB1D"}
|
package/lib/types/types.d.ts
CHANGED
@@ -20,6 +20,7 @@
|
|
20
20
|
import { ArconnectSigner, ArweaveSigner, DataItemCreateOptions, EthereumSigner, HexSolanaSigner } from 'arbundles';
|
21
21
|
import { IAxiosRetryConfig } from 'axios-retry';
|
22
22
|
import { BigNumber } from 'bignumber.js';
|
23
|
+
import { JsonRpcApiProvider as EthereumProvider } from 'ethers';
|
23
24
|
import { Readable } from 'node:stream';
|
24
25
|
import { ReadableStream } from 'node:stream/web';
|
25
26
|
import { CurrencyMap } from './common/currency.js';
|
@@ -30,9 +31,7 @@ export type TransactionId = Base64String;
|
|
30
31
|
export type UserAddress = string | PublicArweaveAddress;
|
31
32
|
export type Currency = 'usd' | 'eur' | 'gbp' | 'cad' | 'aud' | 'jpy' | 'inr' | 'sgd' | 'hkd' | 'brl';
|
32
33
|
export type Country = 'United States' | 'United Kingdom' | 'Canada';
|
33
|
-
export declare const
|
34
|
-
export type CreditableTokenType = (typeof allowedFiatTokens)[number];
|
35
|
-
export declare const tokenTypes: readonly ["arweave", "solana"];
|
34
|
+
export declare const tokenTypes: readonly ["arweave", "solana", "ethereum"];
|
36
35
|
export type TokenType = (typeof tokenTypes)[number];
|
37
36
|
export type Adjustment = {
|
38
37
|
name: string;
|
@@ -148,9 +147,13 @@ export type TurboPostBalanceResponse = {
|
|
148
147
|
};
|
149
148
|
message: string;
|
150
149
|
};
|
150
|
+
export type ArweaveJWK = JWKInterface;
|
151
151
|
type Base58String = string;
|
152
152
|
export type SolSecretKey = Base58String;
|
153
|
-
|
153
|
+
type HexadecimalString = string;
|
154
|
+
export type EthPrivateKey = HexadecimalString;
|
155
|
+
export declare function isEthPrivateKey(wallet: TurboWallet): wallet is EthPrivateKey;
|
156
|
+
export type TurboWallet = ArweaveJWK | SolSecretKey | EthPrivateKey;
|
154
157
|
export declare const isJWK: (wallet: TurboWallet) => wallet is JWKInterface;
|
155
158
|
export type TurboSignedRequestHeaders = {
|
156
159
|
'x-public-key': string;
|
@@ -164,7 +167,7 @@ type TurboServiceConfiguration = {
|
|
164
167
|
url?: string;
|
165
168
|
retryConfig?: IAxiosRetryConfig;
|
166
169
|
logger?: TurboLogger;
|
167
|
-
token?:
|
170
|
+
token?: TokenType;
|
168
171
|
};
|
169
172
|
export type TurboUnauthenticatedUploadServiceConfiguration = TurboServiceConfiguration;
|
170
173
|
export type TurboAuthenticatedUploadServiceConfiguration = TurboUnauthenticatedUploadServiceConfiguration & TurboAuthConfiguration;
|
@@ -197,7 +200,7 @@ export type TurboAuthenticatedConfiguration = TurboUnauthenticatedConfiguration
|
|
197
200
|
/** @deprecated -- This parameter was added in release v1.5 for injecting an arweave TokenTool. Instead, the SDK now accepts `tokenTools` and/or `gatewayUrl` directly in the Factory constructor. This type will be removed in a v2 release */
|
198
201
|
tokenMap?: TokenMap;
|
199
202
|
tokenTools?: TokenTools;
|
200
|
-
token?:
|
203
|
+
token?: TokenType;
|
201
204
|
gatewayUrl?: string;
|
202
205
|
};
|
203
206
|
export type TurboUnauthenticatedClientConfiguration = {
|
@@ -245,6 +248,11 @@ export type SendFundTxParams = {
|
|
245
248
|
target: string;
|
246
249
|
feeMultiplier?: number | undefined;
|
247
250
|
};
|
251
|
+
export type SendTxWithSignerParams = {
|
252
|
+
amount: BigNumber;
|
253
|
+
target: string;
|
254
|
+
provider: EthereumProvider;
|
255
|
+
};
|
248
256
|
export type TurboDataItemSignerParams = {
|
249
257
|
logger: TurboLogger;
|
250
258
|
signer: TurboSigner;
|
@@ -254,6 +262,7 @@ export interface TurboDataItemSigner {
|
|
254
262
|
generateSignedRequestHeaders(): Promise<TurboSignedRequestHeaders>;
|
255
263
|
signData(dataToSign: Uint8Array): Promise<Uint8Array>;
|
256
264
|
getPublicKey(): Promise<Buffer>;
|
265
|
+
sendTransaction(p: SendTxWithSignerParams): Promise<string>;
|
257
266
|
}
|
258
267
|
export interface TurboUnauthenticatedPaymentServiceInterface {
|
259
268
|
getSupportedCurrencies(): Promise<TurboCurrenciesResponse>;
|
package/lib/types/types.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,eAAe,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAChD,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AACzC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,oBAAoB,CAAC;AACxD,MAAM,MAAM,QAAQ,GAChB,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AACV,MAAM,MAAM,OAAO,GAAG,eAAe,GAAG,gBAAgB,GAAG,QAAQ,CAAC;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|