@yaswap/evm 2.0.0
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/CHANGELOG.md +5 -0
- package/dist/lib/chain/EvmChainProvider.d.ts +86 -0
- package/dist/lib/chain/EvmChainProvider.js +237 -0
- package/dist/lib/chain/EvmChainProvider.js.map +1 -0
- package/dist/lib/chain/EvmMulticallProvider.d.ts +96 -0
- package/dist/lib/chain/EvmMulticallProvider.js +78 -0
- package/dist/lib/chain/EvmMulticallProvider.js.map +1 -0
- package/dist/lib/chain/OptimismChainProvider.d.ts +14 -0
- package/dist/lib/chain/OptimismChainProvider.js +56 -0
- package/dist/lib/chain/OptimismChainProvider.js.map +1 -0
- package/dist/lib/fee/EIP1559FeeApiProvider/ethereum.d.ts +27 -0
- package/dist/lib/fee/EIP1559FeeApiProvider/ethereum.js +40 -0
- package/dist/lib/fee/EIP1559FeeApiProvider/ethereum.js.map +1 -0
- package/dist/lib/fee/EIP1559FeeApiProvider/index.d.ts +9 -0
- package/dist/lib/fee/EIP1559FeeApiProvider/index.js +46 -0
- package/dist/lib/fee/EIP1559FeeApiProvider/index.js.map +1 -0
- package/dist/lib/fee/EIP1559FeeApiProvider/polygon.d.ts +19 -0
- package/dist/lib/fee/EIP1559FeeApiProvider/polygon.js +40 -0
- package/dist/lib/fee/EIP1559FeeApiProvider/polygon.js.map +1 -0
- package/dist/lib/fee/EIP1559FeeProvider.d.ts +10 -0
- package/dist/lib/fee/EIP1559FeeProvider.js +73 -0
- package/dist/lib/fee/EIP1559FeeProvider.js.map +1 -0
- package/dist/lib/fee/RpcFeeProvider.d.ts +10 -0
- package/dist/lib/fee/RpcFeeProvider.js +46 -0
- package/dist/lib/fee/RpcFeeProvider.js.map +1 -0
- package/dist/lib/index.d.ts +19 -0
- package/dist/lib/index.js +62 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/naming/EnsProvider.d.ts +16 -0
- package/dist/lib/naming/EnsProvider.js +37 -0
- package/dist/lib/naming/EnsProvider.js.map +1 -0
- package/dist/lib/networks.d.ts +27 -0
- package/dist/lib/networks.js +192 -0
- package/dist/lib/networks.js.map +1 -0
- package/dist/lib/nft/CovalentNftProvider.d.ts +11 -0
- package/dist/lib/nft/CovalentNftProvider.js +67 -0
- package/dist/lib/nft/CovalentNftProvider.js.map +1 -0
- package/dist/lib/nft/EvmNftProvider.d.ts +34 -0
- package/dist/lib/nft/EvmNftProvider.js +197 -0
- package/dist/lib/nft/EvmNftProvider.js.map +1 -0
- package/dist/lib/nft/InfuraNftProvider.d.ts +11 -0
- package/dist/lib/nft/InfuraNftProvider.js +69 -0
- package/dist/lib/nft/InfuraNftProvider.js.map +1 -0
- package/dist/lib/nft/OpenSeaNftProvider.d.ts +10 -0
- package/dist/lib/nft/OpenSeaNftProvider.js +67 -0
- package/dist/lib/nft/OpenSeaNftProvider.js.map +1 -0
- package/dist/lib/swap/EvmBaseSwapProvider.d.ts +31 -0
- package/dist/lib/swap/EvmBaseSwapProvider.js +314 -0
- package/dist/lib/swap/EvmBaseSwapProvider.js.map +1 -0
- package/dist/lib/swap/EvmSwapProvider.d.ts +21 -0
- package/dist/lib/swap/EvmSwapProvider.js +205 -0
- package/dist/lib/swap/EvmSwapProvider.js.map +1 -0
- package/dist/lib/typechain/ERC1155.d.ts +187 -0
- package/dist/lib/typechain/ERC1155.js +3 -0
- package/dist/lib/typechain/ERC1155.js.map +1 -0
- package/dist/lib/typechain/ERC165.d.ts +43 -0
- package/dist/lib/typechain/ERC165.js +3 -0
- package/dist/lib/typechain/ERC165.js.map +1 -0
- package/dist/lib/typechain/ERC20.d.ts +193 -0
- package/dist/lib/typechain/ERC20.js +3 -0
- package/dist/lib/typechain/ERC20.js.map +1 -0
- package/dist/lib/typechain/ERC721.d.ts +220 -0
- package/dist/lib/typechain/ERC721.js +3 -0
- package/dist/lib/typechain/ERC721.js.map +1 -0
- package/dist/lib/typechain/IERC1155.d.ts +179 -0
- package/dist/lib/typechain/IERC1155.js +3 -0
- package/dist/lib/typechain/IERC1155.js.map +1 -0
- package/dist/lib/typechain/IERC1155MetadataURI.d.ts +187 -0
- package/dist/lib/typechain/IERC1155MetadataURI.js +3 -0
- package/dist/lib/typechain/IERC1155MetadataURI.js.map +1 -0
- package/dist/lib/typechain/IERC1155Receiver.d.ts +75 -0
- package/dist/lib/typechain/IERC1155Receiver.js +3 -0
- package/dist/lib/typechain/IERC1155Receiver.js.map +1 -0
- package/dist/lib/typechain/IERC165.d.ts +43 -0
- package/dist/lib/typechain/IERC165.js +3 -0
- package/dist/lib/typechain/IERC165.js.map +1 -0
- package/dist/lib/typechain/IERC20.d.ts +137 -0
- package/dist/lib/typechain/IERC20.js +3 -0
- package/dist/lib/typechain/IERC20.js.map +1 -0
- package/dist/lib/typechain/IERC20Metadata.d.ts +161 -0
- package/dist/lib/typechain/IERC20Metadata.js +3 -0
- package/dist/lib/typechain/IERC20Metadata.js.map +1 -0
- package/dist/lib/typechain/IERC721.d.ts +202 -0
- package/dist/lib/typechain/IERC721.js +3 -0
- package/dist/lib/typechain/IERC721.js.map +1 -0
- package/dist/lib/typechain/IERC721Metadata.d.ts +226 -0
- package/dist/lib/typechain/IERC721Metadata.js +3 -0
- package/dist/lib/typechain/IERC721Metadata.js.map +1 -0
- package/dist/lib/typechain/IERC721Receiver.d.ts +51 -0
- package/dist/lib/typechain/IERC721Receiver.js +3 -0
- package/dist/lib/typechain/IERC721Receiver.js.map +1 -0
- package/dist/lib/typechain/ILiqualityHTLC.d.ts +142 -0
- package/dist/lib/typechain/ILiqualityHTLC.js +3 -0
- package/dist/lib/typechain/ILiqualityHTLC.js.map +1 -0
- package/dist/lib/typechain/LiqualityHTLC.d.ts +192 -0
- package/dist/lib/typechain/LiqualityHTLC.js +3 -0
- package/dist/lib/typechain/LiqualityHTLC.js.map +1 -0
- package/dist/lib/typechain/Multicall3.d.ts +293 -0
- package/dist/lib/typechain/Multicall3.js +3 -0
- package/dist/lib/typechain/Multicall3.js.map +1 -0
- package/dist/lib/typechain/TestERC20.d.ts +209 -0
- package/dist/lib/typechain/TestERC20.js +3 -0
- package/dist/lib/typechain/TestERC20.js.map +1 -0
- package/dist/lib/typechain/common.d.ts +21 -0
- package/dist/lib/typechain/common.js +3 -0
- package/dist/lib/typechain/common.js.map +1 -0
- package/dist/lib/typechain/factories/ERC1155__factory.d.ts +60 -0
- package/dist/lib/typechain/factories/ERC1155__factory.js +364 -0
- package/dist/lib/typechain/factories/ERC1155__factory.js.map +1 -0
- package/dist/lib/typechain/factories/ERC165__factory.d.ts +22 -0
- package/dist/lib/typechain/factories/ERC165__factory.js +39 -0
- package/dist/lib/typechain/factories/ERC165__factory.js.map +1 -0
- package/dist/lib/typechain/factories/ERC20__factory.d.ts +60 -0
- package/dist/lib/typechain/factories/ERC20__factory.js +327 -0
- package/dist/lib/typechain/factories/ERC20__factory.js.map +1 -0
- package/dist/lib/typechain/factories/ERC721__factory.d.ts +60 -0
- package/dist/lib/typechain/factories/ERC721__factory.js +387 -0
- package/dist/lib/typechain/factories/ERC721__factory.js.map +1 -0
- package/dist/lib/typechain/factories/IERC1155MetadataURI__factory.d.ts +35 -0
- package/dist/lib/typechain/factories/IERC1155MetadataURI__factory.js +332 -0
- package/dist/lib/typechain/factories/IERC1155MetadataURI__factory.js.map +1 -0
- package/dist/lib/typechain/factories/IERC1155Receiver__factory.d.ts +22 -0
- package/dist/lib/typechain/factories/IERC1155Receiver__factory.js +117 -0
- package/dist/lib/typechain/factories/IERC1155Receiver__factory.js.map +1 -0
- package/dist/lib/typechain/factories/IERC1155__factory.d.ts +35 -0
- package/dist/lib/typechain/factories/IERC1155__factory.js +313 -0
- package/dist/lib/typechain/factories/IERC1155__factory.js.map +1 -0
- package/dist/lib/typechain/factories/IERC165__factory.d.ts +22 -0
- package/dist/lib/typechain/factories/IERC165__factory.js +39 -0
- package/dist/lib/typechain/factories/IERC165__factory.js.map +1 -0
- package/dist/lib/typechain/factories/IERC20Metadata__factory.d.ts +35 -0
- package/dist/lib/typechain/factories/IERC20Metadata__factory.js +242 -0
- package/dist/lib/typechain/factories/IERC20Metadata__factory.js.map +1 -0
- package/dist/lib/typechain/factories/IERC20__factory.d.ts +35 -0
- package/dist/lib/typechain/factories/IERC20__factory.js +203 -0
- package/dist/lib/typechain/factories/IERC20__factory.js.map +1 -0
- package/dist/lib/typechain/factories/IERC721Metadata__factory.d.ts +35 -0
- package/dist/lib/typechain/factories/IERC721Metadata__factory.js +350 -0
- package/dist/lib/typechain/factories/IERC721Metadata__factory.js.map +1 -0
- package/dist/lib/typechain/factories/IERC721Receiver__factory.d.ts +22 -0
- package/dist/lib/typechain/factories/IERC721Receiver__factory.js +54 -0
- package/dist/lib/typechain/factories/IERC721Receiver__factory.js.map +1 -0
- package/dist/lib/typechain/factories/IERC721__factory.d.ts +35 -0
- package/dist/lib/typechain/factories/IERC721__factory.js +305 -0
- package/dist/lib/typechain/factories/IERC721__factory.js.map +1 -0
- package/dist/lib/typechain/factories/ILiqualityHTLC__factory.d.ts +69 -0
- package/dist/lib/typechain/factories/ILiqualityHTLC__factory.js +225 -0
- package/dist/lib/typechain/factories/ILiqualityHTLC__factory.js.map +1 -0
- package/dist/lib/typechain/factories/LiqualityHTLC__factory.d.ts +87 -0
- package/dist/lib/typechain/factories/LiqualityHTLC__factory.js +290 -0
- package/dist/lib/typechain/factories/LiqualityHTLC__factory.js.map +1 -0
- package/dist/lib/typechain/factories/Multicall3__factory.d.ts +56 -0
- package/dist/lib/typechain/factories/Multicall3__factory.js +479 -0
- package/dist/lib/typechain/factories/Multicall3__factory.js.map +1 -0
- package/dist/lib/typechain/factories/TestERC20__factory.d.ts +56 -0
- package/dist/lib/typechain/factories/TestERC20__factory.js +334 -0
- package/dist/lib/typechain/factories/TestERC20__factory.js.map +1 -0
- package/dist/lib/typechain/index.d.ts +34 -0
- package/dist/lib/typechain/index.js +38 -0
- package/dist/lib/typechain/index.js.map +1 -0
- package/dist/lib/types.d.ts +107 -0
- package/dist/lib/types.js +9 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utils.d.ts +35 -0
- package/dist/lib/utils.js +184 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/wallet/EvmBaseWalletProvider.d.ts +19 -0
- package/dist/lib/wallet/EvmBaseWalletProvider.js +153 -0
- package/dist/lib/wallet/EvmBaseWalletProvider.js.map +1 -0
- package/dist/lib/wallet/EvmWalletProvider.d.ts +20 -0
- package/dist/lib/wallet/EvmWalletProvider.js +91 -0
- package/dist/lib/wallet/EvmWalletProvider.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvmNetworks = void 0;
|
|
4
|
+
const ethereum_mainnet = {
|
|
5
|
+
name: 'ethereum_mainnet',
|
|
6
|
+
coinType: '60',
|
|
7
|
+
networkId: 1,
|
|
8
|
+
chainId: 1,
|
|
9
|
+
isTestnet: false,
|
|
10
|
+
};
|
|
11
|
+
const ganache = {
|
|
12
|
+
name: 'Ganache-EVM',
|
|
13
|
+
coinType: '60',
|
|
14
|
+
isTestnet: true,
|
|
15
|
+
chainId: 1337,
|
|
16
|
+
networkId: 1337,
|
|
17
|
+
rpcUrl: 'http://localhost:8545',
|
|
18
|
+
};
|
|
19
|
+
const classic_mainnet = {
|
|
20
|
+
name: 'classic_mainnet',
|
|
21
|
+
coinType: '61',
|
|
22
|
+
networkId: 1,
|
|
23
|
+
chainId: 61,
|
|
24
|
+
isTestnet: false,
|
|
25
|
+
};
|
|
26
|
+
const ropsten = {
|
|
27
|
+
name: 'ropsten',
|
|
28
|
+
coinType: '60',
|
|
29
|
+
networkId: 3,
|
|
30
|
+
chainId: 3,
|
|
31
|
+
isTestnet: true,
|
|
32
|
+
};
|
|
33
|
+
const rinkeby = {
|
|
34
|
+
name: 'rinkeby',
|
|
35
|
+
coinType: '60',
|
|
36
|
+
networkId: 4,
|
|
37
|
+
chainId: 4,
|
|
38
|
+
isTestnet: true,
|
|
39
|
+
};
|
|
40
|
+
const kovan = {
|
|
41
|
+
name: 'kovan',
|
|
42
|
+
coinType: '60',
|
|
43
|
+
networkId: 42,
|
|
44
|
+
chainId: 42,
|
|
45
|
+
isTestnet: true,
|
|
46
|
+
};
|
|
47
|
+
const goerli = {
|
|
48
|
+
name: 'goerli',
|
|
49
|
+
coinType: '60',
|
|
50
|
+
networkId: 5,
|
|
51
|
+
chainId: 5,
|
|
52
|
+
isTestnet: true,
|
|
53
|
+
};
|
|
54
|
+
const rsk_mainnet = {
|
|
55
|
+
name: 'rsk_mainnet',
|
|
56
|
+
coinType: '60',
|
|
57
|
+
networkId: 30,
|
|
58
|
+
chainId: 30,
|
|
59
|
+
isTestnet: false,
|
|
60
|
+
};
|
|
61
|
+
const rsk_testnet = {
|
|
62
|
+
name: 'rsk_testnet',
|
|
63
|
+
coinType: '60',
|
|
64
|
+
networkId: 31,
|
|
65
|
+
chainId: 31,
|
|
66
|
+
isTestnet: true,
|
|
67
|
+
};
|
|
68
|
+
const rsk_regtest = {
|
|
69
|
+
name: 'rsk_regtest',
|
|
70
|
+
coinType: '37310',
|
|
71
|
+
networkId: 33,
|
|
72
|
+
chainId: 33,
|
|
73
|
+
isTestnet: true,
|
|
74
|
+
};
|
|
75
|
+
const bsc_mainnet = {
|
|
76
|
+
name: 'bsc_mainnet',
|
|
77
|
+
coinType: '60',
|
|
78
|
+
networkId: 56,
|
|
79
|
+
chainId: 56,
|
|
80
|
+
isTestnet: false,
|
|
81
|
+
};
|
|
82
|
+
const bsc_testnet = {
|
|
83
|
+
name: 'bsc_testnet',
|
|
84
|
+
coinType: '60',
|
|
85
|
+
networkId: 97,
|
|
86
|
+
chainId: 97,
|
|
87
|
+
isTestnet: true,
|
|
88
|
+
};
|
|
89
|
+
const polygon_mainnet = {
|
|
90
|
+
name: 'polygon_mainnet',
|
|
91
|
+
coinType: '60',
|
|
92
|
+
networkId: 137,
|
|
93
|
+
chainId: 137,
|
|
94
|
+
isTestnet: false,
|
|
95
|
+
};
|
|
96
|
+
const polygon_testnet = {
|
|
97
|
+
name: 'polygon_testnet',
|
|
98
|
+
coinType: '60',
|
|
99
|
+
networkId: 80001,
|
|
100
|
+
chainId: 80001,
|
|
101
|
+
isTestnet: true,
|
|
102
|
+
};
|
|
103
|
+
const arbitrum_mainnet = {
|
|
104
|
+
name: 'arbitrum_mainnet',
|
|
105
|
+
coinType: '60',
|
|
106
|
+
networkId: 42161,
|
|
107
|
+
chainId: 42161,
|
|
108
|
+
isTestnet: false,
|
|
109
|
+
};
|
|
110
|
+
const arbitrum_testnet = {
|
|
111
|
+
name: 'arbitrum_testnet',
|
|
112
|
+
coinType: '60',
|
|
113
|
+
networkId: 421611,
|
|
114
|
+
chainId: 421611,
|
|
115
|
+
isTestnet: true,
|
|
116
|
+
};
|
|
117
|
+
const fuse_mainnet = {
|
|
118
|
+
name: 'fuse_mainnet',
|
|
119
|
+
coinType: '60',
|
|
120
|
+
networkId: 122,
|
|
121
|
+
chainId: 122,
|
|
122
|
+
isTestnet: false,
|
|
123
|
+
};
|
|
124
|
+
const fuse_testnet = {
|
|
125
|
+
name: 'fuse_testnet',
|
|
126
|
+
coinType: '60',
|
|
127
|
+
networkId: 122,
|
|
128
|
+
chainId: 122,
|
|
129
|
+
isTestnet: true,
|
|
130
|
+
};
|
|
131
|
+
const avax_mainnet = {
|
|
132
|
+
name: 'avalanche_mainnet',
|
|
133
|
+
coinType: '60',
|
|
134
|
+
networkId: 43114,
|
|
135
|
+
chainId: 43114,
|
|
136
|
+
isTestnet: false,
|
|
137
|
+
};
|
|
138
|
+
const avax_testnet = {
|
|
139
|
+
name: 'avalanche_testnet',
|
|
140
|
+
coinType: '60',
|
|
141
|
+
networkId: 43113,
|
|
142
|
+
chainId: 43113,
|
|
143
|
+
isTestnet: true,
|
|
144
|
+
};
|
|
145
|
+
const optimism_mainnet = {
|
|
146
|
+
name: 'optimism_mainnet',
|
|
147
|
+
coinType: '60',
|
|
148
|
+
networkId: 10,
|
|
149
|
+
chainId: 10,
|
|
150
|
+
isTestnet: false,
|
|
151
|
+
};
|
|
152
|
+
const optimism_testnet = {
|
|
153
|
+
name: 'optimism_testnet',
|
|
154
|
+
coinType: '60',
|
|
155
|
+
networkId: 69,
|
|
156
|
+
chainId: 69,
|
|
157
|
+
isTestnet: true,
|
|
158
|
+
};
|
|
159
|
+
const local = {
|
|
160
|
+
name: 'local',
|
|
161
|
+
coinType: '60',
|
|
162
|
+
networkId: 1337,
|
|
163
|
+
chainId: 1337,
|
|
164
|
+
isTestnet: true,
|
|
165
|
+
};
|
|
166
|
+
const EvmNetworks = {
|
|
167
|
+
ethereum_mainnet,
|
|
168
|
+
classic_mainnet,
|
|
169
|
+
ganache,
|
|
170
|
+
ropsten,
|
|
171
|
+
rinkeby,
|
|
172
|
+
kovan,
|
|
173
|
+
goerli,
|
|
174
|
+
rsk_mainnet,
|
|
175
|
+
rsk_testnet,
|
|
176
|
+
rsk_regtest,
|
|
177
|
+
bsc_mainnet,
|
|
178
|
+
bsc_testnet,
|
|
179
|
+
polygon_mainnet,
|
|
180
|
+
polygon_testnet,
|
|
181
|
+
arbitrum_testnet,
|
|
182
|
+
arbitrum_mainnet,
|
|
183
|
+
avax_mainnet,
|
|
184
|
+
avax_testnet,
|
|
185
|
+
fuse_testnet,
|
|
186
|
+
fuse_mainnet,
|
|
187
|
+
optimism_mainnet,
|
|
188
|
+
optimism_testnet,
|
|
189
|
+
local,
|
|
190
|
+
};
|
|
191
|
+
exports.EvmNetworks = EvmNetworks;
|
|
192
|
+
//# sourceMappingURL=networks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"networks.js","sourceRoot":"","sources":["../../lib/networks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NFTAsset } from '@yaswap/types';
|
|
2
|
+
import { BaseProvider } from '@ethersproject/providers';
|
|
3
|
+
import { NftProviderConfig } from '../types';
|
|
4
|
+
import { EvmBaseWalletProvider } from '../wallet/EvmBaseWalletProvider';
|
|
5
|
+
import { EvmNftProvider } from './EvmNftProvider';
|
|
6
|
+
export declare class CovalentNftProvider extends EvmNftProvider {
|
|
7
|
+
private readonly _config;
|
|
8
|
+
private readonly _httpClient;
|
|
9
|
+
constructor(walletProvider: EvmBaseWalletProvider<BaseProvider>, config: NftProviderConfig);
|
|
10
|
+
fetch(): Promise<NFTAsset[]>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CovalentNftProvider = void 0;
|
|
13
|
+
const client_1 = require("@yaswap/client");
|
|
14
|
+
const types_1 = require("@yaswap/types");
|
|
15
|
+
const types_2 = require("../types");
|
|
16
|
+
const EvmNftProvider_1 = require("./EvmNftProvider");
|
|
17
|
+
class CovalentNftProvider extends EvmNftProvider_1.EvmNftProvider {
|
|
18
|
+
constructor(walletProvider, config) {
|
|
19
|
+
super(walletProvider);
|
|
20
|
+
this._config = config;
|
|
21
|
+
this._httpClient = new client_1.HttpClient({
|
|
22
|
+
baseURL: config.url,
|
|
23
|
+
responseType: 'text',
|
|
24
|
+
transformResponse: undefined,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
fetch() {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const [userAddress, network] = yield Promise.all([this.walletProvider.getAddress(), this.walletProvider.getConnectedNetwork()]);
|
|
30
|
+
const response = yield this._httpClient.nodeGet(`/${network.chainId}/address/${userAddress}/balances_v2/?format=JSON&nft=true&no-nft-fetch=false&key=${this._config.apiKey}`);
|
|
31
|
+
return response.data.items.reduce((result, asset) => {
|
|
32
|
+
var _a;
|
|
33
|
+
if (asset.type === types_1.AssetTypes.nft) {
|
|
34
|
+
const { contract_name, contract_ticker_symbol, contract_address, supports_erc, nft_data } = asset;
|
|
35
|
+
const schema_type = (_a = supports_erc === null || supports_erc === void 0 ? void 0 : supports_erc.pop()) === null || _a === void 0 ? void 0 : _a.toUpperCase();
|
|
36
|
+
if (schema_type in types_2.NftTypes && contract_address) {
|
|
37
|
+
let nftAsset = {
|
|
38
|
+
token_id: null,
|
|
39
|
+
asset_contract: {
|
|
40
|
+
address: contract_address,
|
|
41
|
+
name: contract_name,
|
|
42
|
+
symbol: contract_ticker_symbol,
|
|
43
|
+
},
|
|
44
|
+
collection: {
|
|
45
|
+
name: contract_name,
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
this.cache[contract_address] = {
|
|
49
|
+
contract: this.schemas[schema_type].attach(contract_address),
|
|
50
|
+
schema: schema_type,
|
|
51
|
+
};
|
|
52
|
+
if (nft_data.length) {
|
|
53
|
+
nft_data.forEach((data) => {
|
|
54
|
+
const { external_data } = data;
|
|
55
|
+
nftAsset = Object.assign(Object.assign({}, nftAsset), { token_id: data === null || data === void 0 ? void 0 : data.token_id, name: external_data === null || external_data === void 0 ? void 0 : external_data.name, description: external_data === null || external_data === void 0 ? void 0 : external_data.description, external_link: external_data === null || external_data === void 0 ? void 0 : external_data.external_url, image_original_url: external_data === null || external_data === void 0 ? void 0 : external_data.image, image_preview_url: external_data === null || external_data === void 0 ? void 0 : external_data.image, image_thumbnail_url: external_data === null || external_data === void 0 ? void 0 : external_data.image });
|
|
56
|
+
result.push(nftAsset);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}, []);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.CovalentNftProvider = CovalentNftProvider;
|
|
67
|
+
//# sourceMappingURL=CovalentNftProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CovalentNftProvider.js","sourceRoot":"","sources":["../../../lib/nft/CovalentNftProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Nft } from '@yaswap/client';
|
|
2
|
+
import { AddressType, BigNumber, FeeType, NFTAsset, Transaction } from '@yaswap/types';
|
|
3
|
+
import { Signer } from '@ethersproject/abstract-signer';
|
|
4
|
+
import { BaseProvider } from '@ethersproject/providers';
|
|
5
|
+
import { ERC1155, ERC721 } from '../typechain';
|
|
6
|
+
import { EthersTransactionResponse, NftTypes } from '../types';
|
|
7
|
+
import { EvmBaseWalletProvider } from '../wallet/EvmBaseWalletProvider';
|
|
8
|
+
declare type NftContract = ERC721 | ERC1155;
|
|
9
|
+
declare type NftInfo = {
|
|
10
|
+
contract: NftContract;
|
|
11
|
+
schema: NftTypes;
|
|
12
|
+
};
|
|
13
|
+
export declare abstract class EvmNftProvider extends Nft<BaseProvider, Signer> {
|
|
14
|
+
private _erc721;
|
|
15
|
+
private _erc1155;
|
|
16
|
+
protected schemas: Record<string, NftContract>;
|
|
17
|
+
protected cache: Record<string, NftInfo>;
|
|
18
|
+
protected walletProvider: EvmBaseWalletProvider<BaseProvider>;
|
|
19
|
+
constructor(walletProvider: EvmBaseWalletProvider<BaseProvider>);
|
|
20
|
+
transfer(contractAddress: AddressType, receiver: AddressType, tokenIDs: string[], amounts?: number[], data?: string, fee?: FeeType): Promise<Transaction<EthersTransactionResponse>>;
|
|
21
|
+
balanceOf(contractAddress: AddressType, owners: AddressType[], tokenIDs: number[]): Promise<BigNumber | BigNumber[]>;
|
|
22
|
+
approve(contractAddress: AddressType, operator: AddressType, tokenID: number, fee?: FeeType): Promise<Transaction<EthersTransactionResponse>>;
|
|
23
|
+
approveAll(contractAddress: AddressType, operator: AddressType, state: boolean, fee?: FeeType): Promise<Transaction<EthersTransactionResponse>>;
|
|
24
|
+
isApprovedForAll(contractAddress: AddressType, operator: AddressType): Promise<boolean>;
|
|
25
|
+
estimateTransfer(contractAddress: AddressType, receiver: AddressType, tokenIDs: string[], amounts?: number[], data?: string): Promise<BigNumber>;
|
|
26
|
+
estimateApprove(contractAddress: AddressType, operator: AddressType, tokenID: number): Promise<BigNumber>;
|
|
27
|
+
estimateApproveAll(contractAddress: AddressType, operator: AddressType, state: boolean): Promise<BigNumber>;
|
|
28
|
+
fetch(): Promise<NFTAsset[]>;
|
|
29
|
+
private _cacheGet;
|
|
30
|
+
private populateApprove;
|
|
31
|
+
private populateTrasnfer;
|
|
32
|
+
private populateApproveAll;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.EvmNftProvider = void 0;
|
|
13
|
+
const client_1 = require("@yaswap/client");
|
|
14
|
+
const errors_1 = require("@yaswap/errors");
|
|
15
|
+
const types_1 = require("@yaswap/types");
|
|
16
|
+
const constants_1 = require("@ethersproject/constants");
|
|
17
|
+
const typechain_1 = require("../typechain");
|
|
18
|
+
const types_2 = require("../types");
|
|
19
|
+
const utils_1 = require("../utils");
|
|
20
|
+
class EvmNftProvider extends client_1.Nft {
|
|
21
|
+
constructor(walletProvider) {
|
|
22
|
+
super(walletProvider);
|
|
23
|
+
this._erc721 = typechain_1.ERC721__factory.connect(constants_1.AddressZero, this.walletProvider.getSigner());
|
|
24
|
+
this._erc1155 = typechain_1.ERC1155__factory.connect(constants_1.AddressZero, this.walletProvider.getSigner());
|
|
25
|
+
this.cache = {};
|
|
26
|
+
this.schemas = { ERC721: this._erc721, ERC1155: this._erc1155 };
|
|
27
|
+
}
|
|
28
|
+
transfer(contractAddress, receiver, tokenIDs, amounts, data = '0x', fee) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
const tx = yield this.populateTrasnfer(contractAddress, receiver, tokenIDs, amounts, data);
|
|
31
|
+
return yield this.walletProvider.sendTransaction((0, utils_1.toEthereumTxRequest)(tx, fee));
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
balanceOf(contractAddress, owners, tokenIDs) {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
const { schema, contract } = yield this._cacheGet(contractAddress);
|
|
37
|
+
const _owners = owners.map((owner) => owner.toString());
|
|
38
|
+
switch (schema) {
|
|
39
|
+
case types_2.NftTypes.ERC721: {
|
|
40
|
+
const _contract = contract;
|
|
41
|
+
const balance = yield _contract.balanceOf(_owners[0]);
|
|
42
|
+
return new types_1.BigNumber(balance.toString());
|
|
43
|
+
}
|
|
44
|
+
case types_2.NftTypes.ERC1155: {
|
|
45
|
+
const _contract = contract;
|
|
46
|
+
if (tokenIDs.length > 1) {
|
|
47
|
+
const balances = yield _contract.balanceOfBatch(_owners, tokenIDs);
|
|
48
|
+
return balances.map((b) => new types_1.BigNumber(b.toString()));
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return new types_1.BigNumber((yield _contract.balanceOf(_owners[0], tokenIDs[0])).toString());
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
default: {
|
|
55
|
+
throw new errors_1.UnsupportedMethodError(`Unsupported NFT type: ${schema}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
approve(contractAddress, operator, tokenID, fee) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
const tx = yield this.populateApprove(contractAddress, operator, tokenID);
|
|
63
|
+
return this.walletProvider.sendTransaction((0, utils_1.toEthereumTxRequest)(tx, fee));
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
approveAll(contractAddress, operator, state, fee) {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
const tx = yield this.populateApproveAll(contractAddress, operator, state);
|
|
69
|
+
return this.walletProvider.sendTransaction((0, utils_1.toEthereumTxRequest)(tx, fee));
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
isApprovedForAll(contractAddress, operator) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const { contract } = yield this._cacheGet(contractAddress);
|
|
75
|
+
const owner = yield this.walletProvider.getAddress();
|
|
76
|
+
return yield contract.isApprovedForAll(owner.toString(), operator.toString());
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
estimateTransfer(contractAddress, receiver, tokenIDs, amounts, data = '0x') {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
const tx = yield this.populateTrasnfer(contractAddress, receiver, tokenIDs, amounts, data);
|
|
82
|
+
const estimation = yield this.walletProvider.estimateGas(tx);
|
|
83
|
+
return new types_1.BigNumber(estimation.toString());
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
estimateApprove(contractAddress, operator, tokenID) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const tx = yield this.populateApprove(contractAddress, operator, tokenID);
|
|
89
|
+
const estimation = yield this.walletProvider.estimateGas(tx);
|
|
90
|
+
return new types_1.BigNumber(estimation.toString());
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
estimateApproveAll(contractAddress, operator, state) {
|
|
94
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
const tx = yield this.populateApproveAll(contractAddress, operator, state);
|
|
96
|
+
const estimation = yield this.walletProvider.estimateGas(tx);
|
|
97
|
+
return new types_1.BigNumber(estimation.toString());
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
fetch() {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
throw new Error('Method not implemented');
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
_cacheGet(contractAddress) {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
const _contractAddress = contractAddress.toString();
|
|
108
|
+
if (this.cache[_contractAddress]) {
|
|
109
|
+
return this.cache[_contractAddress];
|
|
110
|
+
}
|
|
111
|
+
const ERC721_INTERFACE = {
|
|
112
|
+
id: '0x80ac58cd',
|
|
113
|
+
type: types_2.NftTypes.ERC721,
|
|
114
|
+
};
|
|
115
|
+
const ERC1155_INTERFACE = {
|
|
116
|
+
id: '0xd9b67a26',
|
|
117
|
+
type: types_2.NftTypes.ERC1155,
|
|
118
|
+
};
|
|
119
|
+
for (const _interface of [ERC721_INTERFACE, ERC1155_INTERFACE]) {
|
|
120
|
+
// we can use erc721 because both erc721 and erc1155 support that interface
|
|
121
|
+
const isSupported = yield this._erc721.attach(_contractAddress).supportsInterface(_interface.id);
|
|
122
|
+
if (isSupported) {
|
|
123
|
+
this.cache[_contractAddress] = {
|
|
124
|
+
contract: this.schemas[_interface.type].attach(_contractAddress),
|
|
125
|
+
schema: _interface.type,
|
|
126
|
+
};
|
|
127
|
+
return this.cache[_contractAddress];
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
throw new errors_1.UnsupportedMethodError(`Cannot find the data for ${_contractAddress}`);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
populateApprove(contractAddress, operator, tokenID) {
|
|
134
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
+
const { schema, contract } = yield this._cacheGet(contractAddress);
|
|
136
|
+
const _operator = operator.toString();
|
|
137
|
+
let tx;
|
|
138
|
+
switch (schema) {
|
|
139
|
+
case types_2.NftTypes.ERC721: {
|
|
140
|
+
const _contract = contract;
|
|
141
|
+
tx = yield _contract.populateTransaction.approve(_operator, tokenID);
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
case types_2.NftTypes.ERC1155: {
|
|
145
|
+
const _contract = contract;
|
|
146
|
+
tx = yield _contract.populateTransaction.setApprovalForAll(_operator, true);
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
default: {
|
|
150
|
+
throw new errors_1.UnsupportedMethodError(`Unsupported NFT type: ${schema}`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return tx;
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
populateTrasnfer(contractAddress, receiver, tokenIDs, amounts, data = '0x') {
|
|
157
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
158
|
+
const { schema, contract } = yield this._cacheGet(contractAddress);
|
|
159
|
+
const owner = (yield this.walletProvider.getAddress()).toString();
|
|
160
|
+
const to = receiver.toString();
|
|
161
|
+
let tx;
|
|
162
|
+
switch (schema) {
|
|
163
|
+
case types_2.NftTypes.ERC721: {
|
|
164
|
+
if (tokenIDs.length !== 1) {
|
|
165
|
+
throw new Error(`nft.transfer supports exactly 1 tokenID transfer for ERC721. received ${tokenIDs.join(', ')}`);
|
|
166
|
+
}
|
|
167
|
+
const _contract = contract;
|
|
168
|
+
tx = yield _contract.populateTransaction['safeTransferFrom(address,address,uint256,bytes)'](owner, to, tokenIDs[0], data);
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
case types_2.NftTypes.ERC1155: {
|
|
172
|
+
const _contract = contract;
|
|
173
|
+
if (tokenIDs.length > 1) {
|
|
174
|
+
tx = yield _contract.populateTransaction.safeBatchTransferFrom(owner, to, tokenIDs, amounts, data);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
tx = yield _contract.populateTransaction.safeTransferFrom(owner, to, tokenIDs[0], amounts[0], data);
|
|
178
|
+
}
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
default: {
|
|
182
|
+
throw new errors_1.UnsupportedMethodError(`Unsupported NFT type: ${schema}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return tx;
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
populateApproveAll(contractAddress, operator, state) {
|
|
189
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
190
|
+
const { contract } = yield this._cacheGet(contractAddress);
|
|
191
|
+
const tx = yield contract.populateTransaction.setApprovalForAll(operator.toString(), state);
|
|
192
|
+
return tx;
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
exports.EvmNftProvider = EvmNftProvider;
|
|
197
|
+
//# sourceMappingURL=EvmNftProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvmNftProvider.js","sourceRoot":"","sources":["../../../lib/nft/EvmNftProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NFTAsset } from '@yaswap/types';
|
|
2
|
+
import { BaseProvider } from '@ethersproject/providers';
|
|
3
|
+
import { NftProviderConfig } from '../types';
|
|
4
|
+
import { EvmBaseWalletProvider } from '../wallet/EvmBaseWalletProvider';
|
|
5
|
+
import { EvmNftProvider } from './EvmNftProvider';
|
|
6
|
+
export declare class InfuraNftProvider extends EvmNftProvider {
|
|
7
|
+
private readonly _config;
|
|
8
|
+
private readonly _httpClient;
|
|
9
|
+
constructor(walletProvider: EvmBaseWalletProvider<BaseProvider>, config: NftProviderConfig);
|
|
10
|
+
fetch(): Promise<NFTAsset[]>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.InfuraNftProvider = void 0;
|
|
13
|
+
const client_1 = require("@yaswap/client");
|
|
14
|
+
const types_1 = require("../types");
|
|
15
|
+
const EvmNftProvider_1 = require("./EvmNftProvider");
|
|
16
|
+
class InfuraNftProvider extends EvmNftProvider_1.EvmNftProvider {
|
|
17
|
+
constructor(walletProvider, config) {
|
|
18
|
+
super(walletProvider);
|
|
19
|
+
this._config = config;
|
|
20
|
+
this._httpClient = new client_1.HttpClient({
|
|
21
|
+
baseURL: config.url,
|
|
22
|
+
transformResponse: undefined,
|
|
23
|
+
headers: { Authorization: `Basic ${this._config.apiKey}` },
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
fetch() {
|
|
27
|
+
var _a;
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const [userAddress, network] = yield Promise.all([this.walletProvider.getAddress(), this.walletProvider.getConnectedNetwork()]);
|
|
30
|
+
const chainId = Number(network.chainId);
|
|
31
|
+
const response = yield this._httpClient.nodeGet(`/networks/${chainId}/accounts/${userAddress.toString()}/assets/nfts`);
|
|
32
|
+
return (((_a = response === null || response === void 0 ? void 0 : response.assets) === null || _a === void 0 ? void 0 : _a.reduce((result, nft) => {
|
|
33
|
+
var _a, _b, _c;
|
|
34
|
+
const { contract, tokenId, supply, type, metadata } = nft;
|
|
35
|
+
if (type in types_1.NftTypes && contract) {
|
|
36
|
+
this.cache[contract] = {
|
|
37
|
+
contract: this.schemas[type].attach(contract),
|
|
38
|
+
schema: type,
|
|
39
|
+
};
|
|
40
|
+
const _image = ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.image) === null || _a === void 0 ? void 0 : _a.replace('ipfs://', 'https://ipfs.io/ipfs/')) || '';
|
|
41
|
+
const description = ((_c = (_b = metadata === null || metadata === void 0 ? void 0 : metadata.attributes) === null || _b === void 0 ? void 0 : _b.find((i) => i.trait_type === 'Description')) === null || _c === void 0 ? void 0 : _c.value) || (metadata === null || metadata === void 0 ? void 0 : metadata.description);
|
|
42
|
+
const nftAsset = {
|
|
43
|
+
asset_contract: {
|
|
44
|
+
address: contract,
|
|
45
|
+
name: metadata === null || metadata === void 0 ? void 0 : metadata.name,
|
|
46
|
+
symbol: '',
|
|
47
|
+
},
|
|
48
|
+
collection: {
|
|
49
|
+
name: metadata === null || metadata === void 0 ? void 0 : metadata.name,
|
|
50
|
+
},
|
|
51
|
+
token_id: tokenId,
|
|
52
|
+
amount: supply,
|
|
53
|
+
standard: type,
|
|
54
|
+
name: metadata === null || metadata === void 0 ? void 0 : metadata.name,
|
|
55
|
+
description,
|
|
56
|
+
image_original_url: _image,
|
|
57
|
+
image_preview_url: _image,
|
|
58
|
+
image_thumbnail_url: _image,
|
|
59
|
+
external_link: '',
|
|
60
|
+
};
|
|
61
|
+
result.push(nftAsset);
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}, [])) || []);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.InfuraNftProvider = InfuraNftProvider;
|
|
69
|
+
//# sourceMappingURL=InfuraNftProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InfuraNftProvider.js","sourceRoot":"","sources":["../../../lib/nft/InfuraNftProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,oCAAuD;AAEvD,qDAAkD;AAElD,MAAa,iBAAkB,SAAQ,+BAAc;IAIjD,YAAY,cAAmD,EAAE,MAAyB;QACtF,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAU,CAAC;YAC9B,OAAO,EAAE,MAAM,CAAC,GAAG;YACnB,iBAAiB,EAAE,SAAS;YAC5B,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;SAC7D,CAAC,CAAC;IACP,CAAC;IAEK,KAAK;;;YACP,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAChI,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,OAAO,aAAa,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAEvH,OAAO,CACH,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,0CAAE,MAAM,CAAC,CAAC,MAAkB,EAAE,GAA2E,EAAE,EAAE;;gBACzH,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;gBAC1D,IAAI,IAAI,IAAI,gBAAQ,IAAI,QAAQ,EAAE;oBAC9B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG;wBACnB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;wBAC7C,MAAM,EAAE,IAAgB;qBAC3B,CAAC;oBACF,MAAM,MAAM,GAAG,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,OAAO,CAAC,SAAS,EAAE,uBAAuB,CAAC,KAAI,EAAE,CAAC;oBAClF,MAAM,WAAW,GACb,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,0CAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC,0CAAE,KAAK,MAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,CAAA,CAAC;oBAC3G,MAAM,QAAQ,GAAa;wBACvB,cAAc,EAAE;4BACZ,OAAO,EAAE,QAAQ;4BACjB,IAAI,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;4BACpB,MAAM,EAAE,EAAE;yBACb;wBACD,UAAU,EAAE;4BACR,IAAI,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;yBACvB;wBACD,QAAQ,EAAE,OAAO;wBACjB,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE,IAAI;wBACd,IAAI,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;wBACpB,WAAW;wBACX,kBAAkB,EAAE,MAAM;wBAC1B,iBAAiB,EAAE,MAAM;wBACzB,mBAAmB,EAAE,MAAM;wBAC3B,aAAa,EAAE,EAAE;qBACpB,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACzB;gBAED,OAAO,MAAM,CAAC;YAClB,CAAC,EAAE,EAAE,CAAC,KAAI,EAAE,CACf,CAAC;;KACL;CACJ;AA1DD,8CA0DC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NFTAsset } from '@yaswap/types';
|
|
2
|
+
import { BaseProvider } from '@ethersproject/providers';
|
|
3
|
+
import { NftProviderConfig } from '../types';
|
|
4
|
+
import { EvmBaseWalletProvider } from '../wallet/EvmBaseWalletProvider';
|
|
5
|
+
import { EvmNftProvider } from './EvmNftProvider';
|
|
6
|
+
export declare class OpenSeaNftProvider extends EvmNftProvider {
|
|
7
|
+
private readonly _httpClient;
|
|
8
|
+
constructor(walletProvider: EvmBaseWalletProvider<BaseProvider>, config: NftProviderConfig);
|
|
9
|
+
fetch(): Promise<NFTAsset[]>;
|
|
10
|
+
}
|