@quicknode/sdk 0.0.3
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 +107 -0
- package/package.json +25 -0
- package/src/client/client.d.ts +13 -0
- package/src/client/customApolloClient.d.ts +9 -0
- package/src/client/index.d.ts +1 -0
- package/src/index.d.ts +4 -0
- package/src/index.js +494 -0
- package/src/queries/index.d.ts +1 -0
- package/src/queries/nft/getNFTsByWalletAddress/getNFTsByWalletAddress.d.ts +5 -0
- package/src/queries/nft/getNFTsByWalletENS/getNFTsByWalletENS.d.ts +5 -0
- package/src/queries/nft/index.d.ts +2 -0
- package/src/queries/nft/nftQueries.d.ts +11 -0
- package/src/utils/removeNodesAndEdges.d.ts +4 -0
package/README.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+

|
|
2
|
+

|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
# QuickNode SDK
|
|
9
|
+
|
|
10
|
+
Currently has support for getting started with [Icy Tools GraphQL API](https://developers.icy.tools/) in a blink!
|
|
11
|
+
|
|
12
|
+
## Quick Start
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
import { QuickNodeSDK } from '@quicknode/sdk';
|
|
16
|
+
|
|
17
|
+
const client = new QuickNodeSDK();
|
|
18
|
+
|
|
19
|
+
client.nft
|
|
20
|
+
.getNFTsByWalletENS({
|
|
21
|
+
ensName: 'vitalik.eth',
|
|
22
|
+
first: 5,
|
|
23
|
+
})
|
|
24
|
+
.then((response) => console.log(response));
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Full example implementation [here](https://github.com/user/repo/blob/branch/other_file.md).
|
|
28
|
+
|
|
29
|
+
## Providing a config object to the client
|
|
30
|
+
|
|
31
|
+
> :warning: This client (and the underlying API) can be used without an icyApiKey, but its usage will be heavily rate limited, intended for trial and development purposes only.
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import { QuickNodeSDK } from '@quicknode/sdk';
|
|
35
|
+
|
|
36
|
+
const client = new QuickNodeSDK({
|
|
37
|
+
icyApiKey: 'my-api-key', // which is obtained by signing up on https://developers.icy.tools/
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Client config API
|
|
42
|
+
|
|
43
|
+
| Property | Values | Example |
|
|
44
|
+
| --------- | ------ | ---------------------------------- |
|
|
45
|
+
| icyApiKey | string | 1c1t00ls-4p10-k3y0-lu21-43405e3310 |
|
|
46
|
+
|
|
47
|
+
<br>
|
|
48
|
+
|
|
49
|
+
## Methods
|
|
50
|
+
|
|
51
|
+
### nft.getNFTsByWalletENS
|
|
52
|
+
|
|
53
|
+
| Argument | Values | Optional | Example |
|
|
54
|
+
| -------- | ------ | -------- | ---------------------------- |
|
|
55
|
+
| ensName | string | ❌ | vitalik.eth |
|
|
56
|
+
| first | number | ✅ | 10 |
|
|
57
|
+
| after | string | ✅ | YXJyYXljb25uZWN0aW9uOjUwNQ== |
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import { QuickNodeSDK } from '@quicknode/sdk';
|
|
61
|
+
|
|
62
|
+
const client = new QuickNodeSDK();
|
|
63
|
+
|
|
64
|
+
client.nft
|
|
65
|
+
.getNFTsByWalletENS({
|
|
66
|
+
ensName: 'vitalik.eth',
|
|
67
|
+
first: 5,
|
|
68
|
+
after: 'YXJyYXljb25uZWN0aW9uOjUwNQ==',
|
|
69
|
+
})
|
|
70
|
+
.then((response) => console.log(response));
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### nft.getNFTsByWalletAddress
|
|
74
|
+
|
|
75
|
+
| Argument | Values | Optional | Example |
|
|
76
|
+
| -------- | ------ | -------- | ------------------------------------------ |
|
|
77
|
+
| address | string | ❌ | 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 |
|
|
78
|
+
| first | number | ✅ | 10 |
|
|
79
|
+
| after | string | ✅ | YXJyYXljb25uZWN0aW9uOjUwNQ== |
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import { QuickNodeSDK } from '@quicknode/sdk';
|
|
83
|
+
|
|
84
|
+
const client = new QuickNodeSDK();
|
|
85
|
+
|
|
86
|
+
client.nft
|
|
87
|
+
.getNFTsByWalletAddress({
|
|
88
|
+
address: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
|
|
89
|
+
first: 5,
|
|
90
|
+
after: 'YXJyYXljb25uZWN0aW9uOjUwNQ==',
|
|
91
|
+
})
|
|
92
|
+
.then((response) => console.log(response));
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
# Contributing corner
|
|
96
|
+
|
|
97
|
+
## Building
|
|
98
|
+
|
|
99
|
+
Run `nx build libs-api-sdk` to build the library.
|
|
100
|
+
|
|
101
|
+
## Running unit tests
|
|
102
|
+
|
|
103
|
+
Run `nx test libs-api-sdk` to execute the unit tests via [Jest](https://jestjs.io).
|
|
104
|
+
|
|
105
|
+
## Running lint
|
|
106
|
+
|
|
107
|
+
Run `nx lint libs-api-sdk` to execute the lint via [ESLint](https://eslint.org/).
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@quicknode/sdk",
|
|
3
|
+
"repository": {
|
|
4
|
+
"type": "git",
|
|
5
|
+
"url": "https://github.com/quiknode-labs/qn-oss.git",
|
|
6
|
+
"directory": "packages/libs/api/sdk"
|
|
7
|
+
},
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"version": "0.0.3",
|
|
10
|
+
"main": "./src/index.js",
|
|
11
|
+
"types": "./src/index.d.ts",
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@apollo/client": "^3.6.9",
|
|
14
|
+
"graphql": "^16.5.0",
|
|
15
|
+
"cross-fetch": "^3.1.5"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@pollyjs/adapter-node-http": "^6.0.5",
|
|
19
|
+
"@pollyjs/core": "^6.0.5",
|
|
20
|
+
"@pollyjs/persister-fs": "^6.0.5",
|
|
21
|
+
"@types/supertest": "^2.0.12",
|
|
22
|
+
"@types/node": "16.11.7",
|
|
23
|
+
"supertest": "^6.2.4"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ApolloClient, NormalizedCacheObject } from '@apollo/client/core';
|
|
2
|
+
import { NFTQueries } from '../queries/nft/nftQueries';
|
|
3
|
+
export interface QuickNodeSDKArguments {
|
|
4
|
+
icyApiKey?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class QuickNodeSDK {
|
|
7
|
+
readonly apolloClient: ApolloClient<NormalizedCacheObject>;
|
|
8
|
+
private customApolloClient;
|
|
9
|
+
readonly icyApiKey?: string;
|
|
10
|
+
readonly nft: NFTQueries;
|
|
11
|
+
constructor({ icyApiKey }?: QuickNodeSDKArguments);
|
|
12
|
+
private createApolloClient;
|
|
13
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ApolloClient, NormalizedCacheObject, QueryOptions } from '@apollo/client';
|
|
2
|
+
export declare class CustomApolloClient {
|
|
3
|
+
apolloClient: ApolloClient<NormalizedCacheObject>;
|
|
4
|
+
constructor(apolloClient: ApolloClient<NormalizedCacheObject>);
|
|
5
|
+
/**
|
|
6
|
+
* @todo improve typing here
|
|
7
|
+
*/
|
|
8
|
+
query(options: QueryOptions<any, any>): Promise<any>;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './client';
|
package/src/index.d.ts
ADDED
package/src/index.js
ADDED
|
@@ -0,0 +1,494 @@
|
|
|
1
|
+
/******/ (() => { // webpackBootstrap
|
|
2
|
+
/******/ "use strict";
|
|
3
|
+
/******/ var __webpack_modules__ = ({
|
|
4
|
+
|
|
5
|
+
/***/ "./packages/libs/api/sdk/src/client/client.ts":
|
|
6
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7
|
+
|
|
8
|
+
__webpack_require__.r(__webpack_exports__);
|
|
9
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10
|
+
/* harmony export */ "QuickNodeSDK": () => (/* binding */ QuickNodeSDK)
|
|
11
|
+
/* harmony export */ });
|
|
12
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("tslib");
|
|
13
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(tslib__WEBPACK_IMPORTED_MODULE_0__);
|
|
14
|
+
/* harmony import */ var _apollo_client_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("@apollo/client/core");
|
|
15
|
+
/* harmony import */ var _apollo_client_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_apollo_client_core__WEBPACK_IMPORTED_MODULE_1__);
|
|
16
|
+
/* harmony import */ var _apollo_client_link_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("@apollo/client/link/context");
|
|
17
|
+
/* harmony import */ var _apollo_client_link_context__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_apollo_client_link_context__WEBPACK_IMPORTED_MODULE_2__);
|
|
18
|
+
/* harmony import */ var _apollo_client_link_error__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("@apollo/client/link/error");
|
|
19
|
+
/* harmony import */ var _apollo_client_link_error__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_apollo_client_link_error__WEBPACK_IMPORTED_MODULE_3__);
|
|
20
|
+
/* harmony import */ var _queries_nft_nftQueries__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./packages/libs/api/sdk/src/queries/nft/nftQueries.ts");
|
|
21
|
+
/* harmony import */ var _customApolloClient__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./packages/libs/api/sdk/src/client/customApolloClient.ts");
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
const QUICKNODE_GRAPHQL_CLIENT_SUPPRESS_WARNINGS =
|
|
29
|
+
/**
|
|
30
|
+
* @todo set unified config util
|
|
31
|
+
*/
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
process.env.QUICKNODE_GRAPHQL_CLIENT_SUPPRESS_WARNINGS === 'true' ? true : false;
|
|
34
|
+
const httpLink = new _apollo_client_core__WEBPACK_IMPORTED_MODULE_1__.HttpLink({
|
|
35
|
+
uri: 'https://graphql.icy.tools/graphql'
|
|
36
|
+
});
|
|
37
|
+
const errorLink = (0,_apollo_client_link_error__WEBPACK_IMPORTED_MODULE_3__.onError)(({
|
|
38
|
+
networkError
|
|
39
|
+
}) => {
|
|
40
|
+
if (
|
|
41
|
+
/**
|
|
42
|
+
* @todo fix this type by overriding
|
|
43
|
+
*/
|
|
44
|
+
// @ts-ignore typing is not correct from apollo client, statusCode can be included in networkError
|
|
45
|
+
(networkError === null || networkError === void 0 ? void 0 : networkError.statusCode) === 429 && !QUICKNODE_GRAPHQL_CLIENT_SUPPRESS_WARNINGS) {
|
|
46
|
+
console.warn('QuickNode SDK warning: rate limit reached, head over to https://developers.icy.tools/ to upgrade your account');
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
class QuickNodeSDK {
|
|
50
|
+
constructor({
|
|
51
|
+
icyApiKey
|
|
52
|
+
} = {}) {
|
|
53
|
+
if (!icyApiKey && !QUICKNODE_GRAPHQL_CLIENT_SUPPRESS_WARNINGS) {
|
|
54
|
+
console.warn('QuickNode SDK warning: no apiKey provided. Access with no apiKey is heavily rate limited and intended for development use only. For higher rate limits or production usage, create an account on https://developers.icy.tools/');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
this.icyApiKey = icyApiKey;
|
|
58
|
+
this.apolloClient = this.createApolloClient({
|
|
59
|
+
icyApiKey
|
|
60
|
+
});
|
|
61
|
+
this.customApolloClient = new _customApolloClient__WEBPACK_IMPORTED_MODULE_5__.CustomApolloClient(this.apolloClient);
|
|
62
|
+
this.nft = new _queries_nft_nftQueries__WEBPACK_IMPORTED_MODULE_4__.NFTQueries(this.customApolloClient);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
createApolloClient({
|
|
66
|
+
icyApiKey
|
|
67
|
+
}) {
|
|
68
|
+
const authLink = (0,_apollo_client_link_context__WEBPACK_IMPORTED_MODULE_2__.setContext)((_, {
|
|
69
|
+
headers
|
|
70
|
+
}) => (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function* () {
|
|
71
|
+
return {
|
|
72
|
+
headers: Object.assign(Object.assign({}, headers), icyApiKey && {
|
|
73
|
+
'x-api-key': icyApiKey
|
|
74
|
+
})
|
|
75
|
+
};
|
|
76
|
+
}));
|
|
77
|
+
const cacheStructure = new _apollo_client_core__WEBPACK_IMPORTED_MODULE_1__.InMemoryCache({
|
|
78
|
+
typePolicies: {
|
|
79
|
+
ERC721Token: {
|
|
80
|
+
keyFields: ['tokenId', 'contract', ['address']]
|
|
81
|
+
},
|
|
82
|
+
ERC721Contract: {
|
|
83
|
+
keyFields: ['address']
|
|
84
|
+
},
|
|
85
|
+
Wallet: {
|
|
86
|
+
keyFields: ['address']
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
const rawClient = new _apollo_client_core__WEBPACK_IMPORTED_MODULE_1__.ApolloClient({
|
|
91
|
+
link: (0,_apollo_client_core__WEBPACK_IMPORTED_MODULE_1__.from)([authLink, errorLink, httpLink]),
|
|
92
|
+
cache: cacheStructure
|
|
93
|
+
});
|
|
94
|
+
return rawClient;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/***/ }),
|
|
100
|
+
|
|
101
|
+
/***/ "./packages/libs/api/sdk/src/client/customApolloClient.ts":
|
|
102
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
103
|
+
|
|
104
|
+
__webpack_require__.r(__webpack_exports__);
|
|
105
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
106
|
+
/* harmony export */ "CustomApolloClient": () => (/* binding */ CustomApolloClient)
|
|
107
|
+
/* harmony export */ });
|
|
108
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("tslib");
|
|
109
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(tslib__WEBPACK_IMPORTED_MODULE_0__);
|
|
110
|
+
/* harmony import */ var _utils_removeNodesAndEdges__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./packages/libs/api/sdk/src/utils/removeNodesAndEdges.ts");
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class CustomApolloClient {
|
|
114
|
+
constructor(apolloClient) {
|
|
115
|
+
this.apolloClient = apolloClient;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* @todo improve typing here
|
|
119
|
+
*/
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
query(options) {
|
|
123
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function* () {
|
|
124
|
+
const result = yield this.apolloClient.query(options);
|
|
125
|
+
|
|
126
|
+
if ((result === null || result === void 0 ? void 0 : result.data) && typeof (result === null || result === void 0 ? void 0 : result.data) === 'object') {
|
|
127
|
+
result.data = (0,_utils_removeNodesAndEdges__WEBPACK_IMPORTED_MODULE_1__.removeNodesAndEdges)(result.data);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return result;
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/***/ }),
|
|
137
|
+
|
|
138
|
+
/***/ "./packages/libs/api/sdk/src/client/index.ts":
|
|
139
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
140
|
+
|
|
141
|
+
__webpack_require__.r(__webpack_exports__);
|
|
142
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
143
|
+
/* harmony export */ "QuickNodeSDK": () => (/* reexport safe */ _client__WEBPACK_IMPORTED_MODULE_0__.QuickNodeSDK)
|
|
144
|
+
/* harmony export */ });
|
|
145
|
+
/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./packages/libs/api/sdk/src/client/client.ts");
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
/***/ }),
|
|
149
|
+
|
|
150
|
+
/***/ "./packages/libs/api/sdk/src/queries/index.ts":
|
|
151
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
152
|
+
|
|
153
|
+
__webpack_require__.r(__webpack_exports__);
|
|
154
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
155
|
+
/* harmony export */ "getWalletAddressNFTsRawQuery": () => (/* reexport safe */ _nft__WEBPACK_IMPORTED_MODULE_0__.getWalletAddressNFTsRawQuery),
|
|
156
|
+
/* harmony export */ "getWalletENSNFTsRawQuery": () => (/* reexport safe */ _nft__WEBPACK_IMPORTED_MODULE_0__.getWalletENSNFTsRawQuery)
|
|
157
|
+
/* harmony export */ });
|
|
158
|
+
/* harmony import */ var _nft__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./packages/libs/api/sdk/src/queries/nft/index.ts");
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
/***/ }),
|
|
162
|
+
|
|
163
|
+
/***/ "./packages/libs/api/sdk/src/queries/nft/getNFTsByWalletAddress/getNFTsByWalletAddress.ts":
|
|
164
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
165
|
+
|
|
166
|
+
__webpack_require__.r(__webpack_exports__);
|
|
167
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
168
|
+
/* harmony export */ "getWalletAddressNFTsRawQuery": () => (/* binding */ getWalletAddressNFTsRawQuery)
|
|
169
|
+
/* harmony export */ });
|
|
170
|
+
/* harmony import */ var _apollo_client_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("@apollo/client/core");
|
|
171
|
+
/* harmony import */ var _apollo_client_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_apollo_client_core__WEBPACK_IMPORTED_MODULE_0__);
|
|
172
|
+
|
|
173
|
+
const getWalletAddressNFTsRawQuery = _apollo_client_core__WEBPACK_IMPORTED_MODULE_0__.gql`
|
|
174
|
+
query WalletNFTs($address: String, $first: Int, $after: String) {
|
|
175
|
+
wallet(address: $address) {
|
|
176
|
+
ensName
|
|
177
|
+
address
|
|
178
|
+
tokens(first: $first, after: $after) {
|
|
179
|
+
pageInfo {
|
|
180
|
+
hasNextPage
|
|
181
|
+
endCursor
|
|
182
|
+
}
|
|
183
|
+
edges {
|
|
184
|
+
node {
|
|
185
|
+
tokenId
|
|
186
|
+
images {
|
|
187
|
+
url
|
|
188
|
+
}
|
|
189
|
+
... on ERC721Token {
|
|
190
|
+
contract {
|
|
191
|
+
address
|
|
192
|
+
... on ERC721Contract {
|
|
193
|
+
symbol
|
|
194
|
+
name
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
`;
|
|
204
|
+
|
|
205
|
+
/***/ }),
|
|
206
|
+
|
|
207
|
+
/***/ "./packages/libs/api/sdk/src/queries/nft/getNFTsByWalletENS/getNFTsByWalletENS.ts":
|
|
208
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
209
|
+
|
|
210
|
+
__webpack_require__.r(__webpack_exports__);
|
|
211
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
212
|
+
/* harmony export */ "getWalletENSNFTsRawQuery": () => (/* binding */ getWalletENSNFTsRawQuery)
|
|
213
|
+
/* harmony export */ });
|
|
214
|
+
/* harmony import */ var _apollo_client_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("@apollo/client/core");
|
|
215
|
+
/* harmony import */ var _apollo_client_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_apollo_client_core__WEBPACK_IMPORTED_MODULE_0__);
|
|
216
|
+
|
|
217
|
+
const getWalletENSNFTsRawQuery = _apollo_client_core__WEBPACK_IMPORTED_MODULE_0__.gql`
|
|
218
|
+
query WalletNFTs($ensName: String, $first: Int, $after: String) {
|
|
219
|
+
wallet(ensName: $ensName) {
|
|
220
|
+
ensName
|
|
221
|
+
address
|
|
222
|
+
tokens(first: $first, after: $after) {
|
|
223
|
+
pageInfo {
|
|
224
|
+
hasNextPage
|
|
225
|
+
endCursor
|
|
226
|
+
}
|
|
227
|
+
edges {
|
|
228
|
+
node {
|
|
229
|
+
tokenId
|
|
230
|
+
images {
|
|
231
|
+
url
|
|
232
|
+
}
|
|
233
|
+
... on ERC721Token {
|
|
234
|
+
contract {
|
|
235
|
+
address
|
|
236
|
+
... on ERC721Contract {
|
|
237
|
+
symbol
|
|
238
|
+
name
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
`;
|
|
248
|
+
|
|
249
|
+
/***/ }),
|
|
250
|
+
|
|
251
|
+
/***/ "./packages/libs/api/sdk/src/queries/nft/index.ts":
|
|
252
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
253
|
+
|
|
254
|
+
__webpack_require__.r(__webpack_exports__);
|
|
255
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
256
|
+
/* harmony export */ "getWalletAddressNFTsRawQuery": () => (/* reexport safe */ _getNFTsByWalletAddress_getNFTsByWalletAddress__WEBPACK_IMPORTED_MODULE_0__.getWalletAddressNFTsRawQuery),
|
|
257
|
+
/* harmony export */ "getWalletENSNFTsRawQuery": () => (/* reexport safe */ _getNFTsByWalletENS_getNFTsByWalletENS__WEBPACK_IMPORTED_MODULE_1__.getWalletENSNFTsRawQuery)
|
|
258
|
+
/* harmony export */ });
|
|
259
|
+
/* harmony import */ var _getNFTsByWalletAddress_getNFTsByWalletAddress__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./packages/libs/api/sdk/src/queries/nft/getNFTsByWalletAddress/getNFTsByWalletAddress.ts");
|
|
260
|
+
/* harmony import */ var _getNFTsByWalletENS_getNFTsByWalletENS__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./packages/libs/api/sdk/src/queries/nft/getNFTsByWalletENS/getNFTsByWalletENS.ts");
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
/***/ }),
|
|
265
|
+
|
|
266
|
+
/***/ "./packages/libs/api/sdk/src/queries/nft/nftQueries.ts":
|
|
267
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
268
|
+
|
|
269
|
+
__webpack_require__.r(__webpack_exports__);
|
|
270
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
271
|
+
/* harmony export */ "NFTQueries": () => (/* binding */ NFTQueries)
|
|
272
|
+
/* harmony export */ });
|
|
273
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("tslib");
|
|
274
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(tslib__WEBPACK_IMPORTED_MODULE_0__);
|
|
275
|
+
/* harmony import */ var _getNFTsByWalletAddress_getNFTsByWalletAddress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./packages/libs/api/sdk/src/queries/nft/getNFTsByWalletAddress/getNFTsByWalletAddress.ts");
|
|
276
|
+
/* harmony import */ var _getNFTsByWalletENS_getNFTsByWalletENS__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./packages/libs/api/sdk/src/queries/nft/getNFTsByWalletENS/getNFTsByWalletENS.ts");
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
class NFTQueries {
|
|
281
|
+
constructor(client) {
|
|
282
|
+
this.client = client;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
getNFTsByWalletAddress(variables) {
|
|
286
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function* () {
|
|
287
|
+
return yield this.client.query({
|
|
288
|
+
query: _getNFTsByWalletAddress_getNFTsByWalletAddress__WEBPACK_IMPORTED_MODULE_1__.getWalletAddressNFTsRawQuery,
|
|
289
|
+
variables
|
|
290
|
+
});
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
getNFTsByWalletENS(variables) {
|
|
295
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function* () {
|
|
296
|
+
return yield this.client.query({
|
|
297
|
+
query: _getNFTsByWalletENS_getNFTsByWalletENS__WEBPACK_IMPORTED_MODULE_2__.getWalletENSNFTsRawQuery,
|
|
298
|
+
variables
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/***/ }),
|
|
306
|
+
|
|
307
|
+
/***/ "./packages/libs/api/sdk/src/utils/removeNodesAndEdges.ts":
|
|
308
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
309
|
+
|
|
310
|
+
__webpack_require__.r(__webpack_exports__);
|
|
311
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
312
|
+
/* harmony export */ "removeNodesAndEdges": () => (/* binding */ removeNodesAndEdges)
|
|
313
|
+
/* harmony export */ });
|
|
314
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("tslib");
|
|
315
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(tslib__WEBPACK_IMPORTED_MODULE_0__);
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* @todo implement generic typing
|
|
319
|
+
*/
|
|
320
|
+
|
|
321
|
+
const removeNodesAndEdges = data => {
|
|
322
|
+
const keys = Object.keys(data);
|
|
323
|
+
const output = {};
|
|
324
|
+
keys.filter(key => key !== '__typename').forEach(key => {
|
|
325
|
+
const value = data[key];
|
|
326
|
+
|
|
327
|
+
if (typeof value === 'string' || typeof value === 'boolean' || typeof value === 'number' || value === null) {
|
|
328
|
+
return output[key] = value;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
if (Array.isArray(value)) {
|
|
332
|
+
return output[key] = value.map(item => removeNodesAndEdges(item));
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
if (value && (value.edges || value.total || value.pageInfo || value.breadcrumbs)) {
|
|
336
|
+
if (value.breadcrumbs) output[`${key}Breadcrumbs`] = value.breadcrumbs;
|
|
337
|
+
if (value.total) output[`${key}Total`] = value.total;
|
|
338
|
+
if (value.viewport) output[`${key}Viewport`] = value.viewport;
|
|
339
|
+
|
|
340
|
+
if (value.pageInfo) {
|
|
341
|
+
const _a = value.pageInfo,
|
|
342
|
+
{
|
|
343
|
+
__typename
|
|
344
|
+
} = _a,
|
|
345
|
+
pageInfoRest = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__rest)(_a, ["__typename"]);
|
|
346
|
+
|
|
347
|
+
output[`${key}PageInfo`] = pageInfoRest;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
output[key] = value.edges.map(item => {
|
|
351
|
+
if (item.node) {
|
|
352
|
+
return removeNodesAndEdges(item.node);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
return item;
|
|
356
|
+
});
|
|
357
|
+
} else {
|
|
358
|
+
output[key] = value === null ? null : removeNodesAndEdges(value);
|
|
359
|
+
}
|
|
360
|
+
});
|
|
361
|
+
return output;
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
/***/ }),
|
|
365
|
+
|
|
366
|
+
/***/ "@apollo/client/core":
|
|
367
|
+
/***/ ((module) => {
|
|
368
|
+
|
|
369
|
+
module.exports = require("@apollo/client/core");
|
|
370
|
+
|
|
371
|
+
/***/ }),
|
|
372
|
+
|
|
373
|
+
/***/ "@apollo/client/link/context":
|
|
374
|
+
/***/ ((module) => {
|
|
375
|
+
|
|
376
|
+
module.exports = require("@apollo/client/link/context");
|
|
377
|
+
|
|
378
|
+
/***/ }),
|
|
379
|
+
|
|
380
|
+
/***/ "@apollo/client/link/error":
|
|
381
|
+
/***/ ((module) => {
|
|
382
|
+
|
|
383
|
+
module.exports = require("@apollo/client/link/error");
|
|
384
|
+
|
|
385
|
+
/***/ }),
|
|
386
|
+
|
|
387
|
+
/***/ "cross-fetch/polyfill":
|
|
388
|
+
/***/ ((module) => {
|
|
389
|
+
|
|
390
|
+
module.exports = require("cross-fetch/polyfill");
|
|
391
|
+
|
|
392
|
+
/***/ }),
|
|
393
|
+
|
|
394
|
+
/***/ "tslib":
|
|
395
|
+
/***/ ((module) => {
|
|
396
|
+
|
|
397
|
+
module.exports = require("tslib");
|
|
398
|
+
|
|
399
|
+
/***/ })
|
|
400
|
+
|
|
401
|
+
/******/ });
|
|
402
|
+
/************************************************************************/
|
|
403
|
+
/******/ // The module cache
|
|
404
|
+
/******/ var __webpack_module_cache__ = {};
|
|
405
|
+
/******/
|
|
406
|
+
/******/ // The require function
|
|
407
|
+
/******/ function __webpack_require__(moduleId) {
|
|
408
|
+
/******/ // Check if module is in cache
|
|
409
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
410
|
+
/******/ if (cachedModule !== undefined) {
|
|
411
|
+
/******/ return cachedModule.exports;
|
|
412
|
+
/******/ }
|
|
413
|
+
/******/ // Create a new module (and put it into the cache)
|
|
414
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
415
|
+
/******/ // no module.id needed
|
|
416
|
+
/******/ // no module.loaded needed
|
|
417
|
+
/******/ exports: {}
|
|
418
|
+
/******/ };
|
|
419
|
+
/******/
|
|
420
|
+
/******/ // Execute the module function
|
|
421
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
422
|
+
/******/
|
|
423
|
+
/******/ // Return the exports of the module
|
|
424
|
+
/******/ return module.exports;
|
|
425
|
+
/******/ }
|
|
426
|
+
/******/
|
|
427
|
+
/************************************************************************/
|
|
428
|
+
/******/ /* webpack/runtime/compat get default export */
|
|
429
|
+
/******/ (() => {
|
|
430
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
431
|
+
/******/ __webpack_require__.n = (module) => {
|
|
432
|
+
/******/ var getter = module && module.__esModule ?
|
|
433
|
+
/******/ () => (module['default']) :
|
|
434
|
+
/******/ () => (module);
|
|
435
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
|
436
|
+
/******/ return getter;
|
|
437
|
+
/******/ };
|
|
438
|
+
/******/ })();
|
|
439
|
+
/******/
|
|
440
|
+
/******/ /* webpack/runtime/define property getters */
|
|
441
|
+
/******/ (() => {
|
|
442
|
+
/******/ // define getter functions for harmony exports
|
|
443
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
444
|
+
/******/ for(var key in definition) {
|
|
445
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
446
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
447
|
+
/******/ }
|
|
448
|
+
/******/ }
|
|
449
|
+
/******/ };
|
|
450
|
+
/******/ })();
|
|
451
|
+
/******/
|
|
452
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
453
|
+
/******/ (() => {
|
|
454
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
455
|
+
/******/ })();
|
|
456
|
+
/******/
|
|
457
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
458
|
+
/******/ (() => {
|
|
459
|
+
/******/ // define __esModule on exports
|
|
460
|
+
/******/ __webpack_require__.r = (exports) => {
|
|
461
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
462
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
463
|
+
/******/ }
|
|
464
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
465
|
+
/******/ };
|
|
466
|
+
/******/ })();
|
|
467
|
+
/******/
|
|
468
|
+
/************************************************************************/
|
|
469
|
+
var __webpack_exports__ = {};
|
|
470
|
+
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
|
471
|
+
(() => {
|
|
472
|
+
__webpack_require__.r(__webpack_exports__);
|
|
473
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
474
|
+
/* harmony export */ "QuickNodeSDK": () => (/* reexport safe */ _client__WEBPACK_IMPORTED_MODULE_1__.QuickNodeSDK),
|
|
475
|
+
/* harmony export */ "default": () => (/* reexport safe */ _client__WEBPACK_IMPORTED_MODULE_1__.QuickNodeSDK),
|
|
476
|
+
/* harmony export */ "getWalletAddressNFTsRawQuery": () => (/* reexport safe */ _queries__WEBPACK_IMPORTED_MODULE_2__.getWalletAddressNFTsRawQuery),
|
|
477
|
+
/* harmony export */ "getWalletENSNFTsRawQuery": () => (/* reexport safe */ _queries__WEBPACK_IMPORTED_MODULE_2__.getWalletENSNFTsRawQuery)
|
|
478
|
+
/* harmony export */ });
|
|
479
|
+
/* harmony import */ var cross_fetch_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cross-fetch/polyfill");
|
|
480
|
+
/* harmony import */ var cross_fetch_polyfill__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cross_fetch_polyfill__WEBPACK_IMPORTED_MODULE_0__);
|
|
481
|
+
/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./packages/libs/api/sdk/src/client/index.ts");
|
|
482
|
+
/* harmony import */ var _queries__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./packages/libs/api/sdk/src/queries/index.ts");
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
})();
|
|
488
|
+
|
|
489
|
+
var __webpack_export_target__ = exports;
|
|
490
|
+
for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i];
|
|
491
|
+
if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true });
|
|
492
|
+
/******/ })()
|
|
493
|
+
;
|
|
494
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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L2NsaWVudC9jbGllbnQudHMiLCJ3ZWJwYWNrOi8vcW4tb3NzLy4vcGFja2FnZXMvbGlicy9hcGkvc2RrL3NyYy9jbGllbnQvY3VzdG9tQXBvbGxvQ2xpZW50LnRzIiwid2VicGFjazovL3FuLW9zcy8uL3BhY2thZ2VzL2xpYnMvYXBpL3Nkay9zcmMvY2xpZW50L2luZGV4LnRzIiwid2VicGFjazovL3FuLW9zcy8uL3BhY2thZ2VzL2xpYnMvYXBpL3Nkay9zcmMvcXVlcmllcy9pbmRleC50cyIsIndlYnBhY2s6Ly9xbi1vc3MvLi9wYWNrYWdlcy9saWJzL2FwaS9zZGsvc3JjL3F1ZXJpZXMvbmZ0L2dldE5GVHNCeVdhbGxldEFkZHJlc3MvZ2V0TkZUc0J5V2FsbGV0QWRkcmVzcy50cyIsIndlYnBhY2s6Ly9xbi1vc3MvLi9wYWNrYWdlcy9saWJzL2FwaS9zZGsvc3JjL3F1ZXJpZXMvbmZ0L2dldE5GVHNCeVdhbGxldEVOUy9nZXRORlRzQnlXYWxsZXRFTlMudHMiLCJ3ZWJwYWNrOi8vcW4tb3NzLy4vcGFja2FnZXMvbGlicy9hcGkvc2RrL3NyYy9xdWVyaWVzL25mdC9pbmRleC50cyIsIndlYnBhY2s6Ly9xbi1vc3MvLi9wYWNrYWdlcy9saWJzL2FwaS9zZGsvc3JjL3F1ZXJpZXMvbmZ0L25mdFF1ZXJpZXMudHMiLCJ3ZWJwYWNrOi8vcW4tb3NzLy4vcGFja2FnZXMvbGlicy9hcGkvc2RrL3NyYy91dGlscy9yZW1vdmVOb2Rlc0FuZEVkZ2VzLnRzIiwid2VicGFjazovL3FuLW9zcy9leHRlcm5hbCBjb21tb25qcyBcIkBhcG9sbG8vY2xpZW50L2NvcmVcIiIsIndlYnBhY2s6Ly9xbi1vc3MvZXh0ZXJuYWwgY29tbW9uanMgXCJAYXBvbGxvL2NsaWVudC9saW5rL2NvbnRleHRcIiIsIndlYnBhY2s6Ly9xbi1vc3MvZXh0ZXJuYWwgY29tbW9uanMgXCJAYXBvbGxvL2NsaWVudC9saW5rL2Vycm9yXCIiLCJ3ZWJwYWNrOi8vcW4tb3NzL2V4dGVybmFsIGNvbW1vbmpzIFwiY3Jvc3MtZmV0Y2gvcG9seWZpbGxcIiIsIndlYnBhY2s6Ly9xbi1vc3MvZXh0ZXJuYWwgY29tbW9uanMgXCJ0c2xpYlwiIiwid2VicGFjazovL3FuLW9zcy93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9xbi1vc3Mvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vcW4tb3NzL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9xbi1vc3Mvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9xbi1vc3Mvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9xbi1vc3MvLi9wYWNrYWdlcy9saWJzL2FwaS9zZGsvc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwb2xsb0NsaWVudCxcbiAgZnJvbSxcbiAgSHR0cExpbmssXG4gIEluTWVtb3J5Q2FjaGUsXG4gIE5vcm1hbGl6ZWRDYWNoZU9iamVjdCxcbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBzZXRDb250ZXh0IH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay9jb250ZXh0JztcbmltcG9ydCB7IG9uRXJyb3IgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL2Vycm9yJztcbmltcG9ydCB7IE5GVFF1ZXJpZXMgfSBmcm9tICcuLi9xdWVyaWVzL25mdC9uZnRRdWVyaWVzJztcbmltcG9ydCB7IEN1c3RvbUFwb2xsb0NsaWVudCB9IGZyb20gJy4vY3VzdG9tQXBvbGxvQ2xpZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBRdWlja05vZGVTREtBcmd1bWVudHMge1xuICBpY3lBcGlLZXk/OiBzdHJpbmc7XG59XG5cbmNvbnN0IFFVSUNLTk9ERV9HUkFQSFFMX0NMSUVOVF9TVVBQUkVTU19XQVJOSU5HUyA9XG4gIC8qKlxuICAgKiBAdG9kbyBzZXQgdW5pZmllZCBjb25maWcgdXRpbFxuICAgKi9cbiAgLy8gQHRzLWlnbm9yZVxuICBwcm9jZXNzLmVudi5RVUlDS05PREVfR1JBUEhRTF9DTElFTlRfU1VQUFJFU1NfV0FSTklOR1MgPT09ICd0cnVlJ1xuICAgID8gdHJ1ZVxuICAgIDogZmFsc2U7XG5cbmNvbnN0IGh0dHBMaW5rID0gbmV3IEh0dHBMaW5rKHtcbiAgdXJpOiAnaHR0cHM6Ly9ncmFwaHFsLmljeS50b29scy9ncmFwaHFsJyxcbn0pO1xuXG5jb25zdCBlcnJvckxpbmsgPSBvbkVycm9yKCh7IG5ldHdvcmtFcnJvciB9KSA9PiB7XG4gIGlmIChcbiAgICAvKipcbiAgICAgKiBAdG9kbyBmaXggdGhpcyB0eXBlIGJ5IG92ZXJyaWRpbmdcbiAgICAgKi9cbiAgICAvLyBAdHMtaWdub3JlIHR5cGluZyBpcyBub3QgY29ycmVjdCBmcm9tIGFwb2xsbyBjbGllbnQsIHN0YXR1c0NvZGUgY2FuIGJlIGluY2x1ZGVkIGluIG5ldHdvcmtFcnJvclxuICAgIG5ldHdvcmtFcnJvcj8uc3RhdHVzQ29kZSA9PT0gNDI5ICYmXG4gICAgIVFVSUNLTk9ERV9HUkFQSFFMX0NMSUVOVF9TVVBQUkVTU19XQVJOSU5HU1xuICApIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICAnUXVpY2tOb2RlIFNESyB3YXJuaW5nOiByYXRlIGxpbWl0IHJlYWNoZWQsIGhlYWQgb3ZlciB0byBodHRwczovL2RldmVsb3BlcnMuaWN5LnRvb2xzLyB0byB1cGdyYWRlIHlvdXIgYWNjb3VudCdcbiAgICApO1xuICB9XG59KTtcblxuZXhwb3J0IGNsYXNzIFF1aWNrTm9kZVNESyB7XG4gIHJlYWRvbmx5IGFwb2xsb0NsaWVudDogQXBvbGxvQ2xpZW50PE5vcm1hbGl6ZWRDYWNoZU9iamVjdD47XG4gIHByaXZhdGUgY3VzdG9tQXBvbGxvQ2xpZW50OiBDdXN0b21BcG9sbG9DbGllbnQ7XG4gIHJlYWRvbmx5IGljeUFwaUtleT86IHN0cmluZztcbiAgcmVhZG9ubHkgbmZ0OiBORlRRdWVyaWVzO1xuXG4gIGNvbnN0cnVjdG9yKHsgaWN5QXBpS2V5IH06IFF1aWNrTm9kZVNES0FyZ3VtZW50cyA9IHt9KSB7XG4gICAgaWYgKCFpY3lBcGlLZXkgJiYgIVFVSUNLTk9ERV9HUkFQSFFMX0NMSUVOVF9TVVBQUkVTU19XQVJOSU5HUykge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnUXVpY2tOb2RlIFNESyB3YXJuaW5nOiBubyBhcGlLZXkgcHJvdmlkZWQuIEFjY2VzcyB3aXRoIG5vIGFwaUtleSBpcyBoZWF2aWx5IHJhdGUgbGltaXRlZCBhbmQgaW50ZW5kZWQgZm9yIGRldmVsb3BtZW50IHVzZSBvbmx5LiBGb3IgaGlnaGVyIHJhdGUgbGltaXRzIG9yIHByb2R1Y3Rpb24gdXNhZ2UsIGNyZWF0ZSBhbiBhY2NvdW50IG9uIGh0dHBzOi8vZGV2ZWxvcGVycy5pY3kudG9vbHMvJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmljeUFwaUtleSA9IGljeUFwaUtleTtcbiAgICB0aGlzLmFwb2xsb0NsaWVudCA9IHRoaXMuY3JlYXRlQXBvbGxvQ2xpZW50KHsgaWN5QXBpS2V5IH0pO1xuICAgIHRoaXMuY3VzdG9tQXBvbGxvQ2xpZW50ID0gbmV3IEN1c3RvbUFwb2xsb0NsaWVudCh0aGlzLmFwb2xsb0NsaWVudCk7XG4gICAgdGhpcy5uZnQgPSBuZXcgTkZUUXVlcmllcyh0aGlzLmN1c3RvbUFwb2xsb0NsaWVudCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUFwb2xsb0NsaWVudCh7XG4gICAgaWN5QXBpS2V5LFxuICB9OiBRdWlja05vZGVTREtBcmd1bWVudHMpOiBBcG9sbG9DbGllbnQ8Tm9ybWFsaXplZENhY2hlT2JqZWN0PiB7XG4gICAgY29uc3QgYXV0aExpbmsgPSBzZXRDb250ZXh0KGFzeW5jIChfLCB7IGhlYWRlcnMgfSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICAgICAgLi4uKGljeUFwaUtleSAmJiB7ICd4LWFwaS1rZXknOiBpY3lBcGlLZXkgfSksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgY2FjaGVTdHJ1Y3R1cmUgPSBuZXcgSW5NZW1vcnlDYWNoZSh7XG4gICAgICB0eXBlUG9saWNpZXM6IHtcbiAgICAgICAgRVJDNzIxVG9rZW46IHtcbiAgICAgICAgICBrZXlGaWVsZHM6IFsndG9rZW5JZCcsICdjb250cmFjdCcsIFsnYWRkcmVzcyddXSxcbiAgICAgICAgfSxcbiAgICAgICAgRVJDNzIxQ29udHJhY3Q6IHtcbiAgICAgICAgICBrZXlGaWVsZHM6IFsnYWRkcmVzcyddLFxuICAgICAgICB9LFxuICAgICAgICBXYWxsZXQ6IHtcbiAgICAgICAgICBrZXlGaWVsZHM6IFsnYWRkcmVzcyddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJhd0NsaWVudCA9IG5ldyBBcG9sbG9DbGllbnQoe1xuICAgICAgbGluazogZnJvbShbYXV0aExpbmssIGVycm9yTGluaywgaHR0cExpbmtdKSxcbiAgICAgIGNhY2hlOiBjYWNoZVN0cnVjdHVyZSxcbiAgICB9KTtcbiAgICByZXR1cm4gcmF3Q2xpZW50O1xuICB9XG59XG4iLCJpbXBvcnQge1xuICBBcG9sbG9DbGllbnQsXG4gIE5vcm1hbGl6ZWRDYWNoZU9iamVjdCxcbiAgUXVlcnlPcHRpb25zLFxufSBmcm9tICdAYXBvbGxvL2NsaWVudCc7XG5pbXBvcnQgeyByZW1vdmVOb2Rlc0FuZEVkZ2VzIH0gZnJvbSAnLi4vdXRpbHMvcmVtb3ZlTm9kZXNBbmRFZGdlcyc7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21BcG9sbG9DbGllbnQge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXBvbGxvQ2xpZW50OiBBcG9sbG9DbGllbnQ8Tm9ybWFsaXplZENhY2hlT2JqZWN0Pikge31cblxuICAvKipcbiAgICogQHRvZG8gaW1wcm92ZSB0eXBpbmcgaGVyZVxuICAgKi9cbiAgYXN5bmMgcXVlcnkob3B0aW9uczogUXVlcnlPcHRpb25zPGFueSwgYW55Pik6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hcG9sbG9DbGllbnQucXVlcnkob3B0aW9ucyk7XG5cbiAgICBpZiAocmVzdWx0Py5kYXRhICYmIHR5cGVvZiByZXN1bHQ/LmRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXN1bHQuZGF0YSA9IHJlbW92ZU5vZGVzQW5kRWRnZXMocmVzdWx0LmRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiIsImV4cG9ydCAqIGZyb20gJy4vY2xpZW50JztcbiIsImV4cG9ydCAqIGZyb20gJy4vbmZ0JztcbiIsImltcG9ydCB7IGdxbCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkFyZ3MgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRXYWxsZXRBZGRyZXNzTkZUc1Jhd1F1ZXJ5ID0gZ3FsYFxuICBxdWVyeSBXYWxsZXRORlRzKCRhZGRyZXNzOiBTdHJpbmcsICRmaXJzdDogSW50LCAkYWZ0ZXI6IFN0cmluZykge1xuICAgIHdhbGxldChhZGRyZXNzOiAkYWRkcmVzcykge1xuICAgICAgZW5zTmFtZVxuICAgICAgYWRkcmVzc1xuICAgICAgdG9rZW5zKGZpcnN0OiAkZmlyc3QsIGFmdGVyOiAkYWZ0ZXIpIHtcbiAgICAgICAgcGFnZUluZm8ge1xuICAgICAgICAgIGhhc05leHRQYWdlXG4gICAgICAgICAgZW5kQ3Vyc29yXG4gICAgICAgIH1cbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgdG9rZW5JZFxuICAgICAgICAgICAgaW1hZ2VzIHtcbiAgICAgICAgICAgICAgdXJsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuLi4gb24gRVJDNzIxVG9rZW4ge1xuICAgICAgICAgICAgICBjb250cmFjdCB7XG4gICAgICAgICAgICAgICAgYWRkcmVzc1xuICAgICAgICAgICAgICAgIC4uLiBvbiBFUkM3MjFDb250cmFjdCB7XG4gICAgICAgICAgICAgICAgICBzeW1ib2xcbiAgICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0QWRkcmVzc05GVHNRdWVyeVZhcmlhYmxlcyBleHRlbmRzIFBhZ2luYXRpb25BcmdzIHtcbiAgYWRkcmVzczogc3RyaW5nO1xufVxuIiwiaW1wb3J0IHsgZ3FsIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQXJncyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGdldFdhbGxldEVOU05GVHNSYXdRdWVyeSA9IGdxbGBcbiAgcXVlcnkgV2FsbGV0TkZUcygkZW5zTmFtZTogU3RyaW5nLCAkZmlyc3Q6IEludCwgJGFmdGVyOiBTdHJpbmcpIHtcbiAgICB3YWxsZXQoZW5zTmFtZTogJGVuc05hbWUpIHtcbiAgICAgIGVuc05hbWVcbiAgICAgIGFkZHJlc3NcbiAgICAgIHRva2VucyhmaXJzdDogJGZpcnN0LCBhZnRlcjogJGFmdGVyKSB7XG4gICAgICAgIHBhZ2VJbmZvIHtcbiAgICAgICAgICBoYXNOZXh0UGFnZVxuICAgICAgICAgIGVuZEN1cnNvclxuICAgICAgICB9XG4gICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgIHRva2VuSWRcbiAgICAgICAgICAgIGltYWdlcyB7XG4gICAgICAgICAgICAgIHVybFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLi4uIG9uIEVSQzcyMVRva2VuIHtcbiAgICAgICAgICAgICAgY29udHJhY3Qge1xuICAgICAgICAgICAgICAgIGFkZHJlc3NcbiAgICAgICAgICAgICAgICAuLi4gb24gRVJDNzIxQ29udHJhY3Qge1xuICAgICAgICAgICAgICAgICAgc3ltYm9sXG4gICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdhbGxldEVOU05GVHNRdWVyeVZhcmlhYmxlcyBleHRlbmRzIFBhZ2luYXRpb25BcmdzIHtcbiAgZW5zTmFtZTogc3RyaW5nO1xufVxuIiwiZXhwb3J0ICogZnJvbSAnLi9nZXRORlRzQnlXYWxsZXRBZGRyZXNzL2dldE5GVHNCeVdhbGxldEFkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXRORlRzQnlXYWxsZXRFTlMvZ2V0TkZUc0J5V2FsbGV0RU5TJztcbiIsImltcG9ydCB7IEFwb2xsb1F1ZXJ5UmVzdWx0IH0gZnJvbSAnQGFwb2xsby9jbGllbnQnO1xuaW1wb3J0IHsgQ3VzdG9tQXBvbGxvQ2xpZW50IH0gZnJvbSAnLi4vLi4vY2xpZW50L2N1c3RvbUFwb2xsb0NsaWVudCc7XG5pbXBvcnQge1xuICBnZXRXYWxsZXRBZGRyZXNzTkZUc1Jhd1F1ZXJ5LFxuICBXYWxsZXRBZGRyZXNzTkZUc1F1ZXJ5VmFyaWFibGVzLFxufSBmcm9tICcuL2dldE5GVHNCeVdhbGxldEFkZHJlc3MvZ2V0TkZUc0J5V2FsbGV0QWRkcmVzcyc7XG5pbXBvcnQge1xuICBnZXRXYWxsZXRFTlNORlRzUmF3UXVlcnksXG4gIFdhbGxldEVOU05GVHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi9nZXRORlRzQnlXYWxsZXRFTlMvZ2V0TkZUc0J5V2FsbGV0RU5TJztcbmltcG9ydCB7IFdhbGxldE5GVHNRdWVyeVJlc3BvbnNlIH0gZnJvbSAnLi9zaGFyZWRUeXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBORlRRdWVyaWVzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGllbnQ6IEN1c3RvbUFwb2xsb0NsaWVudCkge31cblxuICBhc3luYyBnZXRORlRzQnlXYWxsZXRBZGRyZXNzKFxuICAgIHZhcmlhYmxlczogV2FsbGV0QWRkcmVzc05GVHNRdWVyeVZhcmlhYmxlc1xuICApOiBQcm9taXNlPEFwb2xsb1F1ZXJ5UmVzdWx0PFdhbGxldE5GVHNRdWVyeVJlc3BvbnNlPj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNsaWVudC5xdWVyeSh7XG4gICAgICBxdWVyeTogZ2V0V2FsbGV0QWRkcmVzc05GVHNSYXdRdWVyeSxcbiAgICAgIHZhcmlhYmxlcyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldE5GVHNCeVdhbGxldEVOUyhcbiAgICB2YXJpYWJsZXM6IFdhbGxldEVOU05GVHNRdWVyeVZhcmlhYmxlc1xuICApOiBQcm9taXNlPEFwb2xsb1F1ZXJ5UmVzdWx0PFdhbGxldE5GVHNRdWVyeVJlc3BvbnNlPj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNsaWVudC5xdWVyeSh7XG4gICAgICBxdWVyeTogZ2V0V2FsbGV0RU5TTkZUc1Jhd1F1ZXJ5LFxuICAgICAgdmFyaWFibGVzLFxuICAgIH0pO1xuICB9XG59XG4iLCIvKipcbiAqIEB0b2RvIGltcGxlbWVudCBnZW5lcmljIHR5cGluZ1xuICovXG5leHBvcnQgY29uc3QgcmVtb3ZlTm9kZXNBbmRFZGdlcyA9IChkYXRhOiBhbnkpOiBhbnkgfCBhbnlbXSA9PiB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhkYXRhKTtcbiAgY29uc3Qgb3V0cHV0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAga2V5c1xuICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5ICE9PSAnX190eXBlbmFtZScpXG4gICAgLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBkYXRhW2tleV07XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHxcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHxcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fFxuICAgICAgICB2YWx1ZSA9PT0gbnVsbFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiAob3V0cHV0W2tleV0gPSB2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKG91dHB1dFtrZXldID0gdmFsdWUubWFwKChpdGVtKSA9PiByZW1vdmVOb2Rlc0FuZEVkZ2VzKGl0ZW0pKSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgJiZcbiAgICAgICAgKHZhbHVlLmVkZ2VzIHx8IHZhbHVlLnRvdGFsIHx8IHZhbHVlLnBhZ2VJbmZvIHx8IHZhbHVlLmJyZWFkY3J1bWJzKVxuICAgICAgKSB7XG4gICAgICAgIGlmICh2YWx1ZS5icmVhZGNydW1icykgb3V0cHV0W2Ake2tleX1CcmVhZGNydW1ic2BdID0gdmFsdWUuYnJlYWRjcnVtYnM7XG4gICAgICAgIGlmICh2YWx1ZS50b3RhbCkgb3V0cHV0W2Ake2tleX1Ub3RhbGBdID0gdmFsdWUudG90YWw7XG4gICAgICAgIGlmICh2YWx1ZS52aWV3cG9ydCkgb3V0cHV0W2Ake2tleX1WaWV3cG9ydGBdID0gdmFsdWUudmlld3BvcnQ7XG4gICAgICAgIGlmICh2YWx1ZS5wYWdlSW5mbykge1xuICAgICAgICAgIGNvbnN0IHsgX190eXBlbmFtZSwgLi4ucGFnZUluZm9SZXN0IH0gPSB2YWx1ZS5wYWdlSW5mbztcbiAgICAgICAgICBvdXRwdXRbYCR7a2V5fVBhZ2VJbmZvYF0gPSBwYWdlSW5mb1Jlc3Q7XG4gICAgICAgIH1cbiAgICAgICAgb3V0cHV0W2tleV0gPSB2YWx1ZS5lZGdlcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtLm5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiByZW1vdmVOb2Rlc0FuZEVkZ2VzKGl0ZW0ubm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dHB1dFtrZXldID0gdmFsdWUgPT09IG51bGwgPyBudWxsIDogcmVtb3ZlTm9kZXNBbmRFZGdlcyh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgcmV0dXJuIG91dHB1dDtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAYXBvbGxvL2NsaWVudC9jb3JlXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBhcG9sbG8vY2xpZW50L2xpbmsvY29udGV4dFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAYXBvbGxvL2NsaWVudC9saW5rL2Vycm9yXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNyb3NzLWZldGNoL3BvbHlmaWxsXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInRzbGliXCIpOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJpbXBvcnQgJ2Nyb3NzLWZldGNoL3BvbHlmaWxsJztcbmV4cG9ydCAqIGZyb20gJy4vY2xpZW50JztcbmV4cG9ydCB7IFF1aWNrTm9kZVNESyBhcyBkZWZhdWx0IH0gZnJvbSAnLi9jbGllbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyaWVzJztcbiJdLCJuYW1lcyI6WyJBcG9sbG9DbGllbnQiLCJmcm9tIiwiSHR0cExpbmsiLCJJbk1lbW9yeUNhY2hlIiwic2V0Q29udGV4dCIsIm9uRXJyb3IiLCJORlRRdWVyaWVzIiwiQ3VzdG9tQXBvbGxvQ2xpZW50IiwiUVVJQ0tOT0RFX0dSQVBIUUxfQ0xJRU5UX1NVUFBSRVNTX1dBUk5JTkdTIiwicHJvY2VzcyIsImVudiIsImh0dHBMaW5rIiwidXJpIiwiZXJyb3JMaW5rIiwibmV0d29ya0Vycm9yIiwic3RhdHVzQ29kZSIsImNvbnNvbGUiLCJ3YXJuIiwiUXVpY2tOb2RlU0RLIiwiY29uc3RydWN0b3IiLCJpY3lBcGlLZXkiLCJhcG9sbG9DbGllbnQiLCJjcmVhdGVBcG9sbG9DbGllbnQiLCJjdXN0b21BcG9sbG9DbGllbnQiLCJuZnQiLCJhdXRoTGluayIsIl8iLCJoZWFkZXJzIiwiX19hd2FpdGVyIiwiY2FjaGVTdHJ1Y3R1cmUiLCJ0eXBlUG9saWNpZXMiLCJFUkM3MjFUb2tlbiIsImtleUZpZWxkcyIsIkVSQzcyMUNvbnRyYWN0IiwiV2FsbGV0IiwicmF3Q2xpZW50IiwibGluayIsImNhY2hlIiwicmVtb3ZlTm9kZXNBbmRFZGdlcyIsInF1ZXJ5Iiwib3B0aW9ucyIsInJlc3VsdCIsImRhdGEiLCJncWwiLCJnZXRXYWxsZXRBZGRyZXNzTkZUc1Jhd1F1ZXJ5IiwiZ2V0V2FsbGV0RU5TTkZUc1Jhd1F1ZXJ5IiwiY2xpZW50IiwiZ2V0TkZUc0J5V2FsbGV0QWRkcmVzcyIsInZhcmlhYmxlcyIsImdldE5GVHNCeVdhbGxldEVOUyIsImtleXMiLCJPYmplY3QiLCJvdXRwdXQiLCJmaWx0ZXIiLCJrZXkiLCJmb3JFYWNoIiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJpdGVtIiwiZWRnZXMiLCJ0b3RhbCIsInBhZ2VJbmZvIiwiYnJlYWRjcnVtYnMiLCJ2aWV3cG9ydCIsIl9hIiwiX190eXBlbmFtZSIsInBhZ2VJbmZvUmVzdCIsIm5vZGUiLCJkZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './nft';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ApolloQueryResult } from '@apollo/client';
|
|
2
|
+
import { CustomApolloClient } from '../../client/customApolloClient';
|
|
3
|
+
import { WalletAddressNFTsQueryVariables } from './getNFTsByWalletAddress/getNFTsByWalletAddress';
|
|
4
|
+
import { WalletENSNFTsQueryVariables } from './getNFTsByWalletENS/getNFTsByWalletENS';
|
|
5
|
+
import { WalletNFTsQueryResponse } from './sharedTypes';
|
|
6
|
+
export declare class NFTQueries {
|
|
7
|
+
private client;
|
|
8
|
+
constructor(client: CustomApolloClient);
|
|
9
|
+
getNFTsByWalletAddress(variables: WalletAddressNFTsQueryVariables): Promise<ApolloQueryResult<WalletNFTsQueryResponse>>;
|
|
10
|
+
getNFTsByWalletENS(variables: WalletENSNFTsQueryVariables): Promise<ApolloQueryResult<WalletNFTsQueryResponse>>;
|
|
11
|
+
}
|