@paulstinchcombe/gasless-nft-tx 0.2.4 โ 0.2.6
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 +37 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/nft-listing.d.ts +103 -0
- package/dist/nft-listing.d.ts.map +1 -0
- package/dist/nft-listing.js +457 -0
- package/dist/nft-listing.js.map +1 -0
- package/dist/simpleaccount-operations.d.ts +35 -0
- package/dist/simpleaccount-operations.d.ts.map +1 -1
- package/dist/simpleaccount-operations.js +53 -0
- package/dist/simpleaccount-operations.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,7 @@ A robust, production-ready TypeScript library that enables **gasless NFT transac
|
|
|
8
8
|
- **๐ฆ SimpleAccount Operations**: Deploy, mint, and manage NFTs through funded SimpleAccount
|
|
9
9
|
- **๐ Auto-Deploy Everything**: Automatically deploys SimpleAccountFactory and SimpleAccount when needed
|
|
10
10
|
- **๐จ NFT Operations**: Deploy, mint, and buy NFTs without any gas fees
|
|
11
|
+
- **๐ NFT Discovery**: Find ALL NFTs owned by any EOA across ALL contracts
|
|
11
12
|
- **๐ง Flexible Deployment**: Deploy NFTs with SimpleAccount as owner from the start
|
|
12
13
|
- **๐ฆ Batch Operations**: Execute multiple operations across different contracts
|
|
13
14
|
- **๐ฐ Backend Minting**: Alternative backend-controlled minting for maximum reliability
|
|
@@ -22,10 +23,11 @@ A robust, production-ready TypeScript library that enables **gasless NFT transac
|
|
|
22
23
|
|
|
23
24
|
- ๐ **SimpleAccount Owner Deployment**: Deploy NFTs with SimpleAccount as owner from the start - no ownership transfer needed!
|
|
24
25
|
- ๐ฏ **Immediate Gasless Minting**: Mint NFTs immediately after deployment through SimpleAccount
|
|
26
|
+
- ๐ **Comprehensive NFT Discovery**: Find ALL NFTs owned by any EOA across ALL contracts
|
|
25
27
|
- ๐ **Streamlined Workflow**: One-step deployment and minting process
|
|
26
28
|
- ๐ฆ **Funded SimpleAccount**: SimpleAccount pays its own gas for truly gasless user experience
|
|
27
29
|
- ๐ง **Backend Minting**: Alternative approach for maximum reliability
|
|
28
|
-
- ๐ **Comprehensive Guides**: [Gas Optimization](./docs/GAS_OPTIMIZATION_GUIDE.md), [SimpleAccount Owner Deployment](./docs/SIMPLEACCOUNT_OWNER_DEPLOYMENT.md)
|
|
30
|
+
- ๐ **Comprehensive Guides**: [Gas Optimization](./docs/GAS_OPTIMIZATION_GUIDE.md), [SimpleAccount Owner Deployment](./docs/SIMPLEACCOUNT_OWNER_DEPLOYMENT.md), [NFT Listing](./docs/NFT_LISTING_GUIDE.md)
|
|
29
31
|
|
|
30
32
|
## ๐ Installation
|
|
31
33
|
|
|
@@ -78,7 +80,38 @@ if (deployResult.success) {
|
|
|
78
80
|
}
|
|
79
81
|
```
|
|
80
82
|
|
|
81
|
-
### 2.
|
|
83
|
+
### 2. NFT Discovery (NEW!)
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
import { createNftListingOperations } from '@paulstinchcombe/gasless-nft-tx';
|
|
87
|
+
|
|
88
|
+
// Create NFT listing instance
|
|
89
|
+
const nftListing = createNftListingOperations({
|
|
90
|
+
rpcUrl: 'https://sepolia.base.org',
|
|
91
|
+
includeMetadata: true,
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// Discover ALL NFTs owned by an address across ALL contracts
|
|
95
|
+
const result = await nftListing.discoverAllNftsForOwner('0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6');
|
|
96
|
+
|
|
97
|
+
if (result.success) {
|
|
98
|
+
console.log(`Found ${result.totalCount} NFTs across ALL contracts`);
|
|
99
|
+
|
|
100
|
+
// Group by contract
|
|
101
|
+
const byContract = result.tokens?.reduce((acc, token) => {
|
|
102
|
+
const contract = token.contractAddress;
|
|
103
|
+
if (!acc[contract]) acc[contract] = [];
|
|
104
|
+
acc[contract].push(token);
|
|
105
|
+
return acc;
|
|
106
|
+
}, {} as Record<string, typeof result.tokens>);
|
|
107
|
+
|
|
108
|
+
Object.entries(byContract || {}).forEach(([contract, tokens]) => {
|
|
109
|
+
console.log(`Contract ${contract}: ${tokens.length} tokens`);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 3. Backend Minting (Alternative)
|
|
82
115
|
|
|
83
116
|
```typescript
|
|
84
117
|
import { createBackendMintHandler } from '@paulstinchcombe/gasless-nft-tx';
|
|
@@ -106,6 +139,7 @@ const mintResult = await mintHandler.mintNft({
|
|
|
106
139
|
|
|
107
140
|
- **[SimpleAccount Guide](./docs/SIMPLE_ACCOUNT_GUIDE.md)** - Complete guide to SimpleAccount operations
|
|
108
141
|
- **[SimpleAccount Owner Deployment](./docs/SIMPLEACCOUNT_OWNER_DEPLOYMENT.md)** - Deploy NFTs with SimpleAccount as owner
|
|
142
|
+
- **[NFT Listing Guide](./docs/NFT_LISTING_GUIDE.md)** - Discover and list NFTs owned by any EOA
|
|
109
143
|
- **[Backend Mint Guide](./docs/BACKEND_MINT_GUIDE.md)** - Alternative backend-controlled minting
|
|
110
144
|
- **[Quick Reference](./docs/QUICK_REFERENCE.md)** - Quick start and common patterns
|
|
111
145
|
|
|
@@ -162,6 +196,7 @@ Check the `examples/` directory for complete working examples:
|
|
|
162
196
|
- `test-simpleaccount-operations.ts` - Basic SimpleAccount operations
|
|
163
197
|
- `deploy-with-simpleaccount.ts` - Deploy NFT with SimpleAccount as owner
|
|
164
198
|
- `fund-simpleaccount.ts` - Fund SimpleAccount with ETH
|
|
199
|
+
- `list-nfts-example.ts` - Complete NFT discovery and listing examples
|
|
165
200
|
- `backend-mint-api.ts` - Backend minting API example
|
|
166
201
|
|
|
167
202
|
## ๐งช Testing
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export { EoaMintHandler, SimpleAccountMintHandler, BackendMintHandler, createEoa
|
|
|
4
4
|
export type { EoaMintConfig, SimpleAccountMintConfig, BackendMintConfig, MintRequest, MintResult } from './backend-mint';
|
|
5
5
|
export { SimpleAccountOperations, createSimpleAccountOperations } from './simpleaccount-operations';
|
|
6
6
|
export type { SimpleAccountConfig, DeployResult, MintResult as SimpleAccountMintResult, BuyResult, TransferOwnershipResult, } from './simpleaccount-operations';
|
|
7
|
+
export { NftListingOperations, createNftListingOperations } from './nft-listing';
|
|
8
|
+
export type { NftToken, NftMetadata, NftListingResult, NftListingConfig } from './nft-listing';
|
|
7
9
|
export { deploySimpleAccountFactory, createSimpleAccount, getSimpleAccountAddressFromFactory, isSimpleAccountDeployed, } from './SimpleAccountDeployer';
|
|
8
10
|
export { SIMPLE_ACCOUNT_BYTECODE, SIMPLE_ACCOUNT_FACTORY_BYTECODE, SIMPLE_ACCOUNT_ABI, SIMPLE_ACCOUNT_FACTORY_ABI, getSimpleAccountAddress, } from './SmartContractWallet/SimpleAccount';
|
|
9
11
|
export type { NftConstructorArgs } from './types';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGlG,OAAO,EACN,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGzH,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AACpG,YAAY,EACX,mBAAmB,EACnB,YAAY,EACZ,UAAU,IAAI,uBAAuB,EACrC,SAAS,EACT,uBAAuB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACN,0BAA0B,EAC1B,mBAAmB,EACnB,kCAAkC,EAClC,uBAAuB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACN,uBAAuB,EACvB,+BAA+B,EAC/B,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,GACvB,MAAM,qCAAqC,CAAC;AAG7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGlG,OAAO,EACN,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGzH,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AACpG,YAAY,EACX,mBAAmB,EACnB,YAAY,EACZ,UAAU,IAAI,uBAAuB,EACrC,SAAS,EACT,uBAAuB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACjF,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG/F,OAAO,EACN,0BAA0B,EAC1B,mBAAmB,EACnB,kCAAkC,EAClC,uBAAuB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACN,uBAAuB,EACvB,+BAA+B,EAC/B,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,GACvB,MAAM,qCAAqC,CAAC;AAG7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSimpleAccountAddress = exports.SIMPLE_ACCOUNT_FACTORY_ABI = exports.SIMPLE_ACCOUNT_ABI = exports.SIMPLE_ACCOUNT_FACTORY_BYTECODE = exports.SIMPLE_ACCOUNT_BYTECODE = exports.isSimpleAccountDeployed = exports.getSimpleAccountAddressFromFactory = exports.createSimpleAccount = exports.deploySimpleAccountFactory = exports.createSimpleAccountOperations = exports.SimpleAccountOperations = exports.createBackendMintHandler = exports.createSimpleAccountMintHandler = exports.createEoaMintHandler = exports.BackendMintHandler = exports.SimpleAccountMintHandler = exports.EoaMintHandler = exports.mintToSelf = exports.safeMint = exports.mintERC721A = exports.executeCustomNftCall = exports.deployContractFromEOA = exports.encodeNftConstructorArgs = void 0;
|
|
3
|
+
exports.getSimpleAccountAddress = exports.SIMPLE_ACCOUNT_FACTORY_ABI = exports.SIMPLE_ACCOUNT_ABI = exports.SIMPLE_ACCOUNT_FACTORY_BYTECODE = exports.SIMPLE_ACCOUNT_BYTECODE = exports.isSimpleAccountDeployed = exports.getSimpleAccountAddressFromFactory = exports.createSimpleAccount = exports.deploySimpleAccountFactory = exports.createNftListingOperations = exports.NftListingOperations = exports.createSimpleAccountOperations = exports.SimpleAccountOperations = exports.createBackendMintHandler = exports.createSimpleAccountMintHandler = exports.createEoaMintHandler = exports.BackendMintHandler = exports.SimpleAccountMintHandler = exports.EoaMintHandler = exports.mintToSelf = exports.safeMint = exports.mintERC721A = exports.executeCustomNftCall = exports.deployContractFromEOA = exports.encodeNftConstructorArgs = void 0;
|
|
4
4
|
// Main exports for the gasless NFT transaction library
|
|
5
5
|
var nft_operations_1 = require("./nft-operations");
|
|
6
6
|
Object.defineProperty(exports, "encodeNftConstructorArgs", { enumerable: true, get: function () { return nft_operations_1.encodeNftConstructorArgs; } });
|
|
@@ -23,6 +23,10 @@ Object.defineProperty(exports, "createBackendMintHandler", { enumerable: true, g
|
|
|
23
23
|
var simpleaccount_operations_1 = require("./simpleaccount-operations");
|
|
24
24
|
Object.defineProperty(exports, "SimpleAccountOperations", { enumerable: true, get: function () { return simpleaccount_operations_1.SimpleAccountOperations; } });
|
|
25
25
|
Object.defineProperty(exports, "createSimpleAccountOperations", { enumerable: true, get: function () { return simpleaccount_operations_1.createSimpleAccountOperations; } });
|
|
26
|
+
// NFT Listing operations
|
|
27
|
+
var nft_listing_1 = require("./nft-listing");
|
|
28
|
+
Object.defineProperty(exports, "NftListingOperations", { enumerable: true, get: function () { return nft_listing_1.NftListingOperations; } });
|
|
29
|
+
Object.defineProperty(exports, "createNftListingOperations", { enumerable: true, get: function () { return nft_listing_1.createNftListingOperations; } });
|
|
26
30
|
// Export SimpleAccount functionality
|
|
27
31
|
var SimpleAccountDeployer_1 = require("./SimpleAccountDeployer");
|
|
28
32
|
Object.defineProperty(exports, "deploySimpleAccountFactory", { enumerable: true, get: function () { return SimpleAccountDeployer_1.deploySimpleAccountFactory; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,mDAAmF;AAA1E,0HAAA,wBAAwB,OAAA;AAAE,uHAAA,qBAAqB,OAAA;AAExD,4DAA4D;AAC5D,iEAAkG;AAAzF,6HAAA,oBAAoB,OAAA;AAAE,oHAAA,WAAW,OAAA;AAAE,iHAAA,QAAQ,OAAA;AAAE,mHAAA,UAAU,OAAA;AAEhE,4DAA4D;AAC5D,+CAOwB;AANvB,8GAAA,cAAc,OAAA;AACd,wHAAA,wBAAwB,OAAA;AACxB,kHAAA,kBAAkB,OAAA;AAClB,oHAAA,oBAAoB,OAAA;AACpB,8HAAA,8BAA8B,OAAA;AAC9B,wHAAA,wBAAwB,OAAA;AAIzB,oEAAoE;AACpE,uEAAoG;AAA3F,mIAAA,uBAAuB,OAAA;AAAE,yIAAA,6BAA6B,OAAA;AAS/D,qCAAqC;AACrC,iEAKiC;AAJhC,mIAAA,0BAA0B,OAAA;AAC1B,4HAAA,mBAAmB,OAAA;AACnB,2IAAA,kCAAkC,OAAA;AAClC,gIAAA,uBAAuB,OAAA;AAGxB,qEAM6C;AAL5C,wHAAA,uBAAuB,OAAA;AACvB,gIAAA,+BAA+B,OAAA;AAC/B,mHAAA,kBAAkB,OAAA;AAClB,2HAAA,0BAA0B,OAAA;AAC1B,wHAAA,uBAAuB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,mDAAmF;AAA1E,0HAAA,wBAAwB,OAAA;AAAE,uHAAA,qBAAqB,OAAA;AAExD,4DAA4D;AAC5D,iEAAkG;AAAzF,6HAAA,oBAAoB,OAAA;AAAE,oHAAA,WAAW,OAAA;AAAE,iHAAA,QAAQ,OAAA;AAAE,mHAAA,UAAU,OAAA;AAEhE,4DAA4D;AAC5D,+CAOwB;AANvB,8GAAA,cAAc,OAAA;AACd,wHAAA,wBAAwB,OAAA;AACxB,kHAAA,kBAAkB,OAAA;AAClB,oHAAA,oBAAoB,OAAA;AACpB,8HAAA,8BAA8B,OAAA;AAC9B,wHAAA,wBAAwB,OAAA;AAIzB,oEAAoE;AACpE,uEAAoG;AAA3F,mIAAA,uBAAuB,OAAA;AAAE,yIAAA,6BAA6B,OAAA;AAS/D,yBAAyB;AACzB,6CAAiF;AAAxE,mHAAA,oBAAoB,OAAA;AAAE,yHAAA,0BAA0B,OAAA;AAGzD,qCAAqC;AACrC,iEAKiC;AAJhC,mIAAA,0BAA0B,OAAA;AAC1B,4HAAA,mBAAmB,OAAA;AACnB,2IAAA,kCAAkC,OAAA;AAClC,gIAAA,uBAAuB,OAAA;AAGxB,qEAM6C;AAL5C,wHAAA,uBAAuB,OAAA;AACvB,gIAAA,+BAA+B,OAAA;AAC/B,mHAAA,kBAAkB,OAAA;AAClB,2HAAA,0BAA0B,OAAA;AAC1B,wHAAA,uBAAuB,OAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NFT Listing Operations
|
|
3
|
+
*
|
|
4
|
+
* This module provides functionality to list NFTs owned by a user EOA.
|
|
5
|
+
* It supports both specific contract queries and general NFT discovery.
|
|
6
|
+
*/
|
|
7
|
+
import { Address } from 'viem';
|
|
8
|
+
export interface NftToken {
|
|
9
|
+
contractAddress: Address;
|
|
10
|
+
tokenId: bigint;
|
|
11
|
+
owner: Address;
|
|
12
|
+
metadata?: NftMetadata;
|
|
13
|
+
}
|
|
14
|
+
export interface NftMetadata {
|
|
15
|
+
name?: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
image?: string;
|
|
18
|
+
attributes?: Array<{
|
|
19
|
+
trait_type: string;
|
|
20
|
+
value: string | number;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
export interface NftListingResult {
|
|
24
|
+
success: boolean;
|
|
25
|
+
tokens?: NftToken[];
|
|
26
|
+
totalCount?: number;
|
|
27
|
+
error?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface NftListingConfig {
|
|
30
|
+
/** RPC URL for the blockchain network */
|
|
31
|
+
rpcUrl: string;
|
|
32
|
+
/** Optional: Specific contract addresses to check (if not provided, will attempt to discover) */
|
|
33
|
+
contractAddresses?: Address[];
|
|
34
|
+
/** Optional: Maximum number of tokens to return per contract */
|
|
35
|
+
maxTokensPerContract?: number;
|
|
36
|
+
/** Optional: Whether to fetch metadata for each token */
|
|
37
|
+
includeMetadata?: boolean;
|
|
38
|
+
/** Optional: Block range for event scanning (defaults to last 10000 blocks) */
|
|
39
|
+
blockRange?: {
|
|
40
|
+
fromBlock?: bigint;
|
|
41
|
+
toBlock?: bigint;
|
|
42
|
+
};
|
|
43
|
+
/** Optional: Maximum number of contracts to discover (defaults to 50) */
|
|
44
|
+
maxContractsToDiscover?: number;
|
|
45
|
+
}
|
|
46
|
+
export declare class NftListingOperations {
|
|
47
|
+
private config;
|
|
48
|
+
private publicClient;
|
|
49
|
+
private static readonly ERC721_ABI;
|
|
50
|
+
constructor(config: NftListingConfig);
|
|
51
|
+
/**
|
|
52
|
+
* List all NFTs owned by a specific address for a given contract
|
|
53
|
+
*/
|
|
54
|
+
listNftsForContract(ownerAddress: Address, contractAddress: Address): Promise<NftListingResult>;
|
|
55
|
+
/**
|
|
56
|
+
* List all NFTs owned by a specific address across multiple contracts
|
|
57
|
+
*/
|
|
58
|
+
listAllNftsForOwner(ownerAddress: Address): Promise<NftListingResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Discover all NFT contracts that an address has interacted with
|
|
61
|
+
*/
|
|
62
|
+
discoverAllNftContracts(ownerAddress: Address): Promise<{
|
|
63
|
+
success: boolean;
|
|
64
|
+
contractAddresses?: Address[];
|
|
65
|
+
error?: string;
|
|
66
|
+
}>;
|
|
67
|
+
/**
|
|
68
|
+
* Comprehensive NFT discovery - finds ALL NFTs owned by an address
|
|
69
|
+
* This is the main method you should use for complete discovery
|
|
70
|
+
*/
|
|
71
|
+
discoverAllNftsForOwner(ownerAddress: Address): Promise<NftListingResult>;
|
|
72
|
+
/**
|
|
73
|
+
* Get detailed information about a specific NFT
|
|
74
|
+
*/
|
|
75
|
+
getNftDetails(contractAddress: Address, tokenId: bigint): Promise<{
|
|
76
|
+
success: boolean;
|
|
77
|
+
token?: NftToken;
|
|
78
|
+
error?: string;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* Check if a contract supports ERC-721 standard
|
|
82
|
+
*/
|
|
83
|
+
private isERC721Contract;
|
|
84
|
+
/**
|
|
85
|
+
* Fetch metadata for a specific token
|
|
86
|
+
*/
|
|
87
|
+
private fetchTokenMetadata;
|
|
88
|
+
/**
|
|
89
|
+
* Get contract information (name, symbol, total supply)
|
|
90
|
+
*/
|
|
91
|
+
getContractInfo(contractAddress: Address): Promise<{
|
|
92
|
+
success: boolean;
|
|
93
|
+
name?: string;
|
|
94
|
+
symbol?: string;
|
|
95
|
+
totalSupply?: bigint;
|
|
96
|
+
error?: string;
|
|
97
|
+
}>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create an NftListingOperations instance
|
|
101
|
+
*/
|
|
102
|
+
export declare function createNftListingOperations(config: NftListingConfig): NftListingOperations;
|
|
103
|
+
//# sourceMappingURL=nft-listing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nft-listing.d.ts","sourceRoot":"","sources":["../src/nft-listing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAwE,MAAM,MAAM,CAAC;AAGrG,MAAM,WAAW,QAAQ;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAChC,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,iGAAiG;IACjG,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC9B,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+EAA+E;IAC/E,UAAU,CAAC,EAAE;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,yEAAyE;IACzE,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,qBAAa,oBAAoB;IAChC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,YAAY,CAAwC;IAG5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAS/B;gBAES,MAAM,EAAE,gBAAgB;IAQpC;;OAEG;IACG,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8ErG;;OAEG;IACG,mBAAmB,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwD3E;;OAEG;IACG,uBAAuB,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC;QAC7D,OAAO,EAAE,OAAO,CAAC;QACjB,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAwGF;;;OAGG;IACG,uBAAuB,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0D/E;;OAEG;IACG,aAAa,CAClB,eAAe,EAAE,OAAO,EACxB,OAAO,EAAE,MAAM,GACb,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAoCF;;OAEG;YACW,gBAAgB;IA2B9B;;OAEG;YACW,kBAAkB;IAqChC;;OAEG;IACG,eAAe,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC;QACxD,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CAoCF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,GAAG,oBAAoB,CAEzF"}
|
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* NFT Listing Operations
|
|
4
|
+
*
|
|
5
|
+
* This module provides functionality to list NFTs owned by a user EOA.
|
|
6
|
+
* It supports both specific contract queries and general NFT discovery.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.NftListingOperations = void 0;
|
|
10
|
+
exports.createNftListingOperations = createNftListingOperations;
|
|
11
|
+
const viem_1 = require("viem");
|
|
12
|
+
const chains_1 = require("viem/chains");
|
|
13
|
+
class NftListingOperations {
|
|
14
|
+
config;
|
|
15
|
+
publicClient;
|
|
16
|
+
// Standard ERC-721 ABI for basic operations
|
|
17
|
+
static ERC721_ABI = (0, viem_1.parseAbi)([
|
|
18
|
+
'function balanceOf(address owner) view returns (uint256)',
|
|
19
|
+
'function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)',
|
|
20
|
+
'function ownerOf(uint256 tokenId) view returns (address)',
|
|
21
|
+
'function tokenURI(uint256 tokenId) view returns (string)',
|
|
22
|
+
'function name() view returns (string)',
|
|
23
|
+
'function symbol() view returns (string)',
|
|
24
|
+
'function totalSupply() view returns (uint256)',
|
|
25
|
+
'function supportsInterface(bytes4 interfaceId) view returns (bool)',
|
|
26
|
+
]);
|
|
27
|
+
constructor(config) {
|
|
28
|
+
this.config = config;
|
|
29
|
+
this.publicClient = (0, viem_1.createPublicClient)({
|
|
30
|
+
transport: (0, viem_1.http)(config.rpcUrl),
|
|
31
|
+
chain: chains_1.baseSepolia,
|
|
32
|
+
}); // Type assertion to avoid viem version compatibility issues
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* List all NFTs owned by a specific address for a given contract
|
|
36
|
+
*/
|
|
37
|
+
async listNftsForContract(ownerAddress, contractAddress) {
|
|
38
|
+
try {
|
|
39
|
+
console.log(`๐ Listing NFTs for ${ownerAddress} in contract ${contractAddress}`);
|
|
40
|
+
// Check if contract supports ERC-721
|
|
41
|
+
const isERC721 = await this.isERC721Contract(contractAddress);
|
|
42
|
+
if (!isERC721) {
|
|
43
|
+
return {
|
|
44
|
+
success: false,
|
|
45
|
+
error: `Contract ${contractAddress} does not support ERC-721 standard`,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
// Get balance of owner
|
|
49
|
+
const balance = await this.publicClient.readContract({
|
|
50
|
+
address: contractAddress,
|
|
51
|
+
abi: NftListingOperations.ERC721_ABI,
|
|
52
|
+
functionName: 'balanceOf',
|
|
53
|
+
args: [ownerAddress],
|
|
54
|
+
});
|
|
55
|
+
console.log(` Balance: ${balance} tokens`);
|
|
56
|
+
if (balance === 0n) {
|
|
57
|
+
return {
|
|
58
|
+
success: true,
|
|
59
|
+
tokens: [],
|
|
60
|
+
totalCount: 0,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// Get all token IDs owned by the address
|
|
64
|
+
const tokens = [];
|
|
65
|
+
const maxTokens = this.config.maxTokensPerContract || Number(balance);
|
|
66
|
+
for (let i = 0; i < Math.min(Number(balance), maxTokens); i++) {
|
|
67
|
+
try {
|
|
68
|
+
const tokenId = await this.publicClient.readContract({
|
|
69
|
+
address: contractAddress,
|
|
70
|
+
abi: NftListingOperations.ERC721_ABI,
|
|
71
|
+
functionName: 'tokenOfOwnerByIndex',
|
|
72
|
+
args: [ownerAddress, BigInt(i)],
|
|
73
|
+
});
|
|
74
|
+
const token = {
|
|
75
|
+
contractAddress,
|
|
76
|
+
tokenId,
|
|
77
|
+
owner: ownerAddress,
|
|
78
|
+
};
|
|
79
|
+
// Fetch metadata if requested
|
|
80
|
+
if (this.config.includeMetadata) {
|
|
81
|
+
token.metadata = await this.fetchTokenMetadata(contractAddress, tokenId);
|
|
82
|
+
}
|
|
83
|
+
tokens.push(token);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.warn(` Failed to get token at index ${i}: ${error.message}`);
|
|
87
|
+
// Continue with other tokens
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
console.log(` Found ${tokens.length} tokens`);
|
|
91
|
+
return {
|
|
92
|
+
success: true,
|
|
93
|
+
tokens,
|
|
94
|
+
totalCount: tokens.length,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error(`โ Failed to list NFTs for contract ${contractAddress}:`, error);
|
|
99
|
+
return {
|
|
100
|
+
success: false,
|
|
101
|
+
error: error.message || 'Unknown error occurred',
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* List all NFTs owned by a specific address across multiple contracts
|
|
107
|
+
*/
|
|
108
|
+
async listAllNftsForOwner(ownerAddress) {
|
|
109
|
+
try {
|
|
110
|
+
console.log(`๐ Listing all NFTs for ${ownerAddress}`);
|
|
111
|
+
const allTokens = [];
|
|
112
|
+
let totalCount = 0;
|
|
113
|
+
// If specific contracts are provided, check only those
|
|
114
|
+
if (this.config.contractAddresses && this.config.contractAddresses.length > 0) {
|
|
115
|
+
console.log(` Checking ${this.config.contractAddresses.length} specific contracts`);
|
|
116
|
+
for (const contractAddress of this.config.contractAddresses) {
|
|
117
|
+
const result = await this.listNftsForContract(ownerAddress, contractAddress);
|
|
118
|
+
if (result.success && result.tokens) {
|
|
119
|
+
allTokens.push(...result.tokens);
|
|
120
|
+
totalCount += result.totalCount || 0;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// Discover all NFT contracts that this address has interacted with
|
|
126
|
+
console.log(` No specific contracts provided. Discovering NFT contracts...`);
|
|
127
|
+
const discoveryResult = await this.discoverAllNftContracts(ownerAddress);
|
|
128
|
+
if (!discoveryResult.success) {
|
|
129
|
+
return discoveryResult;
|
|
130
|
+
}
|
|
131
|
+
const discoveredContracts = discoveryResult.contractAddresses || [];
|
|
132
|
+
console.log(` Discovered ${discoveredContracts.length} NFT contracts`);
|
|
133
|
+
// Check each discovered contract
|
|
134
|
+
for (const contractAddress of discoveredContracts) {
|
|
135
|
+
const result = await this.listNftsForContract(ownerAddress, contractAddress);
|
|
136
|
+
if (result.success && result.tokens) {
|
|
137
|
+
allTokens.push(...result.tokens);
|
|
138
|
+
totalCount += result.totalCount || 0;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
console.log(`โ
Found ${totalCount} total NFTs across all contracts`);
|
|
143
|
+
return {
|
|
144
|
+
success: true,
|
|
145
|
+
tokens: allTokens,
|
|
146
|
+
totalCount,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
console.error(`โ Failed to list all NFTs for owner ${ownerAddress}:`, error);
|
|
151
|
+
return {
|
|
152
|
+
success: false,
|
|
153
|
+
error: error.message || 'Unknown error occurred',
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Discover all NFT contracts that an address has interacted with
|
|
159
|
+
*/
|
|
160
|
+
async discoverAllNftContracts(ownerAddress) {
|
|
161
|
+
try {
|
|
162
|
+
console.log(`๐ Discovering NFT contracts for ${ownerAddress}`);
|
|
163
|
+
// Get current block number
|
|
164
|
+
const currentBlock = await this.publicClient.getBlockNumber();
|
|
165
|
+
const blockRange = this.config.blockRange || {
|
|
166
|
+
fromBlock: currentBlock - 10000n, // Default to last 10000 blocks
|
|
167
|
+
toBlock: currentBlock,
|
|
168
|
+
};
|
|
169
|
+
console.log(` Scanning blocks ${blockRange.fromBlock} to ${blockRange.toBlock}`);
|
|
170
|
+
// ERC-721 Transfer event signature
|
|
171
|
+
const transferEventSignature = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
|
|
172
|
+
// Get all Transfer events where the address is either from or to
|
|
173
|
+
const logs = await this.publicClient.getLogs({
|
|
174
|
+
fromBlock: blockRange.fromBlock,
|
|
175
|
+
toBlock: blockRange.toBlock,
|
|
176
|
+
topics: [
|
|
177
|
+
transferEventSignature,
|
|
178
|
+
undefined, // from (any)
|
|
179
|
+
undefined, // to (any)
|
|
180
|
+
],
|
|
181
|
+
}); // Type assertion for viem compatibility
|
|
182
|
+
console.log(` Found ${logs.length} Transfer events`);
|
|
183
|
+
// Extract unique contract addresses and verify they are ERC-721
|
|
184
|
+
const contractAddresses = new Set();
|
|
185
|
+
const maxContracts = this.config.maxContractsToDiscover || 50;
|
|
186
|
+
for (const log of logs) {
|
|
187
|
+
try {
|
|
188
|
+
// Decode the Transfer event
|
|
189
|
+
const decoded = (0, viem_1.decodeEventLog)({
|
|
190
|
+
abi: [
|
|
191
|
+
{
|
|
192
|
+
type: 'event',
|
|
193
|
+
name: 'Transfer',
|
|
194
|
+
inputs: [
|
|
195
|
+
{ name: 'from', type: 'address', indexed: true },
|
|
196
|
+
{ name: 'to', type: 'address', indexed: true },
|
|
197
|
+
{ name: 'tokenId', type: 'uint256', indexed: true },
|
|
198
|
+
],
|
|
199
|
+
},
|
|
200
|
+
],
|
|
201
|
+
data: log.data,
|
|
202
|
+
topics: log.topics,
|
|
203
|
+
});
|
|
204
|
+
const { from, to } = decoded.args;
|
|
205
|
+
// Check if this address is involved in the transfer
|
|
206
|
+
if (from.toLowerCase() === ownerAddress.toLowerCase() || to.toLowerCase() === ownerAddress.toLowerCase()) {
|
|
207
|
+
contractAddresses.add(log.address);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
// Skip invalid logs
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
// Limit the number of contracts to check
|
|
215
|
+
if (contractAddresses.size >= maxContracts) {
|
|
216
|
+
console.log(` Reached maximum contract limit (${maxContracts})`);
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
const uniqueContracts = Array.from(contractAddresses);
|
|
221
|
+
console.log(` Found ${uniqueContracts.length} unique contract addresses`);
|
|
222
|
+
// Verify each contract is actually ERC-721
|
|
223
|
+
const verifiedContracts = [];
|
|
224
|
+
for (const contractAddress of uniqueContracts) {
|
|
225
|
+
try {
|
|
226
|
+
const isERC721 = await this.isERC721Contract(contractAddress);
|
|
227
|
+
if (isERC721) {
|
|
228
|
+
verifiedContracts.push(contractAddress);
|
|
229
|
+
console.log(` โ
Verified ERC-721: ${contractAddress}`);
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
console.log(` โ Not ERC-721: ${contractAddress}`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
console.log(` โ Error verifying ${contractAddress}: ${error}`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
console.log(` Verified ${verifiedContracts.length} ERC-721 contracts`);
|
|
240
|
+
return {
|
|
241
|
+
success: true,
|
|
242
|
+
contractAddresses: verifiedContracts,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
console.error(`โ Failed to discover NFT contracts:`, error);
|
|
247
|
+
return {
|
|
248
|
+
success: false,
|
|
249
|
+
error: error.message || 'Unknown error occurred',
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Comprehensive NFT discovery - finds ALL NFTs owned by an address
|
|
255
|
+
* This is the main method you should use for complete discovery
|
|
256
|
+
*/
|
|
257
|
+
async discoverAllNftsForOwner(ownerAddress) {
|
|
258
|
+
try {
|
|
259
|
+
console.log(`๐ Comprehensive NFT discovery for ${ownerAddress}`);
|
|
260
|
+
console.log(` This will scan blockchain events to find ALL NFT contracts`);
|
|
261
|
+
// First discover all NFT contracts
|
|
262
|
+
const discoveryResult = await this.discoverAllNftContracts(ownerAddress);
|
|
263
|
+
if (!discoveryResult.success) {
|
|
264
|
+
return {
|
|
265
|
+
success: false,
|
|
266
|
+
error: `Failed to discover contracts: ${discoveryResult.error}`,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
const contractAddresses = discoveryResult.contractAddresses || [];
|
|
270
|
+
if (contractAddresses.length === 0) {
|
|
271
|
+
console.log(` No NFT contracts found for this address`);
|
|
272
|
+
return {
|
|
273
|
+
success: true,
|
|
274
|
+
tokens: [],
|
|
275
|
+
totalCount: 0,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
// Now list NFTs from all discovered contracts
|
|
279
|
+
console.log(` Checking ${contractAddresses.length} discovered contracts for owned NFTs...`);
|
|
280
|
+
const allTokens = [];
|
|
281
|
+
let totalCount = 0;
|
|
282
|
+
for (const contractAddress of contractAddresses) {
|
|
283
|
+
console.log(` Checking contract: ${contractAddress}`);
|
|
284
|
+
const result = await this.listNftsForContract(ownerAddress, contractAddress);
|
|
285
|
+
if (result.success && result.tokens) {
|
|
286
|
+
allTokens.push(...result.tokens);
|
|
287
|
+
totalCount += result.totalCount || 0;
|
|
288
|
+
console.log(` Found ${result.totalCount} NFTs`);
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
console.log(` No NFTs found or error: ${result.error}`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
console.log(`โ
Discovery complete! Found ${totalCount} NFTs across ${contractAddresses.length} contracts`);
|
|
295
|
+
return {
|
|
296
|
+
success: true,
|
|
297
|
+
tokens: allTokens,
|
|
298
|
+
totalCount,
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
console.error(`โ Comprehensive discovery failed:`, error);
|
|
303
|
+
return {
|
|
304
|
+
success: false,
|
|
305
|
+
error: error.message || 'Unknown error occurred',
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Get detailed information about a specific NFT
|
|
311
|
+
*/
|
|
312
|
+
async getNftDetails(contractAddress, tokenId) {
|
|
313
|
+
try {
|
|
314
|
+
console.log(`๐ Getting details for token ${tokenId} in contract ${contractAddress}`);
|
|
315
|
+
// Get owner
|
|
316
|
+
const owner = await this.publicClient.readContract({
|
|
317
|
+
address: contractAddress,
|
|
318
|
+
abi: NftListingOperations.ERC721_ABI,
|
|
319
|
+
functionName: 'ownerOf',
|
|
320
|
+
args: [tokenId],
|
|
321
|
+
});
|
|
322
|
+
const token = {
|
|
323
|
+
contractAddress,
|
|
324
|
+
tokenId,
|
|
325
|
+
owner,
|
|
326
|
+
};
|
|
327
|
+
// Fetch metadata
|
|
328
|
+
if (this.config.includeMetadata) {
|
|
329
|
+
token.metadata = await this.fetchTokenMetadata(contractAddress, tokenId);
|
|
330
|
+
}
|
|
331
|
+
return {
|
|
332
|
+
success: true,
|
|
333
|
+
token,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
console.error(`โ Failed to get NFT details:`, error);
|
|
338
|
+
return {
|
|
339
|
+
success: false,
|
|
340
|
+
error: error.message || 'Unknown error occurred',
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Check if a contract supports ERC-721 standard
|
|
346
|
+
*/
|
|
347
|
+
async isERC721Contract(contractAddress) {
|
|
348
|
+
try {
|
|
349
|
+
// Check if contract supports ERC-721 interface
|
|
350
|
+
const supportsInterface = await this.publicClient.readContract({
|
|
351
|
+
address: contractAddress,
|
|
352
|
+
abi: NftListingOperations.ERC721_ABI,
|
|
353
|
+
functionName: 'supportsInterface',
|
|
354
|
+
args: ['0x80ac58cd'], // ERC-721 interface ID
|
|
355
|
+
});
|
|
356
|
+
return supportsInterface;
|
|
357
|
+
}
|
|
358
|
+
catch (error) {
|
|
359
|
+
// If supportsInterface fails, try to call balanceOf as a fallback
|
|
360
|
+
try {
|
|
361
|
+
await this.publicClient.readContract({
|
|
362
|
+
address: contractAddress,
|
|
363
|
+
abi: NftListingOperations.ERC721_ABI,
|
|
364
|
+
functionName: 'balanceOf',
|
|
365
|
+
args: ['0x0000000000000000000000000000000000000000'],
|
|
366
|
+
});
|
|
367
|
+
return true;
|
|
368
|
+
}
|
|
369
|
+
catch {
|
|
370
|
+
return false;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Fetch metadata for a specific token
|
|
376
|
+
*/
|
|
377
|
+
async fetchTokenMetadata(contractAddress, tokenId) {
|
|
378
|
+
try {
|
|
379
|
+
// Get token URI
|
|
380
|
+
const tokenURI = await this.publicClient.readContract({
|
|
381
|
+
address: contractAddress,
|
|
382
|
+
abi: NftListingOperations.ERC721_ABI,
|
|
383
|
+
functionName: 'tokenURI',
|
|
384
|
+
args: [tokenId],
|
|
385
|
+
});
|
|
386
|
+
if (!tokenURI || tokenURI === '') {
|
|
387
|
+
return undefined;
|
|
388
|
+
}
|
|
389
|
+
// Parse URI and fetch metadata
|
|
390
|
+
let metadataUrl = tokenURI;
|
|
391
|
+
if (tokenURI.startsWith('ipfs://')) {
|
|
392
|
+
metadataUrl = `https://ipfs.io/ipfs/${tokenURI.slice(7)}`;
|
|
393
|
+
}
|
|
394
|
+
else if (tokenURI.startsWith('ar://')) {
|
|
395
|
+
metadataUrl = `https://arweave.net/${tokenURI.slice(5)}`;
|
|
396
|
+
}
|
|
397
|
+
// Fetch metadata from URL
|
|
398
|
+
const response = await fetch(metadataUrl);
|
|
399
|
+
if (!response.ok) {
|
|
400
|
+
console.warn(`Failed to fetch metadata from ${metadataUrl}: ${response.status}`);
|
|
401
|
+
return undefined;
|
|
402
|
+
}
|
|
403
|
+
const metadata = await response.json();
|
|
404
|
+
return metadata;
|
|
405
|
+
}
|
|
406
|
+
catch (error) {
|
|
407
|
+
console.warn(`Failed to fetch metadata for token ${tokenId}: ${error.message}`);
|
|
408
|
+
return undefined;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Get contract information (name, symbol, total supply)
|
|
413
|
+
*/
|
|
414
|
+
async getContractInfo(contractAddress) {
|
|
415
|
+
try {
|
|
416
|
+
console.log(`๐ Getting contract info for ${contractAddress}`);
|
|
417
|
+
const [name, symbol, totalSupply] = await Promise.allSettled([
|
|
418
|
+
this.publicClient.readContract({
|
|
419
|
+
address: contractAddress,
|
|
420
|
+
abi: NftListingOperations.ERC721_ABI,
|
|
421
|
+
functionName: 'name',
|
|
422
|
+
}),
|
|
423
|
+
this.publicClient.readContract({
|
|
424
|
+
address: contractAddress,
|
|
425
|
+
abi: NftListingOperations.ERC721_ABI,
|
|
426
|
+
functionName: 'symbol',
|
|
427
|
+
}),
|
|
428
|
+
this.publicClient.readContract({
|
|
429
|
+
address: contractAddress,
|
|
430
|
+
abi: NftListingOperations.ERC721_ABI,
|
|
431
|
+
functionName: 'totalSupply',
|
|
432
|
+
}),
|
|
433
|
+
]);
|
|
434
|
+
return {
|
|
435
|
+
success: true,
|
|
436
|
+
name: name.status === 'fulfilled' ? name.value : undefined,
|
|
437
|
+
symbol: symbol.status === 'fulfilled' ? symbol.value : undefined,
|
|
438
|
+
totalSupply: totalSupply.status === 'fulfilled' ? totalSupply.value : undefined,
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
catch (error) {
|
|
442
|
+
console.error(`โ Failed to get contract info:`, error);
|
|
443
|
+
return {
|
|
444
|
+
success: false,
|
|
445
|
+
error: error.message || 'Unknown error occurred',
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
exports.NftListingOperations = NftListingOperations;
|
|
451
|
+
/**
|
|
452
|
+
* Create an NftListingOperations instance
|
|
453
|
+
*/
|
|
454
|
+
function createNftListingOperations(config) {
|
|
455
|
+
return new NftListingOperations(config);
|
|
456
|
+
}
|
|
457
|
+
//# sourceMappingURL=nft-listing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nft-listing.js","sourceRoot":"","sources":["../src/nft-listing.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { Address, Hex } from 'viem';
|
|
8
8
|
import { NftConstructorArgs } from './types';
|
|
9
|
+
import { NftToken, NftListingResult } from './nft-listing';
|
|
9
10
|
export interface SimpleAccountConfig {
|
|
10
11
|
/** RPC URL for the blockchain network */
|
|
11
12
|
rpcUrl: string;
|
|
@@ -82,6 +83,40 @@ export declare class SimpleAccountOperations {
|
|
|
82
83
|
transactionHash?: Hex;
|
|
83
84
|
error?: string;
|
|
84
85
|
}>;
|
|
86
|
+
/**
|
|
87
|
+
* List NFTs owned by a specific address for a given contract
|
|
88
|
+
*/
|
|
89
|
+
listNftsForContract(ownerAddress: Address, contractAddress: Address): Promise<NftListingResult>;
|
|
90
|
+
/**
|
|
91
|
+
* List all NFTs owned by a specific address across multiple contracts
|
|
92
|
+
*/
|
|
93
|
+
listAllNftsForOwner(ownerAddress: Address, contractAddresses?: Address[]): Promise<NftListingResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Discover ALL NFTs owned by a specific address across ALL contracts
|
|
96
|
+
* This scans blockchain events to find every NFT contract the address has interacted with
|
|
97
|
+
*/
|
|
98
|
+
discoverAllNftsForOwner(ownerAddress: Address, blockRange?: {
|
|
99
|
+
fromBlock?: bigint;
|
|
100
|
+
toBlock?: bigint;
|
|
101
|
+
}): Promise<NftListingResult>;
|
|
102
|
+
/**
|
|
103
|
+
* Get detailed information about a specific NFT
|
|
104
|
+
*/
|
|
105
|
+
getNftDetails(contractAddress: Address, tokenId: bigint): Promise<{
|
|
106
|
+
success: boolean;
|
|
107
|
+
token?: NftToken;
|
|
108
|
+
error?: string;
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Get contract information (name, symbol, total supply)
|
|
112
|
+
*/
|
|
113
|
+
getContractInfo(contractAddress: Address): Promise<{
|
|
114
|
+
success: boolean;
|
|
115
|
+
name?: string;
|
|
116
|
+
symbol?: string;
|
|
117
|
+
totalSupply?: bigint;
|
|
118
|
+
error?: string;
|
|
119
|
+
}>;
|
|
85
120
|
/**
|
|
86
121
|
* Encode NFT constructor arguments
|
|
87
122
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleaccount-operations.d.ts","sourceRoot":"","sources":["../src/simpleaccount-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACN,OAAO,EACP,GAAG,EAWH,MAAM,MAAM,CAAC;AAKd,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"simpleaccount-operations.d.ts","sourceRoot":"","sources":["../src/simpleaccount-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ const accounts_1 = require("viem/accounts");
|
|
|
13
13
|
const chains_1 = require("viem/chains");
|
|
14
14
|
const SimpleAccount_1 = require("./SmartContractWallet/SimpleAccount");
|
|
15
15
|
const Deployer_1 = require("./SmartContractWallet/Deployer");
|
|
16
|
+
const nft_listing_1 = require("./nft-listing");
|
|
16
17
|
class SimpleAccountOperations {
|
|
17
18
|
config;
|
|
18
19
|
publicClient;
|
|
@@ -482,6 +483,58 @@ class SimpleAccountOperations {
|
|
|
482
483
|
};
|
|
483
484
|
}
|
|
484
485
|
}
|
|
486
|
+
/**
|
|
487
|
+
* List NFTs owned by a specific address for a given contract
|
|
488
|
+
*/
|
|
489
|
+
async listNftsForContract(ownerAddress, contractAddress) {
|
|
490
|
+
const nftListing = (0, nft_listing_1.createNftListingOperations)({
|
|
491
|
+
rpcUrl: this.config.rpcUrl,
|
|
492
|
+
includeMetadata: true,
|
|
493
|
+
});
|
|
494
|
+
return await nftListing.listNftsForContract(ownerAddress, contractAddress);
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* List all NFTs owned by a specific address across multiple contracts
|
|
498
|
+
*/
|
|
499
|
+
async listAllNftsForOwner(ownerAddress, contractAddresses) {
|
|
500
|
+
const nftListing = (0, nft_listing_1.createNftListingOperations)({
|
|
501
|
+
rpcUrl: this.config.rpcUrl,
|
|
502
|
+
contractAddresses,
|
|
503
|
+
includeMetadata: true,
|
|
504
|
+
});
|
|
505
|
+
return await nftListing.listAllNftsForOwner(ownerAddress);
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Discover ALL NFTs owned by a specific address across ALL contracts
|
|
509
|
+
* This scans blockchain events to find every NFT contract the address has interacted with
|
|
510
|
+
*/
|
|
511
|
+
async discoverAllNftsForOwner(ownerAddress, blockRange) {
|
|
512
|
+
const nftListing = (0, nft_listing_1.createNftListingOperations)({
|
|
513
|
+
rpcUrl: this.config.rpcUrl,
|
|
514
|
+
includeMetadata: true,
|
|
515
|
+
blockRange,
|
|
516
|
+
});
|
|
517
|
+
return await nftListing.discoverAllNftsForOwner(ownerAddress);
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Get detailed information about a specific NFT
|
|
521
|
+
*/
|
|
522
|
+
async getNftDetails(contractAddress, tokenId) {
|
|
523
|
+
const nftListing = (0, nft_listing_1.createNftListingOperations)({
|
|
524
|
+
rpcUrl: this.config.rpcUrl,
|
|
525
|
+
includeMetadata: true,
|
|
526
|
+
});
|
|
527
|
+
return await nftListing.getNftDetails(contractAddress, tokenId);
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Get contract information (name, symbol, total supply)
|
|
531
|
+
*/
|
|
532
|
+
async getContractInfo(contractAddress) {
|
|
533
|
+
const nftListing = (0, nft_listing_1.createNftListingOperations)({
|
|
534
|
+
rpcUrl: this.config.rpcUrl,
|
|
535
|
+
});
|
|
536
|
+
return await nftListing.getContractInfo(contractAddress);
|
|
537
|
+
}
|
|
485
538
|
/**
|
|
486
539
|
* Encode NFT constructor arguments
|
|
487
540
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleaccount-operations.js","sourceRoot":"","sources":["../src/simpleaccount-operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simpleaccount-operations.js","sourceRoot":"","sources":["../src/simpleaccount-operations.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAmrBH,sEAEC;AAnrBD,+BAac;AACd,4CAAoD;AACpD,wCAA0C;AAC1C,uEAAyE;AACzE,6DAAqE;AAErE,+CAA+H;AAuC/H,MAAa,uBAAuB;IAC3B,MAAM,CAAsB;IAC5B,YAAY,CAAwC;IACpD,YAAY,CAAwC;IACpD,OAAO,CAAyC;IAExD,YAAY,MAA2B;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAA,8BAAmB,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAE3D,IAAI,CAAC,YAAY,GAAG,IAAA,yBAAkB,EAAC;YACtC,SAAS,EAAE,IAAA,WAAI,EAAC,MAAM,CAAC,MAAM,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAA,yBAAkB,EAAC;YACtC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAA,WAAI,EAAC,MAAM,CAAC,MAAM,CAAC;SAC9B,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACf,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YACzC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;SACzC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,cAAsB,IAAA,iBAAU,EAAC,OAAO,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,OAAO,IAAI,WAAW,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAa,EAAE,eAAmC,EAAE,IAAU;QACrF,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAE9D,8BAA8B;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAA,kBAAW,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAElE,IAAI,OAAO,GAAG,IAAA,iBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,uCAAuC,IAAA,kBAAW,EAAC,OAAO,CAAC,gCAAgC;iBAClG,CAAC;YACH,CAAC;YAED,gEAAgE;YAChE,MAAM,qCAAqC,GAAG;gBAC7C,GAAG,eAAe;gBAClB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;aACvC,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,sCAAsC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;YAEtF,+BAA+B;YAC/B,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,qCAAqC,CAAC,CAAC;YACpG,MAAM,YAAY,GAAG,GAAG,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAS,CAAC;YAE5E,gCAAgC;YAChC,MAAM,cAAc,GACnB,IAAI,IAAK,IAAA,YAAK,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAS,CAAC;YAEnH,oCAAoC;YACpC,MAAM,eAAe,GAAG,IAAA,yBAAkB,EAAC;gBAC1C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;gBACjC,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,YAAY;gBACtB,MAAM,EAAE,SAAS;aACjB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,8BAA8B,eAAe,EAAE,CAAC,CAAC;YAE7D,mCAAmC;YACnC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;YACvF,IAAI,YAAY,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACvE,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,8BAA8B,eAAe,EAAE;iBACtD,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,MAAM,cAAc,GAAG,IAAA,yBAAkB,EAAC;gBACzC,GAAG,EAAE,8BAAmB;gBACxB,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;aACpC,CAAC,CAAC;YAEH,4BAA4B;YAC5B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBACxC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;gBACpC,GAAG,EAAE,8BAAmB;gBACxB,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;gBACpC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;aACzC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YAEtE,wCAAwC;YACxC,MAAM,eAAe,GAAG,IAAA,yBAAkB,EAAC;gBAC1C,GAAG,EAAE,kCAAkB;gBACvB,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,cAAc,CAAC;aACvD,CAAC,CAAC;YAEH,6CAA6C;YAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACtD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;gBACpC,IAAI,EAAE,eAAe;gBACrB,GAAG,EAAE,QAAQ,EAAE,gCAAgC;gBAC/C,KAAK,EAAE,oBAAW;aAClB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;YAE9C,wBAAwB;YACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC;gBACjE,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,CAAC;aAChB,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,kCAAkC,MAAM,EAAE;iBACjD,CAAC;YACH,CAAC;YAED,+BAA+B;YAC/B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;YACvF,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,2CAA2C,eAAe,EAAE;iBACnE,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,eAAe,eAAe,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAE/C,iDAAiD;YACjD,IAAI,CAAC;gBACJ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;oBAC1D,OAAO,EAAE,eAAe;oBACxB,GAAG,EAAE;wBACJ;4BACC,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE,EAAE;4BACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;4BAC9B,eAAe,EAAE,MAAM;yBACvB;qBACD;oBACD,YAAY,EAAE,OAAO;iBACrB,CAAC,CAAC;gBAEH,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,EAAE,CAAC;oBACpF,OAAO,CAAC,GAAG,CAAC,8BAA8B,aAAa,EAAE,CAAC,CAAC;oBAC3D,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,kCAAkC,aAAa,qBAAqB,CAAC,CAAC;gBACnF,CAAC;YACF,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,wCAAwC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,eAAe,EAAE,eAAe;gBAChC,eAAe,EAAE,MAAM;aACvB,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,0BAA0B;aAClD,CAAC;QACH,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,kBAA2B,EAAE,gBAAyB,EAAE,OAAgB;QACrF,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,gBAAgB,kBAAkB,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,iBAAiB,gBAAgB,EAAE,CAAC,CAAC;YAEjD,8BAA8B;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,OAAO,GAAG,IAAA,iBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,uCAAuC,IAAA,kBAAW,EAAC,OAAO,CAAC,MAAM;iBACxE,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC;gBACvC,GAAG,EAAE;oBACJ;wBACC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,MAAM;wBACZ,MAAM,EAAE;4BACP,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC/B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;yBACpC;wBACD,OAAO,EAAE,EAAE;qBACX;iBACD;gBACD,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC;aACvC,CAAC,CAAC;YAEH,sBAAsB;YACtB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBACxC,OAAO,EAAE,kBAAkB;gBAC3B,GAAG,EAAE;oBACJ;wBACC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,MAAM;wBACZ,MAAM,EAAE;4BACP,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC/B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;yBACpC;wBACD,OAAO,EAAE,EAAE;qBACX;iBACD;gBACD,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC;gBACvC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;aACzC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAEhE,wCAAwC;YACxC,MAAM,eAAe,GAAG,IAAA,yBAAkB,EAAC;gBAC1C,GAAG,EAAE,kCAAkB;gBACvB,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,kBAAkB,EAAE,EAAE,EAAE,YAAY,CAAC;aAC5C,CAAC,CAAC;YAEH,6CAA6C;YAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACtD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;gBACpC,IAAI,EAAE,eAAe;gBACrB,GAAG,EAAE,OAAO,EAAE,2BAA2B;gBACzC,KAAK,EAAE,oBAAW;aAClB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;YAE9C,wBAAwB;YACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC;gBACjE,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,CAAC;aAChB,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,4BAA4B,MAAM,EAAE;iBAC3C,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAE/C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,eAAe,EAAE,MAAM;gBACvB,OAAO,EAAE,OAAO,IAAI,EAAE;aACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACvC,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,oBAAoB;aAC5C,CAAC;QACH,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,kBAA2B,EAAE,OAAe,EAAE,QAAgB,EAAE;QAC5E,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,gBAAgB,kBAAkB,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAA,kBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEnD,8BAA8B;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,OAAO,GAAG,KAAK,GAAG,IAAA,iBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,uCAAuC,IAAA,kBAAW,EAAC,OAAO,CAAC,MAAM;iBACxE,CAAC;YACH,CAAC;YAED,uDAAuD;YACvD,MAAM,WAAW,GAAG,IAAA,yBAAkB,EAAC;gBACtC,GAAG,EAAE;oBACJ;wBACC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,KAAK;wBACX,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;wBAC9C,OAAO,EAAE,EAAE;qBACX;iBACD;gBACD,YAAY,EAAE,KAAK;gBACnB,IAAI,EAAE,CAAC,OAAO,CAAC;aACf,CAAC,CAAC;YAEH,qBAAqB;YACrB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBACxC,OAAO,EAAE,kBAAkB;gBAC3B,GAAG,EAAE;oBACJ;wBACC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,KAAK;wBACX,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;wBAC9C,OAAO,EAAE,EAAE;qBACX;iBACD;gBACD,YAAY,EAAE,KAAK;gBACnB,IAAI,EAAE,CAAC,OAAO,CAAC;gBACf,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;gBACzC,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;YAE/D,wCAAwC;YACxC,MAAM,eAAe,GAAG,IAAA,yBAAkB,EAAC;gBAC1C,GAAG,EAAE,kCAAkB;gBACvB,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,WAAW,CAAC;aAC9C,CAAC,CAAC;YAEH,6CAA6C;YAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACtD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;gBACpC,IAAI,EAAE,eAAe;gBACrB,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,oBAAW;aAClB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;YAE9C,wBAAwB;YACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC;gBACjE,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,CAAC;aAChB,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,2BAA2B,MAAM,EAAE;iBAC1C,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAE/C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,eAAe,EAAE,MAAM;aACvB,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACtC,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,mBAAmB;aAC3C,CAAC;QACH,CAAC;IACF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CACtB,eAAwB,EACxB,WAAoB,IAAI,CAAC,MAAM,CAAC,oBAAoB;QAEpD,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,gBAAgB,eAAe,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;YAEzC,8BAA8B;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,OAAO,GAAG,IAAA,iBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,uCAAuC,IAAA,kBAAW,EAAC,OAAO,CAAC,MAAM;iBACxE,CAAC;YACH,CAAC;YAED,oCAAoC;YACpC,MAAM,gBAAgB,GAAG,IAAA,yBAAkB,EAAC;gBAC3C,GAAG,EAAE;oBACJ;wBACC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;wBAC/C,OAAO,EAAE,EAAE;qBACX;iBACD;gBACD,YAAY,EAAE,mBAAmB;gBACjC,IAAI,EAAE,CAAC,QAAQ,CAAC;aAChB,CAAC,CAAC;YAEH,0BAA0B;YAC1B,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBACxC,OAAO,EAAE,eAAe;gBACxB,GAAG,EAAE;oBACJ;wBACC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;wBAC/C,OAAO,EAAE,EAAE;qBACX;iBACD;gBACD,YAAY,EAAE,mBAAmB;gBACjC,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;aACzC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YAEpE,wCAAwC;YACxC,MAAM,eAAe,GAAG,IAAA,yBAAkB,EAAC;gBAC1C,GAAG,EAAE,kCAAkB;gBACvB,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,gBAAgB,CAAC;aAC7C,CAAC,CAAC;YAEH,6CAA6C;YAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACtD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;gBACpC,IAAI,EAAE,eAAe;gBACrB,GAAG,EAAE,OAAO,EAAE,sCAAsC;gBACpD,KAAK,EAAE,oBAAW;aAClB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;YAE9C,wBAAwB;YACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC;gBACjE,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,CAAC;aAChB,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,0CAA0C,MAAM,EAAE;iBACzD,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAE/C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,eAAe,EAAE,MAAM;aACvB,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,kCAAkC;aAC1D,CAAC;QACH,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CACjB,UAIE;QAEF,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAEnD,8BAA8B;YAC9B,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,OAAO,GAAG,UAAU,GAAG,IAAA,iBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACjD,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,uCAAuC,IAAA,kBAAW,EAAC,OAAO,CAAC,MAAM;iBACxE,CAAC;YACH,CAAC;YAED,yEAAyE;YACzE,0CAA0C;YAC1C,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sCAAsC;aAC7C,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,qBAAqB;aAC7C,CAAC;QACH,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,YAAqB,EAAE,eAAwB;QACxE,MAAM,UAAU,GAAG,IAAA,wCAA0B,EAAC;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,eAAe,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,mBAAmB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,YAAqB,EAAE,iBAA6B;QAC7E,MAAM,UAAU,GAAG,IAAA,wCAA0B,EAAC;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,iBAAiB;YACjB,eAAe,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB,CAAC,YAAqB,EAAE,UAAqD;QACzG,MAAM,UAAU,GAAG,IAAA,wCAA0B,EAAC;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,eAAe,EAAE,IAAI;YACrB,UAAU;SACV,CAAC,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAClB,eAAwB,EACxB,OAAe;QAMf,MAAM,UAAU,GAAG,IAAA,wCAA0B,EAAC;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,eAAe,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,eAAwB;QAO7C,MAAM,UAAU,GAAG,IAAA,wCAA0B,EAAC;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,eAAmC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC;QAEzE,MAAM,aAAa,GAAG,IAAA,yBAAkB,EAAC,CAAC,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC;QAEnI,OAAO,IAAA,0BAAmB,EAAC,aAAa,EAAE;YACzC,IAAI;YACJ,MAAM;YACN,OAAO;YACP,SAAS,IAAI,EAAE;YACf,KAAK,IAAI,4CAA4C;SACrD,CAAC,CAAC;IACJ,CAAC;CACD;AAlnBD,0DAknBC;AAED;;GAEG;AACH,SAAgB,6BAA6B,CAAC,MAA2B;IACxE,OAAO,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
|