@imtbl/sdk 0.15.2-alpha → 0.16.0-alpha.1
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/dist/blockchain_data.js +252 -33
- package/dist/browser/checkout.js +2 -2
- package/dist/checkout_sdk.d.ts +56 -1
- package/dist/checkout_sdk.js +394 -16
- package/dist/checkout_widgets.d.ts +1 -0
- package/dist/checkout_widgets.js +1 -1
- package/dist/erc721.d.ts +4 -4
- package/dist/erc721.js +57 -69
- package/dist/erc721_mint_by_id.d.ts +4 -4
- package/dist/erc721_mint_by_id.js +51 -51
- package/dist/immutablex_client.js +1 -1
- package/dist/index.browser.js +15 -15
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +789 -175
- package/dist/index.d.ts +225 -16
- package/dist/index.js +789 -175
- package/dist/orderbook.d.ts +150 -4
- package/dist/orderbook.js +135 -0
- package/dist/passport.d.ts +1 -0
- package/dist/passport.js +228 -18
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import globalAxios$1 from 'axios';
|
|
1
|
+
import globalAxios$1, { HttpStatusCode as HttpStatusCode$2 } from 'axios';
|
|
2
2
|
import { ImmutableX, Config, IMXError, createStarkSigner, generateLegacyStarkPrivateKey, TransfersApi, OrdersApi as OrdersApi$1, UsersApi, Contracts, TradesApi, ExchangesApi, WithdrawalsApi, MintsApi, DepositsApi, EncodingApi, TokensApi as TokensApi$1 } from '@imtbl/core-sdk';
|
|
3
3
|
import { UserManager } from 'oidc-client-ts';
|
|
4
4
|
import jwt_decode from 'jwt-decode';
|
|
@@ -1292,16 +1292,16 @@ const OrdersApiAxiosParamCreator = function (configuration) {
|
|
|
1292
1292
|
* Retrieve signed fulfillment data based on the list of order IDs and corresponding fees.
|
|
1293
1293
|
* @summary Retrieve fulfillment data for orders
|
|
1294
1294
|
* @param {string} chainName
|
|
1295
|
-
* @param {Array<
|
|
1295
|
+
* @param {Array<FulfillmentDataRequest>} fulfillmentDataRequest
|
|
1296
1296
|
* @param {*} [options] Override http request option.
|
|
1297
1297
|
* @throws {RequiredError}
|
|
1298
1298
|
*/
|
|
1299
|
-
fulfillmentData: async (chainName,
|
|
1299
|
+
fulfillmentData: async (chainName, fulfillmentDataRequest, options = {}) => {
|
|
1300
1300
|
// verify required parameter 'chainName' is not null or undefined
|
|
1301
1301
|
assertParamExists$1('fulfillmentData', 'chainName', chainName);
|
|
1302
|
-
// verify required parameter '
|
|
1303
|
-
assertParamExists$1('fulfillmentData', '
|
|
1304
|
-
const localVarPath = `/v1/chains/{chain_name}/orders/
|
|
1302
|
+
// verify required parameter 'fulfillmentDataRequest' is not null or undefined
|
|
1303
|
+
assertParamExists$1('fulfillmentData', 'fulfillmentDataRequest', fulfillmentDataRequest);
|
|
1304
|
+
const localVarPath = `/v1/chains/{chain_name}/orders/fulfillment-data`
|
|
1305
1305
|
.replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)));
|
|
1306
1306
|
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1307
1307
|
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
|
|
@@ -1316,7 +1316,7 @@ const OrdersApiAxiosParamCreator = function (configuration) {
|
|
|
1316
1316
|
setSearchParams$1(localVarUrlObj, localVarQueryParameter);
|
|
1317
1317
|
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1318
1318
|
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
1319
|
-
localVarRequestOptions.data = serializeDataIfNeeded$1(
|
|
1319
|
+
localVarRequestOptions.data = serializeDataIfNeeded$1(fulfillmentDataRequest, localVarRequestOptions, configuration);
|
|
1320
1320
|
return {
|
|
1321
1321
|
url: toPathString$1(localVarUrlObj),
|
|
1322
1322
|
options: localVarRequestOptions,
|
|
@@ -1355,6 +1355,39 @@ const OrdersApiAxiosParamCreator = function (configuration) {
|
|
|
1355
1355
|
options: localVarRequestOptions,
|
|
1356
1356
|
};
|
|
1357
1357
|
},
|
|
1358
|
+
/**
|
|
1359
|
+
* Get a single trade by ID
|
|
1360
|
+
* @summary Get a single trade by ID
|
|
1361
|
+
* @param {string} chainName
|
|
1362
|
+
* @param {string} tradeId Global Trade identifier
|
|
1363
|
+
* @param {*} [options] Override http request option.
|
|
1364
|
+
* @throws {RequiredError}
|
|
1365
|
+
*/
|
|
1366
|
+
getTrade: async (chainName, tradeId, options = {}) => {
|
|
1367
|
+
// verify required parameter 'chainName' is not null or undefined
|
|
1368
|
+
assertParamExists$1('getTrade', 'chainName', chainName);
|
|
1369
|
+
// verify required parameter 'tradeId' is not null or undefined
|
|
1370
|
+
assertParamExists$1('getTrade', 'tradeId', tradeId);
|
|
1371
|
+
const localVarPath = `/v1/chains/{chain_name}/trades/{trade_id}`
|
|
1372
|
+
.replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)))
|
|
1373
|
+
.replace(`{${"trade_id"}}`, encodeURIComponent(String(tradeId)));
|
|
1374
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1375
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
|
|
1376
|
+
let baseOptions;
|
|
1377
|
+
if (configuration) {
|
|
1378
|
+
baseOptions = configuration.baseOptions;
|
|
1379
|
+
}
|
|
1380
|
+
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
|
|
1381
|
+
const localVarHeaderParameter = {};
|
|
1382
|
+
const localVarQueryParameter = {};
|
|
1383
|
+
setSearchParams$1(localVarUrlObj, localVarQueryParameter);
|
|
1384
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1385
|
+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
1386
|
+
return {
|
|
1387
|
+
url: toPathString$1(localVarUrlObj),
|
|
1388
|
+
options: localVarRequestOptions,
|
|
1389
|
+
};
|
|
1390
|
+
},
|
|
1358
1391
|
/**
|
|
1359
1392
|
* List all listings
|
|
1360
1393
|
* @summary List all listings
|
|
@@ -1416,6 +1449,51 @@ const OrdersApiAxiosParamCreator = function (configuration) {
|
|
|
1416
1449
|
options: localVarRequestOptions,
|
|
1417
1450
|
};
|
|
1418
1451
|
},
|
|
1452
|
+
/**
|
|
1453
|
+
* List all trades
|
|
1454
|
+
* @summary List all trades
|
|
1455
|
+
* @param {string} chainName
|
|
1456
|
+
* @param {number} [pageSize] Maximum number of trades to return per page
|
|
1457
|
+
* @param {'created_at'} [sortBy] Trade field to sort by
|
|
1458
|
+
* @param {'asc' | 'desc'} [sortDirection] Ascending or descending direction for sort
|
|
1459
|
+
* @param {string} [pageCursor] Page cursor to retrieve previous or next page. Use the value returned in the response.
|
|
1460
|
+
* @param {*} [options] Override http request option.
|
|
1461
|
+
* @throws {RequiredError}
|
|
1462
|
+
*/
|
|
1463
|
+
listTrades: async (chainName, pageSize, sortBy, sortDirection, pageCursor, options = {}) => {
|
|
1464
|
+
// verify required parameter 'chainName' is not null or undefined
|
|
1465
|
+
assertParamExists$1('listTrades', 'chainName', chainName);
|
|
1466
|
+
const localVarPath = `/v1/chains/{chain_name}/trades`
|
|
1467
|
+
.replace(`{${"chain_name"}}`, encodeURIComponent(String(chainName)));
|
|
1468
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1469
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
|
|
1470
|
+
let baseOptions;
|
|
1471
|
+
if (configuration) {
|
|
1472
|
+
baseOptions = configuration.baseOptions;
|
|
1473
|
+
}
|
|
1474
|
+
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
|
|
1475
|
+
const localVarHeaderParameter = {};
|
|
1476
|
+
const localVarQueryParameter = {};
|
|
1477
|
+
if (pageSize !== undefined) {
|
|
1478
|
+
localVarQueryParameter['page_size'] = pageSize;
|
|
1479
|
+
}
|
|
1480
|
+
if (sortBy !== undefined) {
|
|
1481
|
+
localVarQueryParameter['sort_by'] = sortBy;
|
|
1482
|
+
}
|
|
1483
|
+
if (sortDirection !== undefined) {
|
|
1484
|
+
localVarQueryParameter['sort_direction'] = sortDirection;
|
|
1485
|
+
}
|
|
1486
|
+
if (pageCursor !== undefined) {
|
|
1487
|
+
localVarQueryParameter['page_cursor'] = pageCursor;
|
|
1488
|
+
}
|
|
1489
|
+
setSearchParams$1(localVarUrlObj, localVarQueryParameter);
|
|
1490
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1491
|
+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
1492
|
+
return {
|
|
1493
|
+
url: toPathString$1(localVarUrlObj),
|
|
1494
|
+
options: localVarRequestOptions,
|
|
1495
|
+
};
|
|
1496
|
+
},
|
|
1419
1497
|
};
|
|
1420
1498
|
};
|
|
1421
1499
|
/**
|
|
@@ -1441,12 +1519,12 @@ const OrdersApiFp = function (configuration) {
|
|
|
1441
1519
|
* Retrieve signed fulfillment data based on the list of order IDs and corresponding fees.
|
|
1442
1520
|
* @summary Retrieve fulfillment data for orders
|
|
1443
1521
|
* @param {string} chainName
|
|
1444
|
-
* @param {Array<
|
|
1522
|
+
* @param {Array<FulfillmentDataRequest>} fulfillmentDataRequest
|
|
1445
1523
|
* @param {*} [options] Override http request option.
|
|
1446
1524
|
* @throws {RequiredError}
|
|
1447
1525
|
*/
|
|
1448
|
-
async fulfillmentData(chainName,
|
|
1449
|
-
const localVarAxiosArgs = await localVarAxiosParamCreator.fulfillmentData(chainName,
|
|
1526
|
+
async fulfillmentData(chainName, fulfillmentDataRequest, options) {
|
|
1527
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.fulfillmentData(chainName, fulfillmentDataRequest, options);
|
|
1450
1528
|
return createRequestFunction$1(localVarAxiosArgs, globalAxios$1, BASE_PATH$1, configuration);
|
|
1451
1529
|
},
|
|
1452
1530
|
/**
|
|
@@ -1461,6 +1539,18 @@ const OrdersApiFp = function (configuration) {
|
|
|
1461
1539
|
const localVarAxiosArgs = await localVarAxiosParamCreator.getListing(chainName, listingId, options);
|
|
1462
1540
|
return createRequestFunction$1(localVarAxiosArgs, globalAxios$1, BASE_PATH$1, configuration);
|
|
1463
1541
|
},
|
|
1542
|
+
/**
|
|
1543
|
+
* Get a single trade by ID
|
|
1544
|
+
* @summary Get a single trade by ID
|
|
1545
|
+
* @param {string} chainName
|
|
1546
|
+
* @param {string} tradeId Global Trade identifier
|
|
1547
|
+
* @param {*} [options] Override http request option.
|
|
1548
|
+
* @throws {RequiredError}
|
|
1549
|
+
*/
|
|
1550
|
+
async getTrade(chainName, tradeId, options) {
|
|
1551
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.getTrade(chainName, tradeId, options);
|
|
1552
|
+
return createRequestFunction$1(localVarAxiosArgs, globalAxios$1, BASE_PATH$1, configuration);
|
|
1553
|
+
},
|
|
1464
1554
|
/**
|
|
1465
1555
|
* List all listings
|
|
1466
1556
|
* @summary List all listings
|
|
@@ -1480,6 +1570,21 @@ const OrdersApiFp = function (configuration) {
|
|
|
1480
1570
|
const localVarAxiosArgs = await localVarAxiosParamCreator.listListings(chainName, status, sellItemContractAddress, buyItemContractAddress, sellItemTokenId, pageSize, sortBy, sortDirection, pageCursor, options);
|
|
1481
1571
|
return createRequestFunction$1(localVarAxiosArgs, globalAxios$1, BASE_PATH$1, configuration);
|
|
1482
1572
|
},
|
|
1573
|
+
/**
|
|
1574
|
+
* List all trades
|
|
1575
|
+
* @summary List all trades
|
|
1576
|
+
* @param {string} chainName
|
|
1577
|
+
* @param {number} [pageSize] Maximum number of trades to return per page
|
|
1578
|
+
* @param {'created_at'} [sortBy] Trade field to sort by
|
|
1579
|
+
* @param {'asc' | 'desc'} [sortDirection] Ascending or descending direction for sort
|
|
1580
|
+
* @param {string} [pageCursor] Page cursor to retrieve previous or next page. Use the value returned in the response.
|
|
1581
|
+
* @param {*} [options] Override http request option.
|
|
1582
|
+
* @throws {RequiredError}
|
|
1583
|
+
*/
|
|
1584
|
+
async listTrades(chainName, pageSize, sortBy, sortDirection, pageCursor, options) {
|
|
1585
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.listTrades(chainName, pageSize, sortBy, sortDirection, pageCursor, options);
|
|
1586
|
+
return createRequestFunction$1(localVarAxiosArgs, globalAxios$1, BASE_PATH$1, configuration);
|
|
1587
|
+
},
|
|
1483
1588
|
};
|
|
1484
1589
|
};
|
|
1485
1590
|
/**
|
|
@@ -1504,12 +1609,12 @@ const OrdersApiFactory = function (configuration, basePath, axios) {
|
|
|
1504
1609
|
* Retrieve signed fulfillment data based on the list of order IDs and corresponding fees.
|
|
1505
1610
|
* @summary Retrieve fulfillment data for orders
|
|
1506
1611
|
* @param {string} chainName
|
|
1507
|
-
* @param {Array<
|
|
1612
|
+
* @param {Array<FulfillmentDataRequest>} fulfillmentDataRequest
|
|
1508
1613
|
* @param {*} [options] Override http request option.
|
|
1509
1614
|
* @throws {RequiredError}
|
|
1510
1615
|
*/
|
|
1511
|
-
fulfillmentData(chainName,
|
|
1512
|
-
return localVarFp.fulfillmentData(chainName,
|
|
1616
|
+
fulfillmentData(chainName, fulfillmentDataRequest, options) {
|
|
1617
|
+
return localVarFp.fulfillmentData(chainName, fulfillmentDataRequest, options).then((request) => request(axios, basePath));
|
|
1513
1618
|
},
|
|
1514
1619
|
/**
|
|
1515
1620
|
* Get a single listing by ID
|
|
@@ -1522,6 +1627,17 @@ const OrdersApiFactory = function (configuration, basePath, axios) {
|
|
|
1522
1627
|
getListing(chainName, listingId, options) {
|
|
1523
1628
|
return localVarFp.getListing(chainName, listingId, options).then((request) => request(axios, basePath));
|
|
1524
1629
|
},
|
|
1630
|
+
/**
|
|
1631
|
+
* Get a single trade by ID
|
|
1632
|
+
* @summary Get a single trade by ID
|
|
1633
|
+
* @param {string} chainName
|
|
1634
|
+
* @param {string} tradeId Global Trade identifier
|
|
1635
|
+
* @param {*} [options] Override http request option.
|
|
1636
|
+
* @throws {RequiredError}
|
|
1637
|
+
*/
|
|
1638
|
+
getTrade(chainName, tradeId, options) {
|
|
1639
|
+
return localVarFp.getTrade(chainName, tradeId, options).then((request) => request(axios, basePath));
|
|
1640
|
+
},
|
|
1525
1641
|
/**
|
|
1526
1642
|
* List all listings
|
|
1527
1643
|
* @summary List all listings
|
|
@@ -1540,6 +1656,20 @@ const OrdersApiFactory = function (configuration, basePath, axios) {
|
|
|
1540
1656
|
listListings(chainName, status, sellItemContractAddress, buyItemContractAddress, sellItemTokenId, pageSize, sortBy, sortDirection, pageCursor, options) {
|
|
1541
1657
|
return localVarFp.listListings(chainName, status, sellItemContractAddress, buyItemContractAddress, sellItemTokenId, pageSize, sortBy, sortDirection, pageCursor, options).then((request) => request(axios, basePath));
|
|
1542
1658
|
},
|
|
1659
|
+
/**
|
|
1660
|
+
* List all trades
|
|
1661
|
+
* @summary List all trades
|
|
1662
|
+
* @param {string} chainName
|
|
1663
|
+
* @param {number} [pageSize] Maximum number of trades to return per page
|
|
1664
|
+
* @param {'created_at'} [sortBy] Trade field to sort by
|
|
1665
|
+
* @param {'asc' | 'desc'} [sortDirection] Ascending or descending direction for sort
|
|
1666
|
+
* @param {string} [pageCursor] Page cursor to retrieve previous or next page. Use the value returned in the response.
|
|
1667
|
+
* @param {*} [options] Override http request option.
|
|
1668
|
+
* @throws {RequiredError}
|
|
1669
|
+
*/
|
|
1670
|
+
listTrades(chainName, pageSize, sortBy, sortDirection, pageCursor, options) {
|
|
1671
|
+
return localVarFp.listTrades(chainName, pageSize, sortBy, sortDirection, pageCursor, options).then((request) => request(axios, basePath));
|
|
1672
|
+
},
|
|
1543
1673
|
};
|
|
1544
1674
|
};
|
|
1545
1675
|
/**
|
|
@@ -1569,7 +1699,7 @@ class OrdersApi extends BaseAPI$1 {
|
|
|
1569
1699
|
* @memberof OrdersApi
|
|
1570
1700
|
*/
|
|
1571
1701
|
fulfillmentData(requestParameters, options) {
|
|
1572
|
-
return OrdersApiFp(this.configuration).fulfillmentData(requestParameters.chainName, requestParameters.
|
|
1702
|
+
return OrdersApiFp(this.configuration).fulfillmentData(requestParameters.chainName, requestParameters.fulfillmentDataRequest, options).then((request) => request(this.axios, this.basePath));
|
|
1573
1703
|
}
|
|
1574
1704
|
/**
|
|
1575
1705
|
* Get a single listing by ID
|
|
@@ -1582,6 +1712,17 @@ class OrdersApi extends BaseAPI$1 {
|
|
|
1582
1712
|
getListing(requestParameters, options) {
|
|
1583
1713
|
return OrdersApiFp(this.configuration).getListing(requestParameters.chainName, requestParameters.listingId, options).then((request) => request(this.axios, this.basePath));
|
|
1584
1714
|
}
|
|
1715
|
+
/**
|
|
1716
|
+
* Get a single trade by ID
|
|
1717
|
+
* @summary Get a single trade by ID
|
|
1718
|
+
* @param {OrdersApiGetTradeRequest} requestParameters Request parameters.
|
|
1719
|
+
* @param {*} [options] Override http request option.
|
|
1720
|
+
* @throws {RequiredError}
|
|
1721
|
+
* @memberof OrdersApi
|
|
1722
|
+
*/
|
|
1723
|
+
getTrade(requestParameters, options) {
|
|
1724
|
+
return OrdersApiFp(this.configuration).getTrade(requestParameters.chainName, requestParameters.tradeId, options).then((request) => request(this.axios, this.basePath));
|
|
1725
|
+
}
|
|
1585
1726
|
/**
|
|
1586
1727
|
* List all listings
|
|
1587
1728
|
* @summary List all listings
|
|
@@ -1593,6 +1734,17 @@ class OrdersApi extends BaseAPI$1 {
|
|
|
1593
1734
|
listListings(requestParameters, options) {
|
|
1594
1735
|
return OrdersApiFp(this.configuration).listListings(requestParameters.chainName, requestParameters.status, requestParameters.sellItemContractAddress, requestParameters.buyItemContractAddress, requestParameters.sellItemTokenId, requestParameters.pageSize, requestParameters.sortBy, requestParameters.sortDirection, requestParameters.pageCursor, options).then((request) => request(this.axios, this.basePath));
|
|
1595
1736
|
}
|
|
1737
|
+
/**
|
|
1738
|
+
* List all trades
|
|
1739
|
+
* @summary List all trades
|
|
1740
|
+
* @param {OrdersApiListTradesRequest} requestParameters Request parameters.
|
|
1741
|
+
* @param {*} [options] Override http request option.
|
|
1742
|
+
* @throws {RequiredError}
|
|
1743
|
+
* @memberof OrdersApi
|
|
1744
|
+
*/
|
|
1745
|
+
listTrades(requestParameters, options) {
|
|
1746
|
+
return OrdersApiFp(this.configuration).listTrades(requestParameters.chainName, requestParameters.pageSize, requestParameters.sortBy, requestParameters.sortDirection, requestParameters.pageCursor, options).then((request) => request(this.axios, this.basePath));
|
|
1747
|
+
}
|
|
1596
1748
|
}
|
|
1597
1749
|
|
|
1598
1750
|
/* tslint:disable */
|
|
@@ -1647,6 +1799,38 @@ const PassportApiAxiosParamCreator = function (configuration) {
|
|
|
1647
1799
|
options: localVarRequestOptions,
|
|
1648
1800
|
};
|
|
1649
1801
|
},
|
|
1802
|
+
/**
|
|
1803
|
+
* Get all the Ethereum linked addresses for a user based on its userId
|
|
1804
|
+
* @summary Get Ethereum linked addresses for a user
|
|
1805
|
+
* @param {string} userId The user\'s userId
|
|
1806
|
+
* @param {*} [options] Override http request option.
|
|
1807
|
+
* @throws {RequiredError}
|
|
1808
|
+
*/
|
|
1809
|
+
getLinkedAddresses: async (userId, options = {}) => {
|
|
1810
|
+
// verify required parameter 'userId' is not null or undefined
|
|
1811
|
+
assertParamExists$1('getLinkedAddresses', 'userId', userId);
|
|
1812
|
+
const localVarPath = `/passport-mr/v1/users/{userId}/linked-addresses`
|
|
1813
|
+
.replace(`{${"userId"}}`, encodeURIComponent(String(userId)));
|
|
1814
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1815
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL$1);
|
|
1816
|
+
let baseOptions;
|
|
1817
|
+
if (configuration) {
|
|
1818
|
+
baseOptions = configuration.baseOptions;
|
|
1819
|
+
}
|
|
1820
|
+
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
|
|
1821
|
+
const localVarHeaderParameter = {};
|
|
1822
|
+
const localVarQueryParameter = {};
|
|
1823
|
+
// authentication BearerAuth required
|
|
1824
|
+
// http bearer authentication required
|
|
1825
|
+
await setBearerAuthToObject$1(localVarHeaderParameter, configuration);
|
|
1826
|
+
setSearchParams$1(localVarUrlObj, localVarQueryParameter);
|
|
1827
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1828
|
+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
1829
|
+
return {
|
|
1830
|
+
url: toPathString$1(localVarUrlObj),
|
|
1831
|
+
options: localVarRequestOptions,
|
|
1832
|
+
};
|
|
1833
|
+
},
|
|
1650
1834
|
};
|
|
1651
1835
|
};
|
|
1652
1836
|
/**
|
|
@@ -1667,6 +1851,17 @@ const PassportApiFp = function (configuration) {
|
|
|
1667
1851
|
const localVarAxiosArgs = await localVarAxiosParamCreator.createCounterfactualAddress(createCounterfactualAddressRequest, options);
|
|
1668
1852
|
return createRequestFunction$1(localVarAxiosArgs, globalAxios$1, BASE_PATH$1, configuration);
|
|
1669
1853
|
},
|
|
1854
|
+
/**
|
|
1855
|
+
* Get all the Ethereum linked addresses for a user based on its userId
|
|
1856
|
+
* @summary Get Ethereum linked addresses for a user
|
|
1857
|
+
* @param {string} userId The user\'s userId
|
|
1858
|
+
* @param {*} [options] Override http request option.
|
|
1859
|
+
* @throws {RequiredError}
|
|
1860
|
+
*/
|
|
1861
|
+
async getLinkedAddresses(userId, options) {
|
|
1862
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.getLinkedAddresses(userId, options);
|
|
1863
|
+
return createRequestFunction$1(localVarAxiosArgs, globalAxios$1, BASE_PATH$1, configuration);
|
|
1864
|
+
},
|
|
1670
1865
|
};
|
|
1671
1866
|
};
|
|
1672
1867
|
/**
|
|
@@ -1686,6 +1881,16 @@ const PassportApiFactory = function (configuration, basePath, axios) {
|
|
|
1686
1881
|
createCounterfactualAddress(createCounterfactualAddressRequest, options) {
|
|
1687
1882
|
return localVarFp.createCounterfactualAddress(createCounterfactualAddressRequest, options).then((request) => request(axios, basePath));
|
|
1688
1883
|
},
|
|
1884
|
+
/**
|
|
1885
|
+
* Get all the Ethereum linked addresses for a user based on its userId
|
|
1886
|
+
* @summary Get Ethereum linked addresses for a user
|
|
1887
|
+
* @param {string} userId The user\'s userId
|
|
1888
|
+
* @param {*} [options] Override http request option.
|
|
1889
|
+
* @throws {RequiredError}
|
|
1890
|
+
*/
|
|
1891
|
+
getLinkedAddresses(userId, options) {
|
|
1892
|
+
return localVarFp.getLinkedAddresses(userId, options).then((request) => request(axios, basePath));
|
|
1893
|
+
},
|
|
1689
1894
|
};
|
|
1690
1895
|
};
|
|
1691
1896
|
/**
|
|
@@ -1706,6 +1911,17 @@ class PassportApi extends BaseAPI$1 {
|
|
|
1706
1911
|
createCounterfactualAddress(requestParameters, options) {
|
|
1707
1912
|
return PassportApiFp(this.configuration).createCounterfactualAddress(requestParameters.createCounterfactualAddressRequest, options).then((request) => request(this.axios, this.basePath));
|
|
1708
1913
|
}
|
|
1914
|
+
/**
|
|
1915
|
+
* Get all the Ethereum linked addresses for a user based on its userId
|
|
1916
|
+
* @summary Get Ethereum linked addresses for a user
|
|
1917
|
+
* @param {PassportApiGetLinkedAddressesRequest} requestParameters Request parameters.
|
|
1918
|
+
* @param {*} [options] Override http request option.
|
|
1919
|
+
* @throws {RequiredError}
|
|
1920
|
+
* @memberof PassportApi
|
|
1921
|
+
*/
|
|
1922
|
+
getLinkedAddresses(requestParameters, options) {
|
|
1923
|
+
return PassportApiFp(this.configuration).getLinkedAddresses(requestParameters.userId, options).then((request) => request(this.axios, this.basePath));
|
|
1924
|
+
}
|
|
1709
1925
|
}
|
|
1710
1926
|
|
|
1711
1927
|
/* tslint:disable */
|
|
@@ -2135,23 +2351,6 @@ const CollectionContractType = {
|
|
|
2135
2351
|
Erc721: 'ERC721'
|
|
2136
2352
|
};
|
|
2137
2353
|
|
|
2138
|
-
/* tslint:disable */
|
|
2139
|
-
/* eslint-disable */
|
|
2140
|
-
/**
|
|
2141
|
-
* Immutable zkEVM API
|
|
2142
|
-
* Immutable Multi Rollup API
|
|
2143
|
-
*
|
|
2144
|
-
* The version of the OpenAPI document: 1.0.0
|
|
2145
|
-
* Contact: support@immutable.com
|
|
2146
|
-
*
|
|
2147
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
2148
|
-
* https://openapi-generator.tech
|
|
2149
|
-
* Do not edit the class manually.
|
|
2150
|
-
*/
|
|
2151
|
-
const CreateOrderProtocolDataOrderTypeEnum = {
|
|
2152
|
-
FullRestricted: 'FULL_RESTRICTED'
|
|
2153
|
-
};
|
|
2154
|
-
|
|
2155
2354
|
/* tslint:disable */
|
|
2156
2355
|
/* eslint-disable */
|
|
2157
2356
|
/**
|
|
@@ -2200,7 +2399,10 @@ const ERC721ItemItemTypeEnum = {
|
|
|
2200
2399
|
* Do not edit the class manually.
|
|
2201
2400
|
*/
|
|
2202
2401
|
const FeeFeeTypeEnum = {
|
|
2203
|
-
Royalty: 'ROYALTY'
|
|
2402
|
+
Royalty: 'ROYALTY',
|
|
2403
|
+
MakerMarketplace: 'MAKER_MARKETPLACE',
|
|
2404
|
+
TakerMarketplace: 'TAKER_MARKETPLACE',
|
|
2405
|
+
Protocol: 'PROTOCOL'
|
|
2204
2406
|
};
|
|
2205
2407
|
|
|
2206
2408
|
/* tslint:disable */
|
|
@@ -2269,6 +2471,23 @@ const OrderStatus$1 = {
|
|
|
2269
2471
|
Expired: 'EXPIRED'
|
|
2270
2472
|
};
|
|
2271
2473
|
|
|
2474
|
+
/* tslint:disable */
|
|
2475
|
+
/* eslint-disable */
|
|
2476
|
+
/**
|
|
2477
|
+
* Immutable zkEVM API
|
|
2478
|
+
* Immutable Multi Rollup API
|
|
2479
|
+
*
|
|
2480
|
+
* The version of the OpenAPI document: 1.0.0
|
|
2481
|
+
* Contact: support@immutable.com
|
|
2482
|
+
*
|
|
2483
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
2484
|
+
* https://openapi-generator.tech
|
|
2485
|
+
* Do not edit the class manually.
|
|
2486
|
+
*/
|
|
2487
|
+
const ProtocolDataOrderTypeEnum = {
|
|
2488
|
+
FullRestricted: 'FULL_RESTRICTED'
|
|
2489
|
+
};
|
|
2490
|
+
|
|
2272
2491
|
/* tslint:disable */
|
|
2273
2492
|
/* eslint-disable */
|
|
2274
2493
|
/**
|
|
@@ -2345,7 +2564,6 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
2345
2564
|
CollectionsApiFactory: CollectionsApiFactory,
|
|
2346
2565
|
CollectionsApiFp: CollectionsApiFp,
|
|
2347
2566
|
Configuration: Configuration$2,
|
|
2348
|
-
CreateOrderProtocolDataOrderTypeEnum: CreateOrderProtocolDataOrderTypeEnum,
|
|
2349
2567
|
ERC20ItemItemTypeEnum: ERC20ItemItemTypeEnum,
|
|
2350
2568
|
ERC721ItemItemTypeEnum: ERC721ItemItemTypeEnum,
|
|
2351
2569
|
FeeFeeTypeEnum: FeeFeeTypeEnum,
|
|
@@ -2368,6 +2586,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
2368
2586
|
PassportApiAxiosParamCreator: PassportApiAxiosParamCreator,
|
|
2369
2587
|
PassportApiFactory: PassportApiFactory,
|
|
2370
2588
|
PassportApiFp: PassportApiFp,
|
|
2589
|
+
ProtocolDataOrderTypeEnum: ProtocolDataOrderTypeEnum,
|
|
2371
2590
|
SaleFeeTypeEnum: SaleFeeTypeEnum,
|
|
2372
2591
|
TokenContractType: TokenContractType,
|
|
2373
2592
|
TokensApi: TokensApi,
|
|
@@ -2398,7 +2617,7 @@ class MultiRollupApiClients {
|
|
|
2398
2617
|
}
|
|
2399
2618
|
|
|
2400
2619
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
2401
|
-
const defaultHeaders$1 = { 'x-sdk-version': 'ts-immutable-sdk-0.
|
|
2620
|
+
const defaultHeaders$1 = { 'x-sdk-version': 'ts-immutable-sdk-0.16.0-alpha.1' };
|
|
2402
2621
|
const createConfig = ({ basePath, headers, }) => {
|
|
2403
2622
|
if (!basePath.trim()) {
|
|
2404
2623
|
throw Error('basePath can not be empty');
|
|
@@ -2458,7 +2677,7 @@ class APIError extends Error {
|
|
|
2458
2677
|
|
|
2459
2678
|
/* eslint-disable implicit-arrow-linebreak */
|
|
2460
2679
|
const defaultHeaders = {
|
|
2461
|
-
sdkVersion: 'ts-immutable-sdk-multi-rollup-api-client-0.
|
|
2680
|
+
sdkVersion: 'ts-immutable-sdk-multi-rollup-api-client-0.16.0-alpha.1',
|
|
2462
2681
|
};
|
|
2463
2682
|
/**
|
|
2464
2683
|
* createAPIConfiguration to create a custom Configuration
|
|
@@ -2730,7 +2949,7 @@ const createImmutableXConfiguration = ({ basePath, chainID, coreContractAddress,
|
|
|
2730
2949
|
chainID,
|
|
2731
2950
|
coreContractAddress,
|
|
2732
2951
|
registrationContractAddress,
|
|
2733
|
-
sdkVersion: 'ts-immutable-sdk-0.
|
|
2952
|
+
sdkVersion: 'ts-immutable-sdk-0.16.0-alpha.1',
|
|
2734
2953
|
});
|
|
2735
2954
|
/**
|
|
2736
2955
|
* Sets `sdkVersion` at the time of build
|
|
@@ -7182,6 +7401,12 @@ class AuthManager {
|
|
|
7182
7401
|
userAdminAddress: idTokenPayload?.passport?.imx_user_admin_address,
|
|
7183
7402
|
};
|
|
7184
7403
|
}
|
|
7404
|
+
if (idTokenPayload?.passport?.zkevm_eth_address) {
|
|
7405
|
+
user.zkEvm = {
|
|
7406
|
+
ethAddress: idTokenPayload?.passport?.zkevm_eth_address,
|
|
7407
|
+
userAdminAddress: idTokenPayload?.passport?.zkevm_user_admin_address,
|
|
7408
|
+
};
|
|
7409
|
+
}
|
|
7185
7410
|
return user;
|
|
7186
7411
|
};
|
|
7187
7412
|
async login() {
|
|
@@ -7325,8 +7550,8 @@ class AuthManager {
|
|
|
7325
7550
|
const refreshToken = tokenResponse?.refresh_token ?? null;
|
|
7326
7551
|
if (refreshToken) {
|
|
7327
7552
|
// Token is no longer valid, but refresh token can be used to a new one
|
|
7328
|
-
const
|
|
7329
|
-
return
|
|
7553
|
+
const user = await this.refreshToken(refreshToken);
|
|
7554
|
+
return user;
|
|
7330
7555
|
}
|
|
7331
7556
|
return null;
|
|
7332
7557
|
}, PassportErrorType.AUTHENTICATION_ERROR);
|
|
@@ -7337,7 +7562,8 @@ class AuthManager {
|
|
|
7337
7562
|
grant_type: 'refresh_token',
|
|
7338
7563
|
refresh_token: refreshToken,
|
|
7339
7564
|
}, formUrlEncodedHeader);
|
|
7340
|
-
|
|
7565
|
+
const newTokenResponse = response.data;
|
|
7566
|
+
return AuthManager.mapDeviceTokenResponseToDomainUserModel(newTokenResponse);
|
|
7341
7567
|
}
|
|
7342
7568
|
async logout() {
|
|
7343
7569
|
return withPassportError(async () => {
|
|
@@ -8496,7 +8722,7 @@ class RelayerClient {
|
|
|
8496
8722
|
}
|
|
8497
8723
|
|
|
8498
8724
|
const MESSAGE_TO_SIGN = 'Only sign this message from Immutable Passport';
|
|
8499
|
-
async function registerZkEvmUser({ authManager, magicProvider, multiRollupApiClients, accessToken, }) {
|
|
8725
|
+
async function registerZkEvmUser({ authManager, config, magicProvider, multiRollupApiClients, accessToken, }) {
|
|
8500
8726
|
const web3Provider = new Web3Provider(magicProvider);
|
|
8501
8727
|
const ethSigner = web3Provider.getSigner();
|
|
8502
8728
|
const ethereumAddress = await ethSigner.getAddress();
|
|
@@ -8513,7 +8739,17 @@ async function registerZkEvmUser({ authManager, magicProvider, multiRollupApiCli
|
|
|
8513
8739
|
catch (error) {
|
|
8514
8740
|
throw new JsonRpcError(RpcErrorCode.INTERNAL_ERROR, `Failed to create counterfactual address: ${error}`);
|
|
8515
8741
|
}
|
|
8516
|
-
|
|
8742
|
+
let user;
|
|
8743
|
+
if (config.crossSdkBridgeEnabled) {
|
|
8744
|
+
const credentials = authManager.checkStoredDeviceFlowCredentials();
|
|
8745
|
+
if (!credentials || !credentials.refresh_token) {
|
|
8746
|
+
throw new JsonRpcError(RpcErrorCode.INTERNAL_ERROR, 'Cross SDK bridge: Failed to refresh user details');
|
|
8747
|
+
}
|
|
8748
|
+
user = await authManager.refreshToken(credentials.refresh_token);
|
|
8749
|
+
}
|
|
8750
|
+
else {
|
|
8751
|
+
user = await authManager.loginSilent();
|
|
8752
|
+
}
|
|
8517
8753
|
if (!user?.zkEvm) {
|
|
8518
8754
|
throw new JsonRpcError(RpcErrorCode.INTERNAL_ERROR, 'Failed to refresh user details');
|
|
8519
8755
|
}
|
|
@@ -8521,7 +8757,7 @@ async function registerZkEvmUser({ authManager, magicProvider, multiRollupApiCli
|
|
|
8521
8757
|
}
|
|
8522
8758
|
|
|
8523
8759
|
const loginZkEvmUser = async ({ authManager, config, magicAdapter, multiRollupApiClients, }) => {
|
|
8524
|
-
const user = await authManager.getUser() || await authManager.login();
|
|
8760
|
+
const user = await authManager.getUser() || await authManager.getUserDeviceFlow() || await authManager.login();
|
|
8525
8761
|
if (!user.idToken) {
|
|
8526
8762
|
throw new Error('User is missing idToken');
|
|
8527
8763
|
}
|
|
@@ -8530,6 +8766,7 @@ const loginZkEvmUser = async ({ authManager, config, magicAdapter, multiRollupAp
|
|
|
8530
8766
|
// Generate counterfactual address and retrieve updated Auth0 user
|
|
8531
8767
|
const userZkevm = await registerZkEvmUser({
|
|
8532
8768
|
authManager,
|
|
8769
|
+
config,
|
|
8533
8770
|
magicProvider,
|
|
8534
8771
|
multiRollupApiClients,
|
|
8535
8772
|
accessToken: user.accessToken,
|
|
@@ -8928,6 +9165,17 @@ class Passport {
|
|
|
8928
9165
|
const user = await this.authManager.getUser();
|
|
8929
9166
|
return user?.accessToken;
|
|
8930
9167
|
}
|
|
9168
|
+
async getLinkedAddresses() {
|
|
9169
|
+
const user = await this.authManager.getUser();
|
|
9170
|
+
if (!user?.profile.sub) {
|
|
9171
|
+
return [];
|
|
9172
|
+
}
|
|
9173
|
+
const headers = { Authorization: `Bearer ${user.accessToken}` };
|
|
9174
|
+
const linkedAddressesResult = await this.multiRollupApiClients.passportApi.getLinkedAddresses({
|
|
9175
|
+
userId: user?.profile.sub,
|
|
9176
|
+
}, { headers });
|
|
9177
|
+
return linkedAddressesResult.data.linkedAddresses;
|
|
9178
|
+
}
|
|
8931
9179
|
}
|
|
8932
9180
|
|
|
8933
9181
|
var passport = /*#__PURE__*/Object.freeze({
|
|
@@ -9425,6 +9673,54 @@ class OrdersService {
|
|
|
9425
9673
|
},
|
|
9426
9674
|
});
|
|
9427
9675
|
}
|
|
9676
|
+
/**
|
|
9677
|
+
* List all trades
|
|
9678
|
+
* List all trades
|
|
9679
|
+
* @returns ListTradeResult OK response.
|
|
9680
|
+
* @throws ApiError
|
|
9681
|
+
*/
|
|
9682
|
+
listTrades({ chainName, accountAddress, pageSize, sortBy, sortDirection, pageCursor, }) {
|
|
9683
|
+
return this.httpRequest.request({
|
|
9684
|
+
method: 'GET',
|
|
9685
|
+
url: '/v1/chains/{chain_name}/trades',
|
|
9686
|
+
path: {
|
|
9687
|
+
'chain_name': chainName,
|
|
9688
|
+
},
|
|
9689
|
+
query: {
|
|
9690
|
+
'account_address': accountAddress,
|
|
9691
|
+
'page_size': pageSize,
|
|
9692
|
+
'sort_by': sortBy,
|
|
9693
|
+
'sort_direction': sortDirection,
|
|
9694
|
+
'page_cursor': pageCursor,
|
|
9695
|
+
},
|
|
9696
|
+
errors: {
|
|
9697
|
+
400: `Bad Request (400)`,
|
|
9698
|
+
404: `The specified resource was not found (404)`,
|
|
9699
|
+
500: `Internal Server Error (500)`,
|
|
9700
|
+
},
|
|
9701
|
+
});
|
|
9702
|
+
}
|
|
9703
|
+
/**
|
|
9704
|
+
* Get a single trade by ID
|
|
9705
|
+
* Get a single trade by ID
|
|
9706
|
+
* @returns TradeResult OK response.
|
|
9707
|
+
* @throws ApiError
|
|
9708
|
+
*/
|
|
9709
|
+
getTrade({ chainName, tradeId, }) {
|
|
9710
|
+
return this.httpRequest.request({
|
|
9711
|
+
method: 'GET',
|
|
9712
|
+
url: '/v1/chains/{chain_name}/trades/{trade_id}',
|
|
9713
|
+
path: {
|
|
9714
|
+
'chain_name': chainName,
|
|
9715
|
+
'trade_id': tradeId,
|
|
9716
|
+
},
|
|
9717
|
+
errors: {
|
|
9718
|
+
400: `Bad Request (400)`,
|
|
9719
|
+
404: `The specified resource was not found (404)`,
|
|
9720
|
+
500: `Internal Server Error (500)`,
|
|
9721
|
+
},
|
|
9722
|
+
});
|
|
9723
|
+
}
|
|
9428
9724
|
}
|
|
9429
9725
|
|
|
9430
9726
|
class OrderBookClient {
|
|
@@ -9561,6 +9857,57 @@ function mapFromOpenApiOrder(order) {
|
|
|
9561
9857
|
updateTime: order.update_time,
|
|
9562
9858
|
};
|
|
9563
9859
|
}
|
|
9860
|
+
function mapFromOpenApiTrade(trade) {
|
|
9861
|
+
const buyItems = trade.buy.map((item) => {
|
|
9862
|
+
if (item.item_type === 'ERC20') {
|
|
9863
|
+
return {
|
|
9864
|
+
type: 'ERC20',
|
|
9865
|
+
contractAddress: item.contract_address,
|
|
9866
|
+
amount: item.start_amount,
|
|
9867
|
+
};
|
|
9868
|
+
}
|
|
9869
|
+
if (item.item_type === 'NATIVE') {
|
|
9870
|
+
return {
|
|
9871
|
+
type: 'NATIVE',
|
|
9872
|
+
amount: item.start_amount,
|
|
9873
|
+
};
|
|
9874
|
+
}
|
|
9875
|
+
throw new Error('Buy items must be either ERC20 or NATIVE');
|
|
9876
|
+
});
|
|
9877
|
+
const sellItems = trade.sell.map((item) => {
|
|
9878
|
+
if (item.item_type === 'ERC721') {
|
|
9879
|
+
return {
|
|
9880
|
+
type: 'ERC721',
|
|
9881
|
+
contractAddress: item.contract_address,
|
|
9882
|
+
tokenId: item.token_id,
|
|
9883
|
+
};
|
|
9884
|
+
}
|
|
9885
|
+
throw new Error('Sell items must ERC721');
|
|
9886
|
+
});
|
|
9887
|
+
return {
|
|
9888
|
+
id: trade.id,
|
|
9889
|
+
orderId: trade.order_id,
|
|
9890
|
+
buy: buyItems,
|
|
9891
|
+
sell: sellItems,
|
|
9892
|
+
buyerFees: trade.buyer_fees.map((fee) => ({
|
|
9893
|
+
amount: fee.amount,
|
|
9894
|
+
recipient: fee.recipient,
|
|
9895
|
+
type: fee.fee_type,
|
|
9896
|
+
})),
|
|
9897
|
+
chain: trade.chain,
|
|
9898
|
+
indexedAt: trade.indexed_at,
|
|
9899
|
+
blockchainMetadata: {
|
|
9900
|
+
blockNumber: trade.blockchain_metadata.block_number,
|
|
9901
|
+
logIndex: trade.blockchain_metadata.log_index,
|
|
9902
|
+
transactionHash: trade.blockchain_metadata.transaction_hash,
|
|
9903
|
+
transactionIndex: trade.blockchain_metadata.transaction_index,
|
|
9904
|
+
},
|
|
9905
|
+
buyerAddress: trade.buyer_address,
|
|
9906
|
+
makerAddress: trade.maker_address,
|
|
9907
|
+
sellerAddress: trade.seller_address,
|
|
9908
|
+
takerAddress: trade.taker_address,
|
|
9909
|
+
};
|
|
9910
|
+
}
|
|
9564
9911
|
function mapFromOpenApiPage(page) {
|
|
9565
9912
|
return {
|
|
9566
9913
|
nextCursor: page.next_cursor,
|
|
@@ -9890,12 +10237,24 @@ class ImmutableApiClient {
|
|
|
9890
10237
|
listingId,
|
|
9891
10238
|
});
|
|
9892
10239
|
}
|
|
10240
|
+
async getTrade(tradeId) {
|
|
10241
|
+
return this.orderbookService.getTrade({
|
|
10242
|
+
chainName: this.chainName,
|
|
10243
|
+
tradeId,
|
|
10244
|
+
});
|
|
10245
|
+
}
|
|
9893
10246
|
async listListings(listOrderParams) {
|
|
9894
10247
|
return this.orderbookService.listListings({
|
|
9895
10248
|
chainName: this.chainName,
|
|
9896
10249
|
...listOrderParams,
|
|
9897
10250
|
});
|
|
9898
10251
|
}
|
|
10252
|
+
async listTrades(listTradesParams) {
|
|
10253
|
+
return this.orderbookService.listTrades({
|
|
10254
|
+
chainName: this.chainName,
|
|
10255
|
+
...listTradesParams,
|
|
10256
|
+
});
|
|
10257
|
+
}
|
|
9899
10258
|
async createListing({ orderHash, orderComponents, orderSignature, makerFee, }) {
|
|
9900
10259
|
if (orderComponents.offer.length !== 1) {
|
|
9901
10260
|
throw new Error('Only one item can be listed at a time');
|
|
@@ -10061,6 +10420,17 @@ class Orderbook {
|
|
|
10061
10420
|
result: mapFromOpenApiOrder(apiListing.result),
|
|
10062
10421
|
};
|
|
10063
10422
|
}
|
|
10423
|
+
/**
|
|
10424
|
+
* Get a trade by ID
|
|
10425
|
+
* @param {string} tradeId - The tradeId to find.
|
|
10426
|
+
* @return {TradeResult} The returned order result.
|
|
10427
|
+
*/
|
|
10428
|
+
async getTrade(tradeId) {
|
|
10429
|
+
const apiListing = await this.apiClient.getTrade(tradeId);
|
|
10430
|
+
return {
|
|
10431
|
+
result: mapFromOpenApiTrade(apiListing.result),
|
|
10432
|
+
};
|
|
10433
|
+
}
|
|
10064
10434
|
/**
|
|
10065
10435
|
* List orders. This method is used to get a list of orders filtered by conditions specified
|
|
10066
10436
|
* in the params object.
|
|
@@ -10074,6 +10444,19 @@ class Orderbook {
|
|
|
10074
10444
|
result: apiListings.result.map(mapFromOpenApiOrder),
|
|
10075
10445
|
};
|
|
10076
10446
|
}
|
|
10447
|
+
/**
|
|
10448
|
+
* List trades. This method is used to get a list of trades filtered by conditions specified
|
|
10449
|
+
* in the params object
|
|
10450
|
+
* @param {ListTradesParams} listTradesParams - Filtering, ordering and page parameters.
|
|
10451
|
+
* @return {ListTradesResult} The paged trades.
|
|
10452
|
+
*/
|
|
10453
|
+
async listTrades(listTradesParams) {
|
|
10454
|
+
const apiListings = await this.apiClient.listTrades(listTradesParams);
|
|
10455
|
+
return {
|
|
10456
|
+
page: mapFromOpenApiPage(apiListings.page),
|
|
10457
|
+
result: apiListings.result.map(mapFromOpenApiTrade),
|
|
10458
|
+
};
|
|
10459
|
+
}
|
|
10077
10460
|
/**
|
|
10078
10461
|
* Get required transactions and messages for signing prior to creating a listing
|
|
10079
10462
|
* through the createListing method
|
|
@@ -11255,8 +11638,7 @@ const ETH_MAINNET_CHAIN_ID = '1';
|
|
|
11255
11638
|
/**
|
|
11256
11639
|
* @constant {string} ZKEVM_DEVNET_CHAIN_ID - The chain ID for the zkEVM devnet (EIP-155 compatible format).
|
|
11257
11640
|
*/
|
|
11258
|
-
const ZKEVM_DEVNET_CHAIN_ID = '
|
|
11259
|
-
/**
|
|
11641
|
+
const ZKEVM_DEVNET_CHAIN_ID = '13473';
|
|
11260
11642
|
/**
|
|
11261
11643
|
* @constant {string} ZKEVM_TESTNET_CHAIN_ID - The chain ID for the zkEVM testnet (EIP-155 compatible format).
|
|
11262
11644
|
*/
|
|
@@ -23537,10 +23919,10 @@ const SUPPORTED_BRIDGES_FOR_ENVIRONMENT = {
|
|
|
23537
23919
|
*/
|
|
23538
23920
|
const CONTRACTS_FOR_BRIDGE = new Map()
|
|
23539
23921
|
.set(ETH_SEPOLIA_TO_ZKEVM_DEVNET, {
|
|
23540
|
-
rootChainERC20Predicate: '
|
|
23541
|
-
rootChainStateSender: '
|
|
23542
|
-
rootChainCheckpointManager: '
|
|
23543
|
-
rootChainExitHelper: '
|
|
23922
|
+
rootChainERC20Predicate: '0x75E468cF088F947B96422996132FbE71160F21F1',
|
|
23923
|
+
rootChainStateSender: '0xbdC11416f01b122b7621855e61c99C7ED986F894',
|
|
23924
|
+
rootChainCheckpointManager: '0x0721b564a96466b864A998D31846Ba409d21092B',
|
|
23925
|
+
rootChainExitHelper: '0x0a2cb3f90aE65429E5c516af500F59d8fed51844',
|
|
23544
23926
|
childChainERC20Predicate: '0x0000000000000000000000000000000000001004',
|
|
23545
23927
|
childChainStateReceiver: '0x0000000000000000000000000000000000001001',
|
|
23546
23928
|
})
|
|
@@ -26935,6 +27317,9 @@ const $d85ad1457a3f1a83$export$161d4a74df65fc08 = {
|
|
|
26935
27317
|
[(Environment$1).SANDBOX]: "https://checkout-api.sandbox.immutable.com",
|
|
26936
27318
|
[(Environment$1).PRODUCTION]: "https://checkout-api.immutable.com"
|
|
26937
27319
|
};
|
|
27320
|
+
const $d85ad1457a3f1a83$export$fc55ed5a42b458ba = {
|
|
27321
|
+
[($0472f23319457bfb$export$c06e1e7429de6283).IMTBL_ZKEVM_TESTNET]: "https://explorer.testnet.immutable.com"
|
|
27322
|
+
};
|
|
26938
27323
|
const $d85ad1457a3f1a83$export$6f24f3cef7d501c4 = new Map([
|
|
26939
27324
|
[
|
|
26940
27325
|
($0472f23319457bfb$export$c06e1e7429de6283).ETHEREUM,
|
|
@@ -27267,6 +27652,7 @@ var $4b58188d47aafe8d$export$537fa3efd10ed435;
|
|
|
27267
27652
|
CheckoutErrorType["DEFAULT_PROVIDER_ERROR"] = "DEFAULT_PROVIDER_ERROR";
|
|
27268
27653
|
CheckoutErrorType["CONNECT_PROVIDER_ERROR"] = "CONNECT_PROVIDER_ERROR";
|
|
27269
27654
|
CheckoutErrorType["GET_BALANCE_ERROR"] = "GET_BALANCE_ERROR";
|
|
27655
|
+
CheckoutErrorType["GET_INDEXER_BALANCE_ERROR"] = "GET_INDEXER_BALANCE_ERROR";
|
|
27270
27656
|
CheckoutErrorType["GET_ERC20_BALANCE_ERROR"] = "GET_ERC20_BALANCE_ERROR";
|
|
27271
27657
|
CheckoutErrorType["GET_ERC721_BALANCE_ERROR"] = "GET_ERC721_BALANCE_ERROR";
|
|
27272
27658
|
CheckoutErrorType["GET_NETWORK_INFO_ERROR"] = "GET_NETWORK_INFO_ERROR";
|
|
@@ -27282,6 +27668,7 @@ var $4b58188d47aafe8d$export$537fa3efd10ed435;
|
|
|
27282
27668
|
CheckoutErrorType["UNSUPPORTED_TOKEN_TYPE_ERROR"] = "UNSUPPORTED_TOKEN_TYPE_ERROR";
|
|
27283
27669
|
CheckoutErrorType["UNSUPPORTED_BALANCE_REQUIREMENT_ERROR"] = "UNSUPPORTED_BALANCE_REQUIREMENT_ERROR";
|
|
27284
27670
|
CheckoutErrorType["GET_ORDER_LISTING_ERROR"] = "GET_ORDER_LISTING_ERROR";
|
|
27671
|
+
CheckoutErrorType["PREPARE_ORDER_LISTING_ERROR"] = "PREPARE_ORDER_LISTING_ERROR";
|
|
27285
27672
|
CheckoutErrorType["SWITCH_NETWORK_UNSUPPORTED"] = "SWITCH_NETWORK_UNSUPPORTED";
|
|
27286
27673
|
CheckoutErrorType["GET_ERC20_ALLOWANCE_ERROR"] = "GET_ERC20_ALLOWANCE_ERROR";
|
|
27287
27674
|
CheckoutErrorType["GET_ERC721_ALLOWANCE_ERROR"] = "GET_ERC721_ALLOWANCE_ERROR";
|
|
@@ -27472,7 +27859,7 @@ const $efe60cea83bfc4e8$export$473cec51305fdae8 = async (config, { type: type =
|
|
|
27472
27859
|
case ($08d5ddc39acd6833$export$fd9b17d87f4121d2).BRIDGE:
|
|
27473
27860
|
case ($08d5ddc39acd6833$export$fd9b17d87f4121d2).ALL:
|
|
27474
27861
|
default:
|
|
27475
|
-
tokens = await config.remote.
|
|
27862
|
+
tokens = (await config.remote.getTokensConfig(chainId)).allowed;
|
|
27476
27863
|
}
|
|
27477
27864
|
if (!exclude || exclude?.length === 0) return {
|
|
27478
27865
|
tokens: tokens
|
|
@@ -27485,6 +27872,90 @@ const $efe60cea83bfc4e8$export$473cec51305fdae8 = async (config, { type: type =
|
|
|
27485
27872
|
|
|
27486
27873
|
|
|
27487
27874
|
|
|
27875
|
+
|
|
27876
|
+
|
|
27877
|
+
const $fd8a8472dcc3ec2b$var$CACHE_DATA_TTL = 60; // seconds
|
|
27878
|
+
class $fd8a8472dcc3ec2b$export$ef140a6b05dfc786 {
|
|
27879
|
+
url;
|
|
27880
|
+
ttl;
|
|
27881
|
+
chainId;
|
|
27882
|
+
cacheMap;
|
|
27883
|
+
static async makeHttpRequest(url) {
|
|
27884
|
+
return (globalAxios$1).get(url);
|
|
27885
|
+
}
|
|
27886
|
+
setCache(key, data) {
|
|
27887
|
+
this.cacheMap[key] = {
|
|
27888
|
+
data: data,
|
|
27889
|
+
ttl: new Date().getTime() + this.ttl * 1000
|
|
27890
|
+
};
|
|
27891
|
+
}
|
|
27892
|
+
getCache(key) {
|
|
27893
|
+
const d = this.cacheMap[key];
|
|
27894
|
+
if (!d || d.ttl <= new Date().getTime()) return null;
|
|
27895
|
+
return d.data;
|
|
27896
|
+
}
|
|
27897
|
+
/**
|
|
27898
|
+
* Blockscout constructor
|
|
27899
|
+
* @param chainId target chain
|
|
27900
|
+
* @param ttl cache TTL
|
|
27901
|
+
*/ constructor(params){
|
|
27902
|
+
this.chainId = params.chainId;
|
|
27903
|
+
this.url = ($d85ad1457a3f1a83$export$fc55ed5a42b458ba)[this.chainId];
|
|
27904
|
+
this.cacheMap = {};
|
|
27905
|
+
this.ttl = params.ttl !== undefined ? params.ttl : $fd8a8472dcc3ec2b$var$CACHE_DATA_TTL;
|
|
27906
|
+
}
|
|
27907
|
+
/**
|
|
27908
|
+
* isChainSupported verifies if the chain is supported by Blockscout
|
|
27909
|
+
* @param chainId
|
|
27910
|
+
*/ static isChainSupported = (chainId)=>Boolean(($d85ad1457a3f1a83$export$fc55ed5a42b458ba)[chainId]);
|
|
27911
|
+
/**
|
|
27912
|
+
* isBlockscoutError verifies if the error is a Blockscout client error
|
|
27913
|
+
* @param err error to evaluate
|
|
27914
|
+
*/ static isBlockscoutError = (err)=>"code" in err;
|
|
27915
|
+
/**
|
|
27916
|
+
* getAddressTokens fetches the list of tokens (by type) owned by the wallet address.
|
|
27917
|
+
* @param walletAddress wallet address
|
|
27918
|
+
* @param tokenType token types
|
|
27919
|
+
* @param nextPage parameters for the next page, to be provided along side walletAddress and tokenType
|
|
27920
|
+
* @returns list of tokens given the wallet address and the token types
|
|
27921
|
+
*/ async getAddressTokens(params) {
|
|
27922
|
+
try {
|
|
27923
|
+
let url = `${this.url}/api/v2/addresses/${params.walletAddress}/tokens?type=${params.tokenType.join(",")}`;
|
|
27924
|
+
if (params.nextPage) url += `&${new URLSearchParams(params.nextPage)}`;
|
|
27925
|
+
// Cache response data to prevent unnecessary requests
|
|
27926
|
+
const cached = this.getCache(url);
|
|
27927
|
+
if (cached && cached.status < 400) return Promise.resolve(cached.data);
|
|
27928
|
+
const response = await $fd8a8472dcc3ec2b$export$ef140a6b05dfc786.makeHttpRequest(url);
|
|
27929
|
+
if (response.status >= 400) return Promise.reject({
|
|
27930
|
+
code: response.status,
|
|
27931
|
+
message: response.statusText
|
|
27932
|
+
});
|
|
27933
|
+
this.setCache(url, response);
|
|
27934
|
+
return Promise.resolve(response.data);
|
|
27935
|
+
} catch (err) {
|
|
27936
|
+
let code = (HttpStatusCode$2).InternalServerError;
|
|
27937
|
+
let message = "InternalServerError";
|
|
27938
|
+
if ((globalAxios$1).isAxiosError(err)) {
|
|
27939
|
+
code = err.response?.status || code;
|
|
27940
|
+
message = err.message;
|
|
27941
|
+
}
|
|
27942
|
+
return Promise.reject({
|
|
27943
|
+
code: code,
|
|
27944
|
+
message: message
|
|
27945
|
+
});
|
|
27946
|
+
}
|
|
27947
|
+
}
|
|
27948
|
+
}
|
|
27949
|
+
|
|
27950
|
+
|
|
27951
|
+
/* eslint @typescript-eslint/naming-convention: off */ var $887a00f8f72d61f0$export$5bd1ea2b3d18210;
|
|
27952
|
+
(function(BlockscoutTokenType) {
|
|
27953
|
+
BlockscoutTokenType["ERC20"] = "ERC-20";
|
|
27954
|
+
})($887a00f8f72d61f0$export$5bd1ea2b3d18210 || ($887a00f8f72d61f0$export$5bd1ea2b3d18210 = {}));
|
|
27955
|
+
|
|
27956
|
+
|
|
27957
|
+
|
|
27958
|
+
|
|
27488
27959
|
const $1564e43dde50bb61$export$df96cd8d56be0ab1 = async (config, web3Provider, walletAddress)=>await ($a8bc256d81a5e2c1$export$bacc563de539c6c3)(async ()=>{
|
|
27489
27960
|
const networkInfo = await ($de192de6ef100f9f$export$79f13b4cfaaf0d09)(config, web3Provider);
|
|
27490
27961
|
if (!networkInfo.isSupported) throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)(`Chain:${networkInfo.chainId} is not a supported chain`, ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).CHAIN_NOT_SUPPORTED_ERROR, {
|
|
@@ -27524,6 +27995,59 @@ async function $1564e43dde50bb61$export$60e0fe116a0e6ed0(web3Provider, walletAdd
|
|
|
27524
27995
|
type: ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC20_BALANCE_ERROR
|
|
27525
27996
|
});
|
|
27526
27997
|
}
|
|
27998
|
+
// Blockscout client singleton
|
|
27999
|
+
let $1564e43dde50bb61$var$blockscoutClient;
|
|
28000
|
+
const $1564e43dde50bb61$export$8c978679845804d4 = async (walletAddress, chainId, rename)=>{
|
|
28001
|
+
// Shuffle the mapping of the tokens configuration so it is a hashmap
|
|
28002
|
+
// for faster access to tokens config objects.
|
|
28003
|
+
const mapRename = Object.assign({}, ...rename.map((t)=>({
|
|
28004
|
+
[t.address || ""]: t
|
|
28005
|
+
})));
|
|
28006
|
+
// Ensure singleton is present and match the selected chain
|
|
28007
|
+
if (!$1564e43dde50bb61$var$blockscoutClient || $1564e43dde50bb61$var$blockscoutClient.chainId !== chainId) $1564e43dde50bb61$var$blockscoutClient = new ($fd8a8472dcc3ec2b$export$ef140a6b05dfc786)({
|
|
28008
|
+
chainId: chainId
|
|
28009
|
+
});
|
|
28010
|
+
// Hold the items in an array for post-fetching processing
|
|
28011
|
+
const items = [];
|
|
28012
|
+
const tokenType = [
|
|
28013
|
+
($887a00f8f72d61f0$export$5bd1ea2b3d18210).ERC20
|
|
28014
|
+
];
|
|
28015
|
+
// Given that the widgets aren't yet designed to support pagination,
|
|
28016
|
+
// fetch all the possible tokens associated to a given wallet address.
|
|
28017
|
+
let resp;
|
|
28018
|
+
try {
|
|
28019
|
+
do {
|
|
28020
|
+
// eslint-disable-next-line no-await-in-loop
|
|
28021
|
+
resp = await $1564e43dde50bb61$var$blockscoutClient.getAddressTokens({
|
|
28022
|
+
walletAddress: walletAddress,
|
|
28023
|
+
tokenType: tokenType,
|
|
28024
|
+
nextPage: resp?.next_page_params
|
|
28025
|
+
});
|
|
28026
|
+
items.push(...resp.items);
|
|
28027
|
+
}while (resp.next_page_params);
|
|
28028
|
+
} catch (err) {
|
|
28029
|
+
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)(err.message || "InternalServerError", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_INDEXER_BALANCE_ERROR, err);
|
|
28030
|
+
}
|
|
28031
|
+
return {
|
|
28032
|
+
balances: items.map((item)=>{
|
|
28033
|
+
const tokenData = item.token || {};
|
|
28034
|
+
const balance = (BigNumber$1).from(item.value);
|
|
28035
|
+
const renamed = mapRename[tokenData.address] || {};
|
|
28036
|
+
const token = {
|
|
28037
|
+
...tokenData,
|
|
28038
|
+
name: renamed.name ?? tokenData.name,
|
|
28039
|
+
symbol: renamed.symbol ?? tokenData.symbol,
|
|
28040
|
+
decimals: parseInt(tokenData.decimals, 10)
|
|
28041
|
+
};
|
|
28042
|
+
const formattedBalance = (utils$1).formatUnits(item.value, token.decimals);
|
|
28043
|
+
return {
|
|
28044
|
+
balance: balance,
|
|
28045
|
+
formattedBalance: formattedBalance,
|
|
28046
|
+
token: token
|
|
28047
|
+
};
|
|
28048
|
+
})
|
|
28049
|
+
};
|
|
28050
|
+
};
|
|
27527
28051
|
const $1564e43dde50bb61$export$a3238cee431627c6 = async (config, web3Provider, walletAddress, tokens)=>{
|
|
27528
28052
|
const allBalancePromises = [];
|
|
27529
28053
|
tokens.forEach((token)=>{
|
|
@@ -27542,6 +28066,17 @@ const $1564e43dde50bb61$export$fee49741664a4d7e = async (config, web3Provider, w
|
|
|
27542
28066
|
type: ($08d5ddc39acd6833$export$fd9b17d87f4121d2).ALL,
|
|
27543
28067
|
chainId: chainId
|
|
27544
28068
|
});
|
|
28069
|
+
// In order to prevent unnecessary RPC calls
|
|
28070
|
+
// let's use the Indexer if available for the
|
|
28071
|
+
// given chain.
|
|
28072
|
+
let flag = false;
|
|
28073
|
+
try {
|
|
28074
|
+
flag = (await config.remote.getTokensConfig(chainId)).blockscout || flag;
|
|
28075
|
+
} catch (err) {
|
|
28076
|
+
// eslint-disable-next-line no-console
|
|
28077
|
+
console.error(err);
|
|
28078
|
+
}
|
|
28079
|
+
if (flag && ($fd8a8472dcc3ec2b$export$ef140a6b05dfc786).isChainSupported(chainId)) return await $1564e43dde50bb61$export$8c978679845804d4(walletAddress, chainId, tokens);
|
|
27545
28080
|
return await $1564e43dde50bb61$export$a3238cee431627c6(config, web3Provider, walletAddress, tokens);
|
|
27546
28081
|
};
|
|
27547
28082
|
|
|
@@ -27840,10 +28375,10 @@ class $a492ee374ae7b613$export$d902b56530cd5f87 {
|
|
|
27840
28375
|
if (!key) return config;
|
|
27841
28376
|
return config[key];
|
|
27842
28377
|
}
|
|
27843
|
-
async
|
|
28378
|
+
async getTokensConfig(chainId) {
|
|
27844
28379
|
const config = await this.loadConfigTokens();
|
|
27845
|
-
if (!config) return
|
|
27846
|
-
return config[chainId]
|
|
28380
|
+
if (!config || !config[chainId]) return {};
|
|
28381
|
+
return config[chainId] ?? [];
|
|
27847
28382
|
}
|
|
27848
28383
|
}
|
|
27849
28384
|
|
|
@@ -28166,7 +28701,9 @@ const $35c3fc7013888ba5$export$90366d6b714c6f69 = async (provider, ownerAddress,
|
|
|
28166
28701
|
return await contract.isApprovedForAll(ownerAddress, spenderAddress);
|
|
28167
28702
|
} catch (err) {
|
|
28168
28703
|
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Failed to check approval for all ERC721s of collection", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
|
|
28169
|
-
|
|
28704
|
+
ownerAddress: ownerAddress,
|
|
28705
|
+
contractAddress: contractAddress,
|
|
28706
|
+
spenderAddress: spenderAddress
|
|
28170
28707
|
});
|
|
28171
28708
|
}
|
|
28172
28709
|
};
|
|
@@ -28178,7 +28715,10 @@ const $35c3fc7013888ba5$export$ebb2a35f2b4cf5f6 = async (provider, ownerAddress,
|
|
|
28178
28715
|
return transaction;
|
|
28179
28716
|
} catch (err) {
|
|
28180
28717
|
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Failed to get the approval transaction for ERC721", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
|
|
28181
|
-
|
|
28718
|
+
id: id.toString(),
|
|
28719
|
+
contractAddress: contractAddress,
|
|
28720
|
+
spenderAddress: spenderAddress,
|
|
28721
|
+
ownerAddress: ownerAddress
|
|
28182
28722
|
});
|
|
28183
28723
|
}
|
|
28184
28724
|
};
|
|
@@ -28188,6 +28728,7 @@ const $35c3fc7013888ba5$export$c4605a8dd415eeea = async (provider, contractAddre
|
|
|
28188
28728
|
return await contract.getApproved(id);
|
|
28189
28729
|
} catch (err) {
|
|
28190
28730
|
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("Failed to get approved address for ERC721", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).GET_ERC721_ALLOWANCE_ERROR, {
|
|
28731
|
+
id: id.toString(),
|
|
28191
28732
|
contractAddress: contractAddress
|
|
28192
28733
|
});
|
|
28193
28734
|
}
|
|
@@ -28777,6 +29318,81 @@ const $64863c39386de592$export$7f8e2b98eca5a7f0 = async (config, provider, order
|
|
|
28777
29318
|
|
|
28778
29319
|
|
|
28779
29320
|
|
|
29321
|
+
|
|
29322
|
+
const $9085b221b72ac69e$export$af768ccdf17d5c04 = (id, contractAddress, spenderAddress)=>({
|
|
29323
|
+
type: ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721,
|
|
29324
|
+
id: id,
|
|
29325
|
+
contractAddress: contractAddress,
|
|
29326
|
+
spenderAddress: spenderAddress
|
|
29327
|
+
});
|
|
29328
|
+
const $9085b221b72ac69e$export$d2da5a4d143c85e5 = (buyToken)=>{
|
|
29329
|
+
if (buyToken.type === ($4b58188d47aafe8d$export$1fc8f52ad1810e52).NATIVE) return {
|
|
29330
|
+
type: ($4b58188d47aafe8d$export$1fc8f52ad1810e52).NATIVE,
|
|
29331
|
+
amount: buyToken.amount.toString()
|
|
29332
|
+
};
|
|
29333
|
+
return {
|
|
29334
|
+
type: ($4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC20,
|
|
29335
|
+
amount: buyToken.amount.toString(),
|
|
29336
|
+
contractAddress: buyToken.contractAddress
|
|
29337
|
+
};
|
|
29338
|
+
};
|
|
29339
|
+
const $9085b221b72ac69e$export$e761f9e0703de895 = async (config, provider, id, contractAddress, buyToken)=>{
|
|
29340
|
+
let orderbook;
|
|
29341
|
+
let listing;
|
|
29342
|
+
let spenderAddress = "";
|
|
29343
|
+
try {
|
|
29344
|
+
const walletAddress = await provider.getSigner().getAddress();
|
|
29345
|
+
orderbook = await $67fc622a2b913d5f$export$c60ce6c6a92bc2ff(config);
|
|
29346
|
+
const { seaportContractAddress: seaportContractAddress } = orderbook.config();
|
|
29347
|
+
spenderAddress = seaportContractAddress;
|
|
29348
|
+
listing = await orderbook.prepareListing({
|
|
29349
|
+
makerAddress: walletAddress,
|
|
29350
|
+
buy: $9085b221b72ac69e$export$d2da5a4d143c85e5(buyToken),
|
|
29351
|
+
sell: {
|
|
29352
|
+
type: (0, $4b58188d47aafe8d$export$1fc8f52ad1810e52).ERC721,
|
|
29353
|
+
contractAddress: contractAddress,
|
|
29354
|
+
tokenId: id
|
|
29355
|
+
}
|
|
29356
|
+
});
|
|
29357
|
+
} catch (err) {
|
|
29358
|
+
throw new ($a8bc256d81a5e2c1$export$b722478a3cbfa3bc)("An error occurred while preparing the listing", ($a8bc256d81a5e2c1$export$e3dc0620abde7f5a).PREPARE_ORDER_LISTING_ERROR, {
|
|
29359
|
+
message: err.message,
|
|
29360
|
+
id: id,
|
|
29361
|
+
collectionAddress: contractAddress
|
|
29362
|
+
});
|
|
29363
|
+
}
|
|
29364
|
+
const itemRequirements = [
|
|
29365
|
+
$9085b221b72ac69e$export$af768ccdf17d5c04(id, contractAddress, spenderAddress)
|
|
29366
|
+
];
|
|
29367
|
+
// eslint-disable-next-line no-console
|
|
29368
|
+
console.log(listing); // TODO: Get order signature, provider.getSigner()._signTypedData to sign
|
|
29369
|
+
const smartCheckoutResult = await ($0e7419077c373b24$export$9e073f9ada8c81e6)(config, provider, itemRequirements, {
|
|
29370
|
+
type: ($4b58188d47aafe8d$export$65c64e46348ee3c1).GAS,
|
|
29371
|
+
gasToken: {
|
|
29372
|
+
type: ($4b58188d47aafe8d$export$537fa3efd10ed435).NATIVE,
|
|
29373
|
+
limit: (BigNumber$1).from((constants).estimatedFulfillmentGasGwei)
|
|
29374
|
+
}
|
|
29375
|
+
});
|
|
29376
|
+
// eslint-disable-next-line no-console
|
|
29377
|
+
console.log("transactionRequirements", smartCheckoutResult);
|
|
29378
|
+
return {
|
|
29379
|
+
itemRequirements: itemRequirements,
|
|
29380
|
+
gasToken: {
|
|
29381
|
+
type: ($4b58188d47aafe8d$export$537fa3efd10ed435).NATIVE,
|
|
29382
|
+
limit: (BigNumber$1).from((constants).estimatedFulfillmentGasGwei)
|
|
29383
|
+
},
|
|
29384
|
+
smartCheckoutResult: smartCheckoutResult
|
|
29385
|
+
};
|
|
29386
|
+
};
|
|
29387
|
+
|
|
29388
|
+
|
|
29389
|
+
|
|
29390
|
+
|
|
29391
|
+
|
|
29392
|
+
|
|
29393
|
+
|
|
29394
|
+
|
|
29395
|
+
|
|
28780
29396
|
async function $0e0060cb42e136d2$export$339cb2be73677b30(config, existingReadOnlyProviders) {
|
|
28781
29397
|
if (config.isProduction && existingReadOnlyProviders?.has(($0472f23319457bfb$export$c06e1e7429de6283).ETHEREUM)) return existingReadOnlyProviders;
|
|
28782
29398
|
if (existingReadOnlyProviders?.has(($0472f23319457bfb$export$c06e1e7429de6283).SEPOLIA)) return existingReadOnlyProviders;
|
|
@@ -28921,6 +29537,16 @@ class $a8cb37a3fc8eb863$export$1f60ba4ec72508a0 {
|
|
|
28921
29537
|
await $64863c39386de592$export$7f8e2b98eca5a7f0(this.config, web3Provider, params.orderId);
|
|
28922
29538
|
}
|
|
28923
29539
|
/**
|
|
29540
|
+
* Determines the requirements for performing a sell.
|
|
29541
|
+
* @param {SellParams} params - The parameters for the sell.
|
|
29542
|
+
*/ async sell(params) {
|
|
29543
|
+
if (this.config.isProduction) throw new Error("This endpoint is not currently available.");
|
|
29544
|
+
// eslint-disable-next-line no-console
|
|
29545
|
+
console.warn("This endpoint is currently under construction.");
|
|
29546
|
+
const web3Provider = await $bb88265fe45a0393$export$9e1fd9cc88c637a0(this.config, params.provider);
|
|
29547
|
+
await $9085b221b72ac69e$export$e761f9e0703de895(this.config, web3Provider, params.id, params.collectionAddress, params.buyToken);
|
|
29548
|
+
}
|
|
29549
|
+
/**
|
|
28924
29550
|
* Determines the transaction requirements to complete a purchase.
|
|
28925
29551
|
* @params {SmartCheckoutParams} params - The parameters for smart checkout.
|
|
28926
29552
|
*/ async smartCheckout(params) {
|
|
@@ -28967,7 +29593,7 @@ var checkout_sdk = /*#__PURE__*/Object.freeze({
|
|
|
28967
29593
|
function $parcel$export(e, n, v, s) {
|
|
28968
29594
|
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
28969
29595
|
}
|
|
28970
|
-
const $d663162fd5a0853f$export$38a083d9fb5551ca = "0.
|
|
29596
|
+
const $d663162fd5a0853f$export$38a083d9fb5551ca = "0.16.0-alpha.1";
|
|
28971
29597
|
const $d663162fd5a0853f$export$83bf90b30cdfd29f = ()=>false;
|
|
28972
29598
|
const $d663162fd5a0853f$export$1169f5475725171b = ()=>$d663162fd5a0853f$export$38a083d9fb5551ca;
|
|
28973
29599
|
|
|
@@ -29660,7 +30286,7 @@ const _abi$2 = [
|
|
|
29660
30286
|
},
|
|
29661
30287
|
{
|
|
29662
30288
|
internalType: "address",
|
|
29663
|
-
name: "
|
|
30289
|
+
name: "operatorAllowlist_",
|
|
29664
30290
|
type: "address",
|
|
29665
30291
|
},
|
|
29666
30292
|
{
|
|
@@ -29677,6 +30303,11 @@ const _abi$2 = [
|
|
|
29677
30303
|
stateMutability: "nonpayable",
|
|
29678
30304
|
type: "constructor",
|
|
29679
30305
|
},
|
|
30306
|
+
{
|
|
30307
|
+
inputs: [],
|
|
30308
|
+
name: "AllowlistDoesNotImplementIOperatorAllowlist",
|
|
30309
|
+
type: "error",
|
|
30310
|
+
},
|
|
29680
30311
|
{
|
|
29681
30312
|
inputs: [
|
|
29682
30313
|
{
|
|
@@ -29769,11 +30400,6 @@ const _abi$2 = [
|
|
|
29769
30400
|
name: "IImmutableERC721TokenAlreadyBurned",
|
|
29770
30401
|
type: "error",
|
|
29771
30402
|
},
|
|
29772
|
-
{
|
|
29773
|
-
inputs: [],
|
|
29774
|
-
name: "RoyaltyEnforcementDoesNotImplementRequiredInterface",
|
|
29775
|
-
type: "error",
|
|
29776
|
-
},
|
|
29777
30403
|
{
|
|
29778
30404
|
inputs: [
|
|
29779
30405
|
{
|
|
@@ -29846,6 +30472,25 @@ const _abi$2 = [
|
|
|
29846
30472
|
name: "ApprovalForAll",
|
|
29847
30473
|
type: "event",
|
|
29848
30474
|
},
|
|
30475
|
+
{
|
|
30476
|
+
anonymous: false,
|
|
30477
|
+
inputs: [
|
|
30478
|
+
{
|
|
30479
|
+
indexed: false,
|
|
30480
|
+
internalType: "address",
|
|
30481
|
+
name: "oldRegistry",
|
|
30482
|
+
type: "address",
|
|
30483
|
+
},
|
|
30484
|
+
{
|
|
30485
|
+
indexed: false,
|
|
30486
|
+
internalType: "address",
|
|
30487
|
+
name: "newRegistry",
|
|
30488
|
+
type: "address",
|
|
30489
|
+
},
|
|
30490
|
+
],
|
|
30491
|
+
name: "OperatorAllowlistRegistryUpdated",
|
|
30492
|
+
type: "event",
|
|
30493
|
+
},
|
|
29849
30494
|
{
|
|
29850
30495
|
anonymous: false,
|
|
29851
30496
|
inputs: [
|
|
@@ -29921,25 +30566,6 @@ const _abi$2 = [
|
|
|
29921
30566
|
name: "RoleRevoked",
|
|
29922
30567
|
type: "event",
|
|
29923
30568
|
},
|
|
29924
|
-
{
|
|
29925
|
-
anonymous: false,
|
|
29926
|
-
inputs: [
|
|
29927
|
-
{
|
|
29928
|
-
indexed: false,
|
|
29929
|
-
internalType: "address",
|
|
29930
|
-
name: "oldRegistry",
|
|
29931
|
-
type: "address",
|
|
29932
|
-
},
|
|
29933
|
-
{
|
|
29934
|
-
indexed: false,
|
|
29935
|
-
internalType: "address",
|
|
29936
|
-
name: "newRegistry",
|
|
29937
|
-
type: "address",
|
|
29938
|
-
},
|
|
29939
|
-
],
|
|
29940
|
-
name: "RoyaltyAllowlistRegistryUpdated",
|
|
29941
|
-
type: "event",
|
|
29942
|
-
},
|
|
29943
30569
|
{
|
|
29944
30570
|
anonymous: false,
|
|
29945
30571
|
inputs: [
|
|
@@ -30384,6 +31010,19 @@ const _abi$2 = [
|
|
|
30384
31010
|
stateMutability: "view",
|
|
30385
31011
|
type: "function",
|
|
30386
31012
|
},
|
|
31013
|
+
{
|
|
31014
|
+
inputs: [],
|
|
31015
|
+
name: "operatorAllowlist",
|
|
31016
|
+
outputs: [
|
|
31017
|
+
{
|
|
31018
|
+
internalType: "contract IOperatorAllowlist",
|
|
31019
|
+
name: "",
|
|
31020
|
+
type: "address",
|
|
31021
|
+
},
|
|
31022
|
+
],
|
|
31023
|
+
stateMutability: "view",
|
|
31024
|
+
type: "function",
|
|
31025
|
+
},
|
|
30387
31026
|
{
|
|
30388
31027
|
inputs: [
|
|
30389
31028
|
{
|
|
@@ -30452,19 +31091,6 @@ const _abi$2 = [
|
|
|
30452
31091
|
stateMutability: "nonpayable",
|
|
30453
31092
|
type: "function",
|
|
30454
31093
|
},
|
|
30455
|
-
{
|
|
30456
|
-
inputs: [],
|
|
30457
|
-
name: "royaltyAllowlist",
|
|
30458
|
-
outputs: [
|
|
30459
|
-
{
|
|
30460
|
-
internalType: "contract IRoyaltyAllowlist",
|
|
30461
|
-
name: "",
|
|
30462
|
-
type: "address",
|
|
30463
|
-
},
|
|
30464
|
-
],
|
|
30465
|
-
stateMutability: "view",
|
|
30466
|
-
type: "function",
|
|
30467
|
-
},
|
|
30468
31094
|
{
|
|
30469
31095
|
inputs: [
|
|
30470
31096
|
{
|
|
@@ -30816,11 +31442,11 @@ const _abi$2 = [
|
|
|
30816
31442
|
inputs: [
|
|
30817
31443
|
{
|
|
30818
31444
|
internalType: "address",
|
|
30819
|
-
name: "
|
|
31445
|
+
name: "_operatorAllowlist",
|
|
30820
31446
|
type: "address",
|
|
30821
31447
|
},
|
|
30822
31448
|
],
|
|
30823
|
-
name: "
|
|
31449
|
+
name: "setOperatorAllowlistRegistry",
|
|
30824
31450
|
outputs: [],
|
|
30825
31451
|
stateMutability: "nonpayable",
|
|
30826
31452
|
type: "function",
|
|
@@ -30913,7 +31539,7 @@ const _abi$2 = [
|
|
|
30913
31539
|
type: "function",
|
|
30914
31540
|
},
|
|
30915
31541
|
];
|
|
30916
|
-
const _bytecode$2 = "0x608060405260006013553480156200001657600080fd5b50604051620052f1380380620052f18339810160408190526200003991620007cd565b8787878787878787868681818181600662000055838262000960565b50600762000064828262000960565b50506801000000000000000060095550600d62000082838262000960565b50600e62000091828262000960565b50620000a69350600092508b915050620000f1565b620000b2828262000134565b620000bd8362000239565b6016620000cb868262000960565b506015620000da858262000960565b505050505050505050505050505050505062000b74565b6200010882826200025560201b620011e11760201c565b60008281526001602090815260409091206200012f91839062001265620002f5821b17901c565b505050565b6127106001600160601b0382161115620001a85760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002005760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016200019f565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000620002468162000315565b620002518262000324565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000251576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002b13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006200030c836001600160a01b0384166200041d565b90505b92915050565b6200032181336200046f565b50565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801562000370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000396919062000a2c565b620003b457604051631353be1160e11b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527ff499b54d61d3fcb40299e3299af3ffe9ef1ee6e47194240f3cc5b6e09f7f6796910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b600081815260018301602052604081205462000466575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200030f565b5060006200030f565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200025157620004ae81620004ff60201b6200127a1760201c565b620004c48360206200128c62000512821b17811c565b604051602001620004d792919062000a50565b60408051601f198184030181529082905262461bcd60e51b82526200019f9160040162000ac9565b60606200030f6001600160a01b03831660145b606060006200052383600262000b14565b6200053090600262000b2e565b6001600160401b038111156200054a576200054a620006e8565b6040519080825280601f01601f19166020018201604052801562000575576020820181803683370190505b509050600360fc1b8160008151811062000593576200059362000b44565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620005c557620005c562000b44565b60200101906001600160f81b031916908160001a9053506000620005eb84600262000b14565b620005f890600162000b2e565b90505b60018111156200067a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062000630576200063062000b44565b1a60f81b82828151811062000649576200064962000b44565b60200101906001600160f81b031916908160001a90535060049490941c93620006728162000b5a565b9050620005fb565b5083156200030c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016200019f565b80516001600160a01b0381168114620006e357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200071b57818101518382015260200162000701565b50506000910152565b600082601f8301126200073657600080fd5b81516001600160401b0380821115620007535762000753620006e8565b604051601f8301601f19908116603f011681019082821181831017156200077e576200077e620006e8565b816040528381528660208588010111156200079857600080fd5b620007ab846020830160208901620006fe565b9695505050505050565b80516001600160601b0381168114620006e357600080fd5b600080600080600080600080610100898b031215620007eb57600080fd5b620007f689620006cb565b60208a01519098506001600160401b03808211156200081457600080fd5b620008228c838d0162000724565b985060408b01519150808211156200083957600080fd5b620008478c838d0162000724565b975060608b01519150808211156200085e57600080fd5b6200086c8c838d0162000724565b965060808b01519150808211156200088357600080fd5b50620008928b828c0162000724565b945050620008a360a08a01620006cb565b9250620008b360c08a01620006cb565b9150620008c360e08a01620007b5565b90509295985092959890939650565b600181811c90821680620008e757607f821691505b6020821081036200090857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012f57600081815260208120601f850160051c81016020861015620009375750805b601f850160051c820191505b81811015620009585782815560010162000943565b505050505050565b81516001600160401b038111156200097c576200097c620006e8565b62000994816200098d8454620008d2565b846200090e565b602080601f831160018114620009cc5760008415620009b35750858301515b600019600386901b1c1916600185901b17855562000958565b600085815260208120601f198616915b82811015620009fd57888601518255948401946001909101908401620009dc565b508582101562000a1c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a3f57600080fd5b815180151581146200030c57600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162000a8a816017850160208801620006fe565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162000abd816028840160208801620006fe565b01602801949350505050565b602081526000825180602084015262000aea816040850160208701620006fe565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200030f576200030f62000afe565b808201808211156200030f576200030f62000afe565b634e487b7160e01b600052603260045260246000fd5b60008162000b6c5762000b6c62000afe565b506000190190565b61476d8062000b846000396000f3fe608060405234801561001057600080fd5b50600436106102f05760003560e01c806369e2f0fb1161019d578063a217fddf116100e9578063d5391393116100a2578063e4623c1b1161007c578063e4623c1b146106af578063e8a3d485146106c2578063e985e9c5146106ca578063eea98768146106dd57600080fd5b8063d539139314610674578063d547741f14610689578063e19278591461069c57600080fd5b8063a217fddf1461060d578063a22cb46514610615578063a701281614610628578063b88d4fde1461063b578063c87b56dd1461064e578063ca15c8731461066157600080fd5b80639010d07c1161015657806395d89b411161013057806395d89b41146105cc5780639e2641a3146105d45780639f15d700146105e7578063a1448194146105fa57600080fd5b80639010d07c1461059357806391d14854146105a6578063938e3d7b146105b957600080fd5b806369e2f0fb1461052c5780636b3a06321461053f5780636c0360eb1461055257806370a082311461055a57806374f16a811461056d578063885e7a081461058057600080fd5b80632f2ff15d1161025c57806342966c681161021557806355f804b3116101ef57806355f804b3146104e0578063567e4075146104f35780636352211e146105065780636588962a1461051957600080fd5b806342966c68146104a7578063439aed34146104ba5780634f558e79146104cd57600080fd5b80632f2ff15d1461043357806331ae450b1461044657806336568abe1461045b5780633dd1eb611461046e57806340c10f191461048157806342842e0e1461049457600080fd5b80631f8ebbd1116102ae5780631f8ebbd11461039b578063234af046146103a557806323b872dd146103b8578063248a9ca3146103cb5780632a55205a146103ee5780632d2c5a8b1461042057600080fd5b80628ad946146102f557806301ffc9a71461030a57806306fdde0314610332578063081812fc14610347578063095ea7b31461037257806318160ddd14610385575b600080fd5b61030861030336600461391b565b6106f0565b005b61031d61031836600461396b565b6107c6565b60405190151581526020015b60405180910390f35b61033a6107d7565b60405161032991906139d8565b61035a6103553660046139eb565b6107e6565b6040516001600160a01b039091168152602001610329565b610308610380366004613a1b565b610806565b61038d610961565b604051908152602001610329565b600160401b61038d565b6103086103b3366004613be7565b610978565b6103086103c6366004613c2f565b610999565b61038d6103d93660046139eb565b60009081526020819052604090206001015490565b6104016103fc366004613c6b565b6109bb565b604080516001600160a01b039093168352602083019190915201610329565b61030861042e366004613c8d565b610a69565b610308610441366004613d49565b610a8a565b61044e610aaf565b6040516103299190613d75565b610308610469366004613d49565b610b5d565b61030861047c366004613dc2565b610bd7565b61030861048f366004613a1b565b610bfa565b6103086104a2366004613c2f565b610c1c565b6103086104b53660046139eb565b610c37565b6103086104c8366004613df4565b610c6e565b61031d6104db3660046139eb565b610c97565b6103086104ee366004613e87565b610ca2565b610308610501366004613a1b565b610cb9565b61035a6105143660046139eb565b610cdb565b610308610527366004613dc2565b610cfb565b61030861053a366004613dc2565b610d0f565b60025461035a906001600160a01b031681565b61033a610d32565b61038d610568366004613dc2565b610dc0565b61030861057b366004613be7565b610dde565b61030861058e366004613ecf565b610de7565b61035a6105a1366004613c6b565b610dfc565b61031d6105b4366004613d49565b610e1b565b6103086105c7366004613e87565b610e44565b61033a610e5b565b6103086105e2366004613be7565b610e65565b6103086105f5366004613a1b565b610e86565b610308610608366004613a1b565b610ee0565b61038d600081565b610308610623366004613f07565b610f02565b610308610636366004613f82565b611053565b610308610649366004613fe6565b6110b3565b61033a61065c3660046139eb565b6110dc565b61038d61066f3660046139eb565b6110e7565b61038d6a4d494e5445525f524f4c4560a81b81565b610308610697366004613d49565b6110fe565b6103086106aa366004613c8d565b611123565b6103086106bd366004614061565b611144565b61033a611182565b61031d6106d83660046140a2565b61118f565b6103086106eb366004613a1b565b6111bf565b6106fd60208201826140cc565b905061070c60408301836140cc565b90501461072c5760405163359a1bc360e01b815260040160405180910390fd5b60005b61073c60408301836140cc565b90508110156107c2576107b06107556020840184613dc2565b61076260208501856140cc565b8481811061077257610772614115565b90506020020160208101906107879190613dc2565b61079460408601866140cc565b858181106107a4576107a4614115565b90506020020135610c1c565b806107ba81614141565b91505061072f565b5050565b60006107d182611427565b92915050565b60606107e1611432565b905090565b6000600160401b8210156107fd576107d1826114c4565b6107d1826114eb565b81333b1580159061088057506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e919061415a565b155b156108a55760405163f6fa4cbd60e01b81523360048201526024015b60405180910390fd5b6001600160a01b0381163b1580159061092957506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610927919061415a565b155b15610952576040516341b8d58160e11b81526001600160a01b038216600482015260240161089c565b61095c8383611576565b505050565b600060135461096e611596565b6107e19190614177565b6a4d494e5445525f524f4c4560a81b610990816115b2565b6107c2826115bc565b600160401b8110156109b05761095c83838361160b565b61095c83838361163b565b60008281526004602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a305750604080518082019091526003546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610a4f906001600160601b03168761418a565b610a5991906141a1565b91519350909150505b9250929050565b6a4d494e5445525f524f4c4560a81b610a81816115b2565b6107c282611660565b600082815260208190526040902060010154610aa5816115b2565b61095c83836116af565b60606000610abc816110e7565b90506000816001600160401b03811115610ad857610ad8613a45565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50905060005b82811015610b5657610b1a600082610dfc565b828281518110610b2c57610b2c614115565b6001600160a01b039092166020928302919091019091015280610b4e81614141565b915050610b07565b5092915050565b6001600160a01b0381163314610bcd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161089c565b6107c282826116d1565b6000610be2816115b2565b6107c26a4d494e5445525f524f4c4560a81b83610a8a565b6a4d494e5445525f524f4c4560a81b610c12816115b2565b61095c83836116f3565b61095c838383604051806020016040528060008152506110b3565b610c42335b8261177a565b610c6257604051630247e3a960e01b81526004810182905260240161089c565b610c6b816117a3565b50565b6a4d494e5445525f524f4c4560a81b610c86816115b2565b610c918484846117f6565b50505050565b60006107d1826118c1565b6000610cad816115b2565b601661095c8382614243565b6a4d494e5445525f524f4c4560a81b610cd1816115b2565b61095c838361191e565b6000600160401b821015610cf2576107d182611928565b6107d182611988565b6000610d06816115b2565b6107c28261199c565b6000610d1a816115b2565b6107c26a4d494e5445525f524f4c4560a81b836110fe565b60168054610d3f906141c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6b906141c3565b8015610db85780601f10610d8d57610100808354040283529160200191610db8565b820191906000526020600020905b815481529060010190602001808311610d9b57829003601f168201915b505050505081565b6000610dcb82611a91565b610dd483611b5c565b6107d19190614177565b610c6b81611be2565b6000610df2816115b2565b61095c8383611c6e565b6000828152600160205260408120610e149083611d28565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610e4f816115b2565b601561095c8382614243565b60606107e1611d34565b6a4d494e5445525f524f4c4560a81b610e7d816115b2565b6107c282611d43565b6000610e9182610cdb565b9050826001600160a01b0316816001600160a01b031614610ed757604051634fefd56160e01b8152600481018390526001600160a01b038216602482015260440161089c565b61095c82610c37565b6a4d494e5445525f524f4c4560a81b610ef8816115b2565b61095c8383611d92565b81333b15801590610f7c57506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a919061415a565b155b15610f9c5760405163f6fa4cbd60e01b815233600482015260240161089c565b6001600160a01b0381163b1580159061102057506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610ffa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101e919061415a565b155b15611049576040516341b8d58160e11b81526001600160a01b038216600482015260240161089c565b61095c8383611e00565b6a4d494e5445525f524f4c4560a81b61106b816115b2565b60005b848110156110ab5761109986868381811061108b5761108b614115565b9050602002013585856117f6565b806110a381614141565b91505061106e565b505050505050565b600160401b8210156110d0576110cb84848484611e0a565b610c91565b610c9184848484611e3d565b60606107d182611e62565b60008181526001602052604081206107d190611ec8565b600082815260208190526040902060010154611119816115b2565b61095c83836116d1565b6a4d494e5445525f524f4c4560a81b61113b816115b2565b6107c282611ed2565b60005b8181101561095c5761117083838381811061116457611164614115565b90506020020135610c37565b8061117a81614141565b915050611147565b60158054610d3f906141c3565b6001600160a01b03808316600090815260126020908152604080832093851683529290529081205460ff16610e14565b6a4d494e5445525f524f4c4560a81b6111d7816115b2565b61095c8383611f21565b6111eb8282610e1b565b6107c2576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556112213390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e14836001600160a01b038416611f2b565b60606107d16001600160a01b03831660145b6060600061129b83600261418a565b6112a6906002614177565b6001600160401b038111156112bd576112bd613a45565b6040519080825280601f01601f1916602001820160405280156112e7576020820181803683370190505b509050600360fc1b8160008151811061130257611302614115565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061133157611331614115565b60200101906001600160f81b031916908160001a905350600061135584600261418a565b611360906001614177565b90505b60018111156113d8576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061139457611394614115565b1a60f81b8282815181106113aa576113aa614115565b60200101906001600160f81b031916908160001a90535060049490941c936113d181614302565b9050611363565b508315610e145760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161089c565b60006107d182611f7a565b6060600d8054611441906141c3565b80601f016020809104026020016040519081016040528092919081815260200182805461146d906141c3565b80156114ba5780601f1061148f576101008083540402835291602001916114ba565b820191906000526020600020905b81548152906001019060200180831161149d57829003601f168201915b5050505050905090565b60006114cf82611fba565b506000908152601160205260409020546001600160a01b031690565b60006114f6826118c1565b61155a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a20617070726f76656420717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161089c565b506000908152600a60205260409020546001600160a01b031690565b600160401b81101561158c576107c2828261200a565b6107c2828261211a565b60006115a0612222565b6115a861228c565b6107e19190614319565b610c6b81336122a0565b60005b81518110156107c25760008282815181106115dc576115dc614115565b602002602001015190506115f8816000015182602001516122f9565b508061160381614141565b9150506115bf565b61161433610c3c565b6116305760405162461bcd60e51b815260040161089c9061432c565b61095c83838361233a565b61164433610c3c565b6116305760405162461bcd60e51b815260040161089c90614379565b60005b81518110156107c257600082828151811061168057611680614115565b6020026020010151905061169c8160000151826020015161191e565b50806116a781614141565b915050611663565b6116b982826111e1565b600082815260016020526040902061095c9082611265565b6116db8282612541565b600082815260016020526040902061095c90826125a6565b600160401b811061171a5760405163b73c99f560e01b81526004810182905260240161089c565b600881901c600090815260146020526040902054600160ff83161b1615611757576040516305dcda1160e51b81526004810182905260240161089c565b61176182826125bb565b6013805490600061177183614141565b91905055505050565b6000600160401b821015611799576117928383612716565b90506107d1565b610e148383612775565b600160401b8110156117ed576117b88161283a565b600881901c60009081526014602052604081208054600160ff85161b17905560138054916117e583614302565b919050555050565b610c6b816128bd565b6127106001600160601b03821611156118215760405162461bcd60e51b815260040161089c906143cd565b6001600160a01b0382166118775760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d65746572730000000000604482015260640161089c565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600490529190942093519051909116600160a01b029116179055565b6000600160401b821015611915576000828152600f60205260409020546001600160a01b0316158015906107d15750600882901c600090815260146020526040902054600160ff84161b1615151592915050565b6107d1826128ff565b6107c28282612934565b6000818152600f60205260408120546001600160a01b0316806107d15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161089c565b6000806119948361294e565b509392505050565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156119e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0b919061415a565b611a2857604051631353be1160e11b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527ff499b54d61d3fcb40299e3299af3ffe9ef1ee6e47194240f3cc5b6e09f7f6796910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b038216611aff5760405162461bcd60e51b815260206004820152602d60248201527f4552433732315073693a2062616c616e636520717565727920666f722074686560448201526c207a65726f206164647265737360981b606482015260840161089c565b6000600160401b5b600954811015610b5657611b1a816118c1565b15611b4c57611b2881610cdb565b6001600160a01b0316846001600160a01b031603611b4c57611b4982614141565b91505b611b5581614141565b9050611b07565b60006001600160a01b038216611bc65760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161089c565b506001600160a01b031660009081526010602052604090205490565b60005b81518110156107c2576000828281518110611c0257611c02614115565b6020026020010151905060005b816020015151811015611c5957611c47826000015183602001518381518110611c3a57611c3a614115565b6020026020010151610e86565b80611c5181614141565b915050611c0f565b50508080611c6690614141565b915050611be5565b6127106001600160601b0382161115611c995760405162461bcd60e51b815260040161089c906143cd565b6001600160a01b038216611cef5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640161089c565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000610e1483836129e5565b6060600e8054611441906141c3565b60005b81518110156107c2576000828281518110611d6357611d63614115565b60200260200101519050611d7f81600001518260200151612a0f565b5080611d8a81614141565b915050611d46565b600160401b8110611db95760405163b73c99f560e01b81526004810182905260240161089c565b600881901c600090815260146020526040902054600160ff83161b1615611df6576040516305dcda1160e51b81526004810182905260240161089c565b6117618282612a50565b6107c28282612a6a565b611e15335b8361177a565b611e315760405162461bcd60e51b815260040161089c9061432c565b610c9184848484612a75565b611e4633611e0f565b611e315760405162461bcd60e51b815260040161089c90614379565b6060611e6d82611fba565b6000611e77612a99565b90506000815111611e975760405180602001604052806000815250610e14565b80611ea184612aa8565b604051602001611eb2929190614417565b6040516020818303038152906040529392505050565b60006107d1825490565b60005b81518110156107c2576000828281518110611ef257611ef2614115565b60200260200101519050611f0e81600001518260200151611f21565b5080611f1981614141565b915050611ed5565b6107c28282612b3a565b6000818152600183016020526040812054611f72575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107d1565b5060006107d1565b60006001600160e01b031982166380ac58cd60e01b1480611fab57506001600160e01b03198216635b5e139f60e01b145b806107d157506107d182612cb3565b611fc3816118c1565b610c6b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161089c565b600061201582611928565b9050806001600160a01b0316836001600160a01b0316036120825760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161089c565b336001600160a01b038216148061209e575061209e813361118f565b6121105760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161089c565b61095c8383612cf3565b600061212582610cdb565b9050806001600160a01b0316836001600160a01b0316036121945760405162461bcd60e51b8152602060048201526024808201527f4552433732315073693a20617070726f76616c20746f2063757272656e74206f6044820152633bb732b960e11b606482015260840161089c565b336001600160a01b03821614806121b057506121b0813361118f565b6121105760405162461bcd60e51b815260206004820152603b60248201527f4552433732315073693a20617070726f76652063616c6c6572206973206e6f7460448201527f206f776e6572206e6f7220617070726f76656420666f7220616c6c0000000000606482015260840161089c565b6009546000906701000000000000009082906122429060081c6001614177565b9050815b81811015612286576000818152600c602052604090205461226681612d13565b6122709086614177565b945050808061227e90614141565b915050612246565b50505090565b6000600160401b6009546107e19190614319565b6122aa8282610e1b565b6107c2576122b78161127a565b6122c283602061128c565b6040516020016122d3929190614446565b60408051601f198184030181529082905262461bcd60e51b825261089c916004016139d8565b60005b815181101561095c576123288383838151811061231b5761231b614115565b6020026020010151611d92565b8061233281614141565b9150506122fc565b82823332148015906123b557506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561238f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b3919061415a565b155b156123d55760405163937db65f60e01b815233600482015260240161089c565b6001600160a01b0382163b1580159061245957506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa158015612433573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612457919061415a565b155b156124825760405163f934453160e01b81526001600160a01b038316600482015260240161089c565b6001600160a01b0381163b1580159061250657506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa1580156124e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612504919061415a565b155b1561252f57604051632a67242160e11b81526001600160a01b038216600482015260240161089c565b61253a858585612d32565b5050505050565b61254b8282610e1b565b156107c2576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e14836001600160a01b038416612d54565b6001600160a01b0382166126115760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161089c565b61261a816118c1565b156126675760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161089c565b612670816118c1565b156126bd5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161089c565b6001600160a01b038216600081815260106020908152604080832080546001019055848352600f90915280822080546001600160a01b031916841790555183929190600080516020614618833981519152908290a45050565b60008061272283611928565b9050806001600160a01b0316846001600160a01b031614806127495750612749818561118f565b8061276d5750836001600160a01b0316612762846107e6565b6001600160a01b0316145b949350505050565b6000612780826118c1565b6127e45760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a206f70657261746f7220717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161089c565b60006127ef83610cdb565b9050806001600160a01b0316846001600160a01b0316148061282a5750836001600160a01b031661281f846107e6565b6001600160a01b0316145b8061276d575061276d818561118f565b600061284582611928565b905061285082611928565b600083815260116020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552601084528285208054600019019055878552600f90935281842080549091169055519293508492600080516020614618833981519152908390a45050565b60006128c882610cdb565b90506128d5600c83612e47565b60405182906000906001600160a01b03841690600080516020614618833981519152908390a45050565b600881901c6000908152600c6020526040812054600160ff1b60ff84161c161561292b57506000919050565b6107d182612e73565b6107c2828260405180602001604052806000815250612e92565b60008061295a836118c1565b6129bb5760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a206f776e657220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161089c565b6129c483612ed3565b6000818152600860205260409020546001600160a01b031694909350915050565b60008260000182815481106129fc576129fc614115565b9060005260206000200154905092915050565b60005b815181101561095c57612a3e83838381518110612a3157612a31614115565b60200260200101516116f3565b80612a4881614141565b915050612a12565b6107c2828260405180602001604052806000815250612ee0565b6107c2338383612eeb565b600160401b821015612a8d576110cb84848484612fb9565b610c9184848484612fec565b606060168054611441906141c3565b60606000612ab583613005565b60010190506000816001600160401b03811115612ad457612ad4613a45565b6040519080825280601f01601f191660200182016040528015612afe576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612b0857509392505050565b6000612b4560095490565b905060008211612ba55760405162461bcd60e51b815260206004820152602560248201527f4552433732315073693a207175616e74697479206d7573742062652067726561604482015264074657220360dc1b606482015260840161089c565b6001600160a01b038316612c075760405162461bcd60e51b815260206004820152602360248201527f4552433732315073693a206d696e7420746f20746865207a65726f206164647260448201526265737360e81b606482015260840161089c565b8160096000828254612c199190614177565b9091555050600081815260086020526040902080546001600160a01b0319166001600160a01b038516179055612c50600582612e47565b600080612c5d8484614177565b90506001600160a01b038516915082826000600080516020614618833981519152600080a4600183015b818114612cad5780836000600080516020614618833981519152600080a4600101612c87565b5061253a565b60006001600160e01b031982166380ac58cd60e01b1480612ce457506001600160e01b03198216635b5e139f60e01b145b806107d157506107d1826130dd565b600160401b811015612d09576107c28282613102565b6107c28282613170565b60005b8115612d2d57600019820190911690600101612d16565b919050565b600160401b811015612d495761095c8383836131a5565b61095c8383836132f7565b60008181526001830160205260408120548015612e3d576000612d78600183614319565b8554909150600090612d8c90600190614319565b9050818114612df1576000866000018281548110612dac57612dac614115565b9060005260206000200154905080876000018481548110612dcf57612dcf614115565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612e0257612e026144bb565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107d1565b60009150506107d1565b600881901c600090815260209290925260409091208054600160ff1b60ff9093169290921c9091179055565b6000612e7e60095490565b821080156107d1575050600160401b111590565b6000612e9d60095490565b9050612ea98484612b3a565b612eb76000858386866134cf565b610c915760405162461bcd60e51b815260040161089c906144d1565b60006107d1600583613606565b61095c8383836136fe565b816001600160a01b0316836001600160a01b031603612f4c5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161089c565b6001600160a01b03838116600081815260126020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612fc484848461233a565b612fd084848484613731565b610c915760405162461bcd60e51b815260040161089c90614526565b612ff784848461233a565b612eb78484846001856134cf565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106130445772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613070576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061308e57662386f26fc10000830492506010015b6305f5e10083106130a6576305f5e100830492506008015b61271083106130ba57612710830492506004015b606483106130cc576064830492506002015b600a83106107d15760010192915050565b60006001600160e01b0319821663152a902d60e11b14806107d157506107d18261382a565b600081815260116020526040902080546001600160a01b0319166001600160a01b038416908117909155819061313782611928565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061313782610cdb565b826001600160a01b03166131b882611928565b6001600160a01b0316146131de5760405162461bcd60e51b815260040161089c90614578565b6001600160a01b0382166132405760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161089c565b826001600160a01b031661325382611928565b6001600160a01b0316146132795760405162461bcd60e51b815260040161089c90614578565b600081815260116020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260108552838620805460001901905590871680865283862080546001019055868652600f909452828520805490921684179091559051849360008051602061461883398151915291a4505050565b6000806133038361294e565b91509150846001600160a01b0316826001600160a01b03161461337d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a207472616e73666572206f6620746f6b656e2074686160448201526b3a1034b9903737ba1037bbb760a11b606482015260840161089c565b6001600160a01b0384166133e35760405162461bcd60e51b815260206004820152602760248201527f4552433732315073693a207472616e7366657220746f20746865207a65726f206044820152666164647265737360c81b606482015260840161089c565b6133ee600084612cf3565b60006133fb846001614177565b600881901c600090815260056020526040902054909150600160ff1b60ff83161c1615801561342b575060095481105b1561346257600081815260086020526040902080546001600160a01b0319166001600160a01b038816179055613462600582612e47565b600084815260086020526040902080546001600160a01b0319166001600160a01b03871617905581841461349b5761349b600585612e47565b83856001600160a01b0316876001600160a01b031660008051602061461883398151915260405160405180910390a46110ab565b60006001600160a01b0385163b156135f957506001835b6134f08486614177565b8110156135f357604051630a85bd0160e11b81526001600160a01b0387169063150b7a02906135299033908b90869089906004016145bd565b6020604051808303816000875af1925050508015613564575060408051601f3d908101601f19168201909252613561918101906145fa565b60015b6135c1573d808015613592576040519150601f19603f3d011682016040523d82523d6000602084013e613597565b606091505b5080516000036135b95760405162461bcd60e51b815260040161089c906144d1565b805181602001fd5b8280156135de57506001600160e01b03198116630a85bd0160e11b145b925050806135eb81614141565b9150506134e6565b506135fd565b5060015b95945050505050565b600881901c60008181526020849052604081205490919060ff808516919082181c80156136485761363681613835565b60ff168203600884901b1793506136f5565b600083116136b55760405162461bcd60e51b815260206004820152603460248201527f4269744d6170733a205468652073657420626974206265666f7265207468652060448201527334b73232bc103237b2b9b713ba1032bc34b9ba1760611b606482015260840161089c565b5060001990910160008181526020869052604090205490919080156136f0576136dd81613835565b60ff0360ff16600884901b1793506136f5565b613648565b50505092915050565b613708838361389f565b6137156000848484613731565b61095c5760405162461bcd60e51b815260040161089c90614526565b60006001600160a01b0384163b1561381f57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906137759033908990889088906004016145bd565b6020604051808303816000875af19250505080156137b0575060408051601f3d908101601f191682019092526137ad918101906145fa565b60015b613805573d8080156137de576040519150601f19603f3d011682016040523d82523d6000602084013e6137e3565b606091505b5080516000036135b95760405162461bcd60e51b815260040161089c90614526565b6001600160e01b031916630a85bd0160e11b14905061276d565b506001949350505050565b60006107d1826138a9565b60006040518061012001604052806101008152602001614638610100913960f87e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff61387e856138ce565b02901c8151811061389157613891614115565b016020015160f81c92915050565b6107c282826125bb565b60006001600160e01b03198216635a05180f60e01b14806107d157506107d1826138e6565b60008082116138dc57600080fd5b5060008190031690565b60006001600160e01b03198216637965db0b60e01b14806107d157506301ffc9a760e01b6001600160e01b03198316146107d1565b60006020828403121561392d57600080fd5b81356001600160401b0381111561394357600080fd5b820160608185031215610e1457600080fd5b6001600160e01b031981168114610c6b57600080fd5b60006020828403121561397d57600080fd5b8135610e1481613955565b60005b838110156139a357818101518382015260200161398b565b50506000910152565b600081518084526139c4816020860160208601613988565b601f01601f19169290920160200192915050565b602081526000610e1460208301846139ac565b6000602082840312156139fd57600080fd5b5035919050565b80356001600160a01b0381168114612d2d57600080fd5b60008060408385031215613a2e57600080fd5b613a3783613a04565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613a7d57613a7d613a45565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613aab57613aab613a45565b604052919050565b60006001600160401b03821115613acc57613acc613a45565b5060051b60200190565b6000613ae9613ae484613ab3565b613a83565b8381529050602080820190600585811b850187811115613b0857600080fd5b855b81811015613bdb5780356001600160401b0380821115613b2a5760008081fd5b908801906040828c031215613b3f5760008081fd5b613b47613a5b565b613b5083613a04565b81528683013582811115613b645760008081fd5b8084019350508b601f840112613b7c57600091508182fd5b82359150613b8c613ae483613ab3565b82815291861b8301870191878101908d841115613ba95760008081fd5b938801935b83851015613bc757843582529388019390880190613bae565b828901525087525050938301938301613b0a565b50505050509392505050565b600060208284031215613bf957600080fd5b81356001600160401b03811115613c0f57600080fd5b8201601f81018413613c2057600080fd5b61276d84823560208401613ad6565b600080600060608486031215613c4457600080fd5b613c4d84613a04565b9250613c5b60208501613a04565b9150604084013590509250925092565b60008060408385031215613c7e57600080fd5b50508035926020909101359150565b60006020808385031215613ca057600080fd5b82356001600160401b03811115613cb657600080fd5b8301601f81018513613cc757600080fd5b8035613cd5613ae482613ab3565b81815260069190911b82018301908381019087831115613cf457600080fd5b928401925b82841015613d3e5760408489031215613d125760008081fd5b613d1a613a5b565b613d2385613a04565b81528486013586820152825260409093019290840190613cf9565b979650505050505050565b60008060408385031215613d5c57600080fd5b82359150613d6c60208401613a04565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015613db65783516001600160a01b031683529284019291840191600101613d91565b50909695505050505050565b600060208284031215613dd457600080fd5b610e1482613a04565b80356001600160601b0381168114612d2d57600080fd5b600080600060608486031215613e0957600080fd5b83359250613e1960208501613a04565b9150613e2760408501613ddd565b90509250925092565b60006001600160401b03831115613e4957613e49613a45565b613e5c601f8401601f1916602001613a83565b9050828152838383011115613e7057600080fd5b828260208301376000602084830101529392505050565b600060208284031215613e9957600080fd5b81356001600160401b03811115613eaf57600080fd5b8201601f81018413613ec057600080fd5b61276d84823560208401613e30565b60008060408385031215613ee257600080fd5b613eeb83613a04565b9150613d6c60208401613ddd565b8015158114610c6b57600080fd5b60008060408385031215613f1a57600080fd5b613f2383613a04565b91506020830135613f3381613ef9565b809150509250929050565b60008083601f840112613f5057600080fd5b5081356001600160401b03811115613f6757600080fd5b6020830191508360208260051b8501011115610a6257600080fd5b60008060008060608587031215613f9857600080fd5b84356001600160401b03811115613fae57600080fd5b613fba87828801613f3e565b9095509350613fcd905060208601613a04565b9150613fdb60408601613ddd565b905092959194509250565b60008060008060808587031215613ffc57600080fd5b61400585613a04565b935061401360208601613a04565b92506040850135915060608501356001600160401b0381111561403557600080fd5b8501601f8101871361404657600080fd5b61405587823560208401613e30565b91505092959194509250565b6000806020838503121561407457600080fd5b82356001600160401b0381111561408a57600080fd5b61409685828601613f3e565b90969095509350505050565b600080604083850312156140b557600080fd5b6140be83613a04565b9150613d6c60208401613a04565b6000808335601e198436030181126140e357600080fd5b8301803591506001600160401b038211156140fd57600080fd5b6020019150600581901b3603821315610a6257600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016141535761415361412b565b5060010190565b60006020828403121561416c57600080fd5b8151610e1481613ef9565b808201808211156107d1576107d161412b565b80820281158282048414176107d1576107d161412b565b6000826141be57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806141d757607f821691505b6020821081036141f757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561095c57600081815260208120601f850160051c810160208610156142245750805b601f850160051c820191505b818110156110ab57828155600101614230565b81516001600160401b0381111561425c5761425c613a45565b6142708161426a84546141c3565b846141fd565b602080601f8311600181146142a5576000841561428d5750858301515b600019600386901b1c1916600185901b1785556110ab565b600085815260208120601f198616915b828110156142d4578886015182559484019460019091019084016142b5565b50858210156142f25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000816143115761431161412b565b506000190190565b818103818111156107d1576107d161412b565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526034908201527f4552433732315073693a207472616e736665722063616c6c6572206973206e6f6040820152731d081bdddb995c881b9bdc88185c1c1c9bdd995960621b606082015260800190565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60008351614429818460208801613988565b83519083019061443d818360208801613988565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161447e816017850160208801613988565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516144af816028840160208801613988565b01602801949350505050565b634e487b7160e01b600052603160045260246000fd5b60208082526035908201527f4552433732315073693a207472616e7366657220746f206e6f6e20455243373260408201527418a932b1b2b4bb32b91034b6b83632b6b2b73a32b960591b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906145f0908301846139ac565b9695505050505050565b60006020828403121561460c57600080fd5b8151610e148161395556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0001020903110a19042112290b311a3905412245134d2a550c5d32651b6d3a7506264262237d468514804e8d2b95569d0d495ea533a966b11c886eb93bc176c9071727374353637324837e9b47af86c7155181ad4fd18ed32c9096db57d59ee30e2e4a6a5f92a6be3498aae067ddb2eb1d5989b56fd7baf33ca0c2ee77e5caf7ff0810182028303840444c545c646c7425617c847f8c949c48a4a8b087b8c0c816365272829aaec650acd0d28fdad4e22d6991bd97dfdcea58b4d6f29fede4f6fe0f1f2f3f4b5b6b607b8b93a3a7b7bf357199c5abcfd9e168bcdee9b3f1ecf5fd1e3e5a7a8aa2b670c4ced8bbe8f0f4fc3d79a1c3cde7effb78cce6facbf9f8a2646970667358221220f8fc88cc156435797aa3d9dc642f5ee1307c4e518ce35c0cb8a9c26fb3f4f44064736f6c63430008110033";
|
|
31542
|
+
const _bytecode$2 = "0x608060405260006013553480156200001657600080fd5b50604051620052f1380380620052f18339810160408190526200003991620007cd565b8787878787878787868681818181600662000055838262000960565b50600762000064828262000960565b50506801000000000000000060095550600d62000082838262000960565b50600e62000091828262000960565b50620000a69350600092508b915050620000f1565b620000b2828262000134565b620000bd8362000239565b6016620000cb868262000960565b506015620000da858262000960565b505050505050505050505050505050505062000b74565b6200010882826200025560201b620011e11760201c565b60008281526001602090815260409091206200012f91839062001265620002f5821b17901c565b505050565b6127106001600160601b0382161115620001a85760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002005760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016200019f565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000620002468162000315565b620002518262000324565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000251576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002b13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006200030c836001600160a01b0384166200041d565b90505b92915050565b6200032181336200046f565b50565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801562000370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000396919062000a2c565b620003b45760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b600081815260018301602052604081205462000466575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200030f565b5060006200030f565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200025157620004ae81620004ff60201b6200127a1760201c565b620004c48360206200128c62000512821b17811c565b604051602001620004d792919062000a50565b60408051601f198184030181529082905262461bcd60e51b82526200019f9160040162000ac9565b60606200030f6001600160a01b03831660145b606060006200052383600262000b14565b6200053090600262000b2e565b6001600160401b038111156200054a576200054a620006e8565b6040519080825280601f01601f19166020018201604052801562000575576020820181803683370190505b509050600360fc1b8160008151811062000593576200059362000b44565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620005c557620005c562000b44565b60200101906001600160f81b031916908160001a9053506000620005eb84600262000b14565b620005f890600162000b2e565b90505b60018111156200067a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062000630576200063062000b44565b1a60f81b82828151811062000649576200064962000b44565b60200101906001600160f81b031916908160001a90535060049490941c93620006728162000b5a565b9050620005fb565b5083156200030c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016200019f565b80516001600160a01b0381168114620006e357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200071b57818101518382015260200162000701565b50506000910152565b600082601f8301126200073657600080fd5b81516001600160401b0380821115620007535762000753620006e8565b604051601f8301601f19908116603f011681019082821181831017156200077e576200077e620006e8565b816040528381528660208588010111156200079857600080fd5b620007ab846020830160208901620006fe565b9695505050505050565b80516001600160601b0381168114620006e357600080fd5b600080600080600080600080610100898b031215620007eb57600080fd5b620007f689620006cb565b60208a01519098506001600160401b03808211156200081457600080fd5b620008228c838d0162000724565b985060408b01519150808211156200083957600080fd5b620008478c838d0162000724565b975060608b01519150808211156200085e57600080fd5b6200086c8c838d0162000724565b965060808b01519150808211156200088357600080fd5b50620008928b828c0162000724565b945050620008a360a08a01620006cb565b9250620008b360c08a01620006cb565b9150620008c360e08a01620007b5565b90509295985092959890939650565b600181811c90821680620008e757607f821691505b6020821081036200090857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012f57600081815260208120601f850160051c81016020861015620009375750805b601f850160051c820191505b81811015620009585782815560010162000943565b505050505050565b81516001600160401b038111156200097c576200097c620006e8565b62000994816200098d8454620008d2565b846200090e565b602080601f831160018114620009cc5760008415620009b35750858301515b600019600386901b1c1916600185901b17855562000958565b600085815260208120601f198616915b82811015620009fd57888601518255948401946001909101908401620009dc565b508582101562000a1c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a3f57600080fd5b815180151581146200030c57600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162000a8a816017850160208801620006fe565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162000abd816028840160208801620006fe565b01602801949350505050565b602081526000825180602084015262000aea816040850160208701620006fe565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200030f576200030f62000afe565b808201808211156200030f576200030f62000afe565b634e487b7160e01b600052603260045260246000fd5b60008162000b6c5762000b6c62000afe565b506000190190565b61476d8062000b846000396000f3fe608060405234801561001057600080fd5b50600436106102f05760003560e01c806369e2f0fb1161019d578063a22cb465116100e9578063d547741f116100a2578063e4e18f6d1161007c578063e4e18f6d146106af578063e8a3d485146106c2578063e985e9c5146106ca578063eea98768146106dd57600080fd5b8063d547741f14610676578063e192785914610689578063e4623c1b1461069c57600080fd5b8063a22cb46514610602578063a701281614610615578063b88d4fde14610628578063c87b56dd1461063b578063ca15c8731461064e578063d53913931461066157600080fd5b806391d14854116101565780639e2641a3116101305780639e2641a3146105c15780639f15d700146105d4578063a1448194146105e7578063a217fddf146105fa57600080fd5b806391d1485414610593578063938e3d7b146105a657806395d89b41146105b957600080fd5b806369e2f0fb1461052c5780636c0360eb1461053f57806370a082311461054757806374f16a811461055a578063885e7a081461056d5780639010d07c1461058057600080fd5b80632d2c5a8b1161025c57806342842e0e116102155780634f558e79116101ef5780634f558e79146104e057806355f804b3146104f3578063567e4075146105065780636352211e1461051957600080fd5b806342842e0e146104a757806342966c68146104ba578063439aed34146104cd57600080fd5b80632d2c5a8b146104335780632f2ff15d1461044657806331ae450b1461045957806336568abe1461046e5780633dd1eb611461048157806340c10f191461049457600080fd5b80631f8ebbd1116102ae5780631f8ebbd11461039b578063234af046146103a557806323b872dd146103b8578063248a9ca3146103cb57806329326f29146103ee5780632a55205a1461040157600080fd5b80628ad946146102f557806301ffc9a71461030a57806306fdde0314610332578063081812fc14610347578063095ea7b31461037257806318160ddd14610385575b600080fd5b61030861030336600461391b565b6106f0565b005b61031d61031836600461396b565b6107c6565b60405190151581526020015b60405180910390f35b61033a6107d7565b60405161032991906139d8565b61035a6103553660046139eb565b6107e6565b6040516001600160a01b039091168152602001610329565b610308610380366004613a1b565b610806565b61038d610961565b604051908152602001610329565b600160401b61038d565b6103086103b3366004613be7565b610978565b6103086103c6366004613c2f565b610999565b61038d6103d93660046139eb565b60009081526020819052604090206001015490565b60025461035a906001600160a01b031681565b61041461040f366004613c6b565b6109bb565b604080516001600160a01b039093168352602083019190915201610329565b610308610441366004613c8d565b610a69565b610308610454366004613d49565b610a8a565b610461610aaf565b6040516103299190613d75565b61030861047c366004613d49565b610b5d565b61030861048f366004613dc2565b610bd7565b6103086104a2366004613a1b565b610bfa565b6103086104b5366004613c2f565b610c1c565b6103086104c83660046139eb565b610c37565b6103086104db366004613df4565b610c6e565b61031d6104ee3660046139eb565b610c97565b610308610501366004613e87565b610ca2565b610308610514366004613a1b565b610cb9565b61035a6105273660046139eb565b610cdb565b61030861053a366004613dc2565b610cfb565b61033a610d1e565b61038d610555366004613dc2565b610dac565b610308610568366004613be7565b610dca565b61030861057b366004613ecf565b610dd3565b61035a61058e366004613c6b565b610de8565b61031d6105a1366004613d49565b610e07565b6103086105b4366004613e87565b610e30565b61033a610e47565b6103086105cf366004613be7565b610e51565b6103086105e2366004613a1b565b610e72565b6103086105f5366004613a1b565b610ecc565b61038d600081565b610308610610366004613f07565b610eee565b610308610623366004613f82565b61103f565b610308610636366004613fe6565b61109f565b61033a6106493660046139eb565b6110c8565b61038d61065c3660046139eb565b6110d3565b61038d6a4d494e5445525f524f4c4560a81b81565b610308610684366004613d49565b6110ea565b610308610697366004613c8d565b61110f565b6103086106aa366004614061565b611130565b6103086106bd366004613dc2565b61116e565b61033a611182565b61031d6106d83660046140a2565b61118f565b6103086106eb366004613a1b565b6111bf565b6106fd60208201826140cc565b905061070c60408301836140cc565b90501461072c5760405163359a1bc360e01b815260040160405180910390fd5b60005b61073c60408301836140cc565b90508110156107c2576107b06107556020840184613dc2565b61076260208501856140cc565b8481811061077257610772614115565b90506020020160208101906107879190613dc2565b61079460408601866140cc565b858181106107a4576107a4614115565b90506020020135610c1c565b806107ba81614141565b91505061072f565b5050565b60006107d182611427565b92915050565b60606107e1611432565b905090565b6000600160401b8210156107fd576107d1826114c4565b6107d1826114eb565b81333b1580159061088057506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e919061415a565b155b156108a55760405163f6fa4cbd60e01b81523360048201526024015b60405180910390fd5b6001600160a01b0381163b1580159061092957506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610927919061415a565b155b15610952576040516341b8d58160e11b81526001600160a01b038216600482015260240161089c565b61095c8383611576565b505050565b600060135461096e611596565b6107e19190614177565b6a4d494e5445525f524f4c4560a81b610990816115b2565b6107c2826115bc565b600160401b8110156109b05761095c83838361160b565b61095c83838361163b565b60008281526004602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a305750604080518082019091526003546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610a4f906001600160601b03168761418a565b610a5991906141a1565b91519350909150505b9250929050565b6a4d494e5445525f524f4c4560a81b610a81816115b2565b6107c282611660565b600082815260208190526040902060010154610aa5816115b2565b61095c83836116af565b60606000610abc816110d3565b90506000816001600160401b03811115610ad857610ad8613a45565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50905060005b82811015610b5657610b1a600082610de8565b828281518110610b2c57610b2c614115565b6001600160a01b039092166020928302919091019091015280610b4e81614141565b915050610b07565b5092915050565b6001600160a01b0381163314610bcd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161089c565b6107c282826116d1565b6000610be2816115b2565b6107c26a4d494e5445525f524f4c4560a81b83610a8a565b6a4d494e5445525f524f4c4560a81b610c12816115b2565b61095c83836116f3565b61095c8383836040518060200160405280600081525061109f565b610c42335b8261177a565b610c6257604051630247e3a960e01b81526004810182905260240161089c565b610c6b816117a3565b50565b6a4d494e5445525f524f4c4560a81b610c86816115b2565b610c918484846117f6565b50505050565b60006107d1826118c1565b6000610cad816115b2565b601661095c8382614243565b6a4d494e5445525f524f4c4560a81b610cd1816115b2565b61095c838361191e565b6000600160401b821015610cf2576107d182611928565b6107d182611988565b6000610d06816115b2565b6107c26a4d494e5445525f524f4c4560a81b836110ea565b60168054610d2b906141c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610d57906141c3565b8015610da45780601f10610d7957610100808354040283529160200191610da4565b820191906000526020600020905b815481529060010190602001808311610d8757829003601f168201915b505050505081565b6000610db78261199c565b610dc083611a67565b6107d19190614177565b610c6b81611aed565b6000610dde816115b2565b61095c8383611b79565b6000828152600160205260408120610e009083611c33565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610e3b816115b2565b601561095c8382614243565b60606107e1611c3f565b6a4d494e5445525f524f4c4560a81b610e69816115b2565b6107c282611c4e565b6000610e7d82610cdb565b9050826001600160a01b0316816001600160a01b031614610ec357604051634fefd56160e01b8152600481018390526001600160a01b038216602482015260440161089c565b61095c82610c37565b6a4d494e5445525f524f4c4560a81b610ee4816115b2565b61095c8383611c9d565b81333b15801590610f6857506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610f42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f66919061415a565b155b15610f885760405163f6fa4cbd60e01b815233600482015260240161089c565b6001600160a01b0381163b1580159061100c57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100a919061415a565b155b15611035576040516341b8d58160e11b81526001600160a01b038216600482015260240161089c565b61095c8383611d0b565b6a4d494e5445525f524f4c4560a81b611057816115b2565b60005b848110156110975761108586868381811061107757611077614115565b9050602002013585856117f6565b8061108f81614141565b91505061105a565b505050505050565b600160401b8210156110bc576110b784848484611d15565b610c91565b610c9184848484611d48565b60606107d182611d6d565b60008181526001602052604081206107d190611dd3565b600082815260208190526040902060010154611105816115b2565b61095c83836116d1565b6a4d494e5445525f524f4c4560a81b611127816115b2565b6107c282611ddd565b60005b8181101561095c5761115c83838381811061115057611150614115565b90506020020135610c37565b8061116681614141565b915050611133565b6000611179816115b2565b6107c282611e2c565b60158054610d2b906141c3565b6001600160a01b03808316600090815260126020908152604080832093851683529290529081205460ff16610e00565b6a4d494e5445525f524f4c4560a81b6111d7816115b2565b61095c8383611f21565b6111eb8282610e07565b6107c2576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556112213390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e00836001600160a01b038416611f2b565b60606107d16001600160a01b03831660145b6060600061129b83600261418a565b6112a6906002614177565b6001600160401b038111156112bd576112bd613a45565b6040519080825280601f01601f1916602001820160405280156112e7576020820181803683370190505b509050600360fc1b8160008151811061130257611302614115565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061133157611331614115565b60200101906001600160f81b031916908160001a905350600061135584600261418a565b611360906001614177565b90505b60018111156113d8576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061139457611394614115565b1a60f81b8282815181106113aa576113aa614115565b60200101906001600160f81b031916908160001a90535060049490941c936113d181614302565b9050611363565b508315610e005760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161089c565b60006107d182611f7a565b6060600d8054611441906141c3565b80601f016020809104026020016040519081016040528092919081815260200182805461146d906141c3565b80156114ba5780601f1061148f576101008083540402835291602001916114ba565b820191906000526020600020905b81548152906001019060200180831161149d57829003601f168201915b5050505050905090565b60006114cf82611fba565b506000908152601160205260409020546001600160a01b031690565b60006114f6826118c1565b61155a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a20617070726f76656420717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161089c565b506000908152600a60205260409020546001600160a01b031690565b600160401b81101561158c576107c2828261200a565b6107c2828261211a565b60006115a0612222565b6115a861228c565b6107e19190614319565b610c6b81336122a0565b60005b81518110156107c25760008282815181106115dc576115dc614115565b602002602001015190506115f8816000015182602001516122f9565b508061160381614141565b9150506115bf565b61161433610c3c565b6116305760405162461bcd60e51b815260040161089c9061432c565b61095c83838361233a565b61164433610c3c565b6116305760405162461bcd60e51b815260040161089c90614379565b60005b81518110156107c257600082828151811061168057611680614115565b6020026020010151905061169c8160000151826020015161191e565b50806116a781614141565b915050611663565b6116b982826111e1565b600082815260016020526040902061095c9082611265565b6116db8282612541565b600082815260016020526040902061095c90826125a6565b600160401b811061171a5760405163b73c99f560e01b81526004810182905260240161089c565b600881901c600090815260146020526040902054600160ff83161b1615611757576040516305dcda1160e51b81526004810182905260240161089c565b61176182826125bb565b6013805490600061177183614141565b91905055505050565b6000600160401b821015611799576117928383612716565b90506107d1565b610e008383612775565b600160401b8110156117ed576117b88161283a565b600881901c60009081526014602052604081208054600160ff85161b17905560138054916117e583614302565b919050555050565b610c6b816128bd565b6127106001600160601b03821611156118215760405162461bcd60e51b815260040161089c906143cd565b6001600160a01b0382166118775760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d65746572730000000000604482015260640161089c565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600490529190942093519051909116600160a01b029116179055565b6000600160401b821015611915576000828152600f60205260409020546001600160a01b0316158015906107d15750600882901c600090815260146020526040902054600160ff84161b1615151592915050565b6107d1826128ff565b6107c28282612934565b6000818152600f60205260408120546001600160a01b0316806107d15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161089c565b6000806119948361294e565b509392505050565b60006001600160a01b038216611a0a5760405162461bcd60e51b815260206004820152602d60248201527f4552433732315073693a2062616c616e636520717565727920666f722074686560448201526c207a65726f206164647265737360981b606482015260840161089c565b6000600160401b5b600954811015610b5657611a25816118c1565b15611a5757611a3381610cdb565b6001600160a01b0316846001600160a01b031603611a5757611a5482614141565b91505b611a6081614141565b9050611a12565b60006001600160a01b038216611ad15760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161089c565b506001600160a01b031660009081526010602052604090205490565b60005b81518110156107c2576000828281518110611b0d57611b0d614115565b6020026020010151905060005b816020015151811015611b6457611b52826000015183602001518381518110611b4557611b45614115565b6020026020010151610e72565b80611b5c81614141565b915050611b1a565b50508080611b7190614141565b915050611af0565b6127106001600160601b0382161115611ba45760405162461bcd60e51b815260040161089c906143cd565b6001600160a01b038216611bfa5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640161089c565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600355565b6000610e0083836129e5565b6060600e8054611441906141c3565b60005b81518110156107c2576000828281518110611c6e57611c6e614115565b60200260200101519050611c8a81600001518260200151612a0f565b5080611c9581614141565b915050611c51565b600160401b8110611cc45760405163b73c99f560e01b81526004810182905260240161089c565b600881901c600090815260146020526040902054600160ff83161b1615611d01576040516305dcda1160e51b81526004810182905260240161089c565b6117618282612a50565b6107c28282612a6a565b611d20335b8361177a565b611d3c5760405162461bcd60e51b815260040161089c9061432c565b610c9184848484612a75565b611d5133611d1a565b611d3c5760405162461bcd60e51b815260040161089c90614379565b6060611d7882611fba565b6000611d82612a99565b90506000815111611da25760405180602001604052806000815250610e00565b80611dac84612aa8565b604051602001611dbd929190614417565b6040516020818303038152906040529392505050565b60006107d1825490565b60005b81518110156107c2576000828281518110611dfd57611dfd614115565b60200260200101519050611e1981600001518260200151611f21565b5080611e2481614141565b915050611de0565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015611e77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9b919061415a565b611eb85760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b6107c28282612b3a565b6000818152600183016020526040812054611f72575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107d1565b5060006107d1565b60006001600160e01b031982166380ac58cd60e01b1480611fab57506001600160e01b03198216635b5e139f60e01b145b806107d157506107d182612cb3565b611fc3816118c1565b610c6b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161089c565b600061201582611928565b9050806001600160a01b0316836001600160a01b0316036120825760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161089c565b336001600160a01b038216148061209e575061209e813361118f565b6121105760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161089c565b61095c8383612cf3565b600061212582610cdb565b9050806001600160a01b0316836001600160a01b0316036121945760405162461bcd60e51b8152602060048201526024808201527f4552433732315073693a20617070726f76616c20746f2063757272656e74206f6044820152633bb732b960e11b606482015260840161089c565b336001600160a01b03821614806121b057506121b0813361118f565b6121105760405162461bcd60e51b815260206004820152603b60248201527f4552433732315073693a20617070726f76652063616c6c6572206973206e6f7460448201527f206f776e6572206e6f7220617070726f76656420666f7220616c6c0000000000606482015260840161089c565b6009546000906701000000000000009082906122429060081c6001614177565b9050815b81811015612286576000818152600c602052604090205461226681612d13565b6122709086614177565b945050808061227e90614141565b915050612246565b50505090565b6000600160401b6009546107e19190614319565b6122aa8282610e07565b6107c2576122b78161127a565b6122c283602061128c565b6040516020016122d3929190614446565b60408051601f198184030181529082905262461bcd60e51b825261089c916004016139d8565b60005b815181101561095c576123288383838151811061231b5761231b614115565b6020026020010151611c9d565b8061233281614141565b9150506122fc565b82823332148015906123b557506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa15801561238f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b3919061415a565b155b156123d55760405163937db65f60e01b815233600482015260240161089c565b6001600160a01b0382163b1580159061245957506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa158015612433573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612457919061415a565b155b156124825760405163f934453160e01b81526001600160a01b038316600482015260240161089c565b6001600160a01b0381163b1580159061250657506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa1580156124e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612504919061415a565b155b1561252f57604051632a67242160e11b81526001600160a01b038216600482015260240161089c565b61253a858585612d32565b5050505050565b61254b8282610e07565b156107c2576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e00836001600160a01b038416612d54565b6001600160a01b0382166126115760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161089c565b61261a816118c1565b156126675760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161089c565b612670816118c1565b156126bd5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161089c565b6001600160a01b038216600081815260106020908152604080832080546001019055848352600f90915280822080546001600160a01b031916841790555183929190600080516020614618833981519152908290a45050565b60008061272283611928565b9050806001600160a01b0316846001600160a01b031614806127495750612749818561118f565b8061276d5750836001600160a01b0316612762846107e6565b6001600160a01b0316145b949350505050565b6000612780826118c1565b6127e45760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a206f70657261746f7220717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161089c565b60006127ef83610cdb565b9050806001600160a01b0316846001600160a01b0316148061282a5750836001600160a01b031661281f846107e6565b6001600160a01b0316145b8061276d575061276d818561118f565b600061284582611928565b905061285082611928565b600083815260116020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552601084528285208054600019019055878552600f90935281842080549091169055519293508492600080516020614618833981519152908390a45050565b60006128c882610cdb565b90506128d5600c83612e47565b60405182906000906001600160a01b03841690600080516020614618833981519152908390a45050565b600881901c6000908152600c6020526040812054600160ff1b60ff84161c161561292b57506000919050565b6107d182612e73565b6107c2828260405180602001604052806000815250612e92565b60008061295a836118c1565b6129bb5760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a206f776e657220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161089c565b6129c483612ed3565b6000818152600860205260409020546001600160a01b031694909350915050565b60008260000182815481106129fc576129fc614115565b9060005260206000200154905092915050565b60005b815181101561095c57612a3e83838381518110612a3157612a31614115565b60200260200101516116f3565b80612a4881614141565b915050612a12565b6107c2828260405180602001604052806000815250612ee0565b6107c2338383612eeb565b600160401b821015612a8d576110b784848484612fb9565b610c9184848484612fec565b606060168054611441906141c3565b60606000612ab583613005565b60010190506000816001600160401b03811115612ad457612ad4613a45565b6040519080825280601f01601f191660200182016040528015612afe576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612b0857509392505050565b6000612b4560095490565b905060008211612ba55760405162461bcd60e51b815260206004820152602560248201527f4552433732315073693a207175616e74697479206d7573742062652067726561604482015264074657220360dc1b606482015260840161089c565b6001600160a01b038316612c075760405162461bcd60e51b815260206004820152602360248201527f4552433732315073693a206d696e7420746f20746865207a65726f206164647260448201526265737360e81b606482015260840161089c565b8160096000828254612c199190614177565b9091555050600081815260086020526040902080546001600160a01b0319166001600160a01b038516179055612c50600582612e47565b600080612c5d8484614177565b90506001600160a01b038516915082826000600080516020614618833981519152600080a4600183015b818114612cad5780836000600080516020614618833981519152600080a4600101612c87565b5061253a565b60006001600160e01b031982166380ac58cd60e01b1480612ce457506001600160e01b03198216635b5e139f60e01b145b806107d157506107d1826130dd565b600160401b811015612d09576107c28282613102565b6107c28282613170565b60005b8115612d2d57600019820190911690600101612d16565b919050565b600160401b811015612d495761095c8383836131a5565b61095c8383836132f7565b60008181526001830160205260408120548015612e3d576000612d78600183614319565b8554909150600090612d8c90600190614319565b9050818114612df1576000866000018281548110612dac57612dac614115565b9060005260206000200154905080876000018481548110612dcf57612dcf614115565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612e0257612e026144bb565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107d1565b60009150506107d1565b600881901c600090815260209290925260409091208054600160ff1b60ff9093169290921c9091179055565b6000612e7e60095490565b821080156107d1575050600160401b111590565b6000612e9d60095490565b9050612ea98484612b3a565b612eb76000858386866134cf565b610c915760405162461bcd60e51b815260040161089c906144d1565b60006107d1600583613606565b61095c8383836136fe565b816001600160a01b0316836001600160a01b031603612f4c5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161089c565b6001600160a01b03838116600081815260126020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612fc484848461233a565b612fd084848484613731565b610c915760405162461bcd60e51b815260040161089c90614526565b612ff784848461233a565b612eb78484846001856134cf565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106130445772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613070576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061308e57662386f26fc10000830492506010015b6305f5e10083106130a6576305f5e100830492506008015b61271083106130ba57612710830492506004015b606483106130cc576064830492506002015b600a83106107d15760010192915050565b60006001600160e01b0319821663152a902d60e11b14806107d157506107d18261382a565b600081815260116020526040902080546001600160a01b0319166001600160a01b038416908117909155819061313782611928565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061313782610cdb565b826001600160a01b03166131b882611928565b6001600160a01b0316146131de5760405162461bcd60e51b815260040161089c90614578565b6001600160a01b0382166132405760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161089c565b826001600160a01b031661325382611928565b6001600160a01b0316146132795760405162461bcd60e51b815260040161089c90614578565b600081815260116020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260108552838620805460001901905590871680865283862080546001019055868652600f909452828520805490921684179091559051849360008051602061461883398151915291a4505050565b6000806133038361294e565b91509150846001600160a01b0316826001600160a01b03161461337d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a207472616e73666572206f6620746f6b656e2074686160448201526b3a1034b9903737ba1037bbb760a11b606482015260840161089c565b6001600160a01b0384166133e35760405162461bcd60e51b815260206004820152602760248201527f4552433732315073693a207472616e7366657220746f20746865207a65726f206044820152666164647265737360c81b606482015260840161089c565b6133ee600084612cf3565b60006133fb846001614177565b600881901c600090815260056020526040902054909150600160ff1b60ff83161c1615801561342b575060095481105b1561346257600081815260086020526040902080546001600160a01b0319166001600160a01b038816179055613462600582612e47565b600084815260086020526040902080546001600160a01b0319166001600160a01b03871617905581841461349b5761349b600585612e47565b83856001600160a01b0316876001600160a01b031660008051602061461883398151915260405160405180910390a4611097565b60006001600160a01b0385163b156135f957506001835b6134f08486614177565b8110156135f357604051630a85bd0160e11b81526001600160a01b0387169063150b7a02906135299033908b90869089906004016145bd565b6020604051808303816000875af1925050508015613564575060408051601f3d908101601f19168201909252613561918101906145fa565b60015b6135c1573d808015613592576040519150601f19603f3d011682016040523d82523d6000602084013e613597565b606091505b5080516000036135b95760405162461bcd60e51b815260040161089c906144d1565b805181602001fd5b8280156135de57506001600160e01b03198116630a85bd0160e11b145b925050806135eb81614141565b9150506134e6565b506135fd565b5060015b95945050505050565b600881901c60008181526020849052604081205490919060ff808516919082181c80156136485761363681613835565b60ff168203600884901b1793506136f5565b600083116136b55760405162461bcd60e51b815260206004820152603460248201527f4269744d6170733a205468652073657420626974206265666f7265207468652060448201527334b73232bc103237b2b9b713ba1032bc34b9ba1760611b606482015260840161089c565b5060001990910160008181526020869052604090205490919080156136f0576136dd81613835565b60ff0360ff16600884901b1793506136f5565b613648565b50505092915050565b613708838361389f565b6137156000848484613731565b61095c5760405162461bcd60e51b815260040161089c90614526565b60006001600160a01b0384163b1561381f57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906137759033908990889088906004016145bd565b6020604051808303816000875af19250505080156137b0575060408051601f3d908101601f191682019092526137ad918101906145fa565b60015b613805573d8080156137de576040519150601f19603f3d011682016040523d82523d6000602084013e6137e3565b606091505b5080516000036135b95760405162461bcd60e51b815260040161089c90614526565b6001600160e01b031916630a85bd0160e11b14905061276d565b506001949350505050565b60006107d1826138a9565b60006040518061012001604052806101008152602001614638610100913960f87e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff61387e856138ce565b02901c8151811061389157613891614115565b016020015160f81c92915050565b6107c282826125bb565b60006001600160e01b03198216635a05180f60e01b14806107d157506107d1826138e6565b60008082116138dc57600080fd5b5060008190031690565b60006001600160e01b03198216637965db0b60e01b14806107d157506301ffc9a760e01b6001600160e01b03198316146107d1565b60006020828403121561392d57600080fd5b81356001600160401b0381111561394357600080fd5b820160608185031215610e0057600080fd5b6001600160e01b031981168114610c6b57600080fd5b60006020828403121561397d57600080fd5b8135610e0081613955565b60005b838110156139a357818101518382015260200161398b565b50506000910152565b600081518084526139c4816020860160208601613988565b601f01601f19169290920160200192915050565b602081526000610e0060208301846139ac565b6000602082840312156139fd57600080fd5b5035919050565b80356001600160a01b0381168114612d2d57600080fd5b60008060408385031215613a2e57600080fd5b613a3783613a04565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613a7d57613a7d613a45565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613aab57613aab613a45565b604052919050565b60006001600160401b03821115613acc57613acc613a45565b5060051b60200190565b6000613ae9613ae484613ab3565b613a83565b8381529050602080820190600585811b850187811115613b0857600080fd5b855b81811015613bdb5780356001600160401b0380821115613b2a5760008081fd5b908801906040828c031215613b3f5760008081fd5b613b47613a5b565b613b5083613a04565b81528683013582811115613b645760008081fd5b8084019350508b601f840112613b7c57600091508182fd5b82359150613b8c613ae483613ab3565b82815291861b8301870191878101908d841115613ba95760008081fd5b938801935b83851015613bc757843582529388019390880190613bae565b828901525087525050938301938301613b0a565b50505050509392505050565b600060208284031215613bf957600080fd5b81356001600160401b03811115613c0f57600080fd5b8201601f81018413613c2057600080fd5b61276d84823560208401613ad6565b600080600060608486031215613c4457600080fd5b613c4d84613a04565b9250613c5b60208501613a04565b9150604084013590509250925092565b60008060408385031215613c7e57600080fd5b50508035926020909101359150565b60006020808385031215613ca057600080fd5b82356001600160401b03811115613cb657600080fd5b8301601f81018513613cc757600080fd5b8035613cd5613ae482613ab3565b81815260069190911b82018301908381019087831115613cf457600080fd5b928401925b82841015613d3e5760408489031215613d125760008081fd5b613d1a613a5b565b613d2385613a04565b81528486013586820152825260409093019290840190613cf9565b979650505050505050565b60008060408385031215613d5c57600080fd5b82359150613d6c60208401613a04565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015613db65783516001600160a01b031683529284019291840191600101613d91565b50909695505050505050565b600060208284031215613dd457600080fd5b610e0082613a04565b80356001600160601b0381168114612d2d57600080fd5b600080600060608486031215613e0957600080fd5b83359250613e1960208501613a04565b9150613e2760408501613ddd565b90509250925092565b60006001600160401b03831115613e4957613e49613a45565b613e5c601f8401601f1916602001613a83565b9050828152838383011115613e7057600080fd5b828260208301376000602084830101529392505050565b600060208284031215613e9957600080fd5b81356001600160401b03811115613eaf57600080fd5b8201601f81018413613ec057600080fd5b61276d84823560208401613e30565b60008060408385031215613ee257600080fd5b613eeb83613a04565b9150613d6c60208401613ddd565b8015158114610c6b57600080fd5b60008060408385031215613f1a57600080fd5b613f2383613a04565b91506020830135613f3381613ef9565b809150509250929050565b60008083601f840112613f5057600080fd5b5081356001600160401b03811115613f6757600080fd5b6020830191508360208260051b8501011115610a6257600080fd5b60008060008060608587031215613f9857600080fd5b84356001600160401b03811115613fae57600080fd5b613fba87828801613f3e565b9095509350613fcd905060208601613a04565b9150613fdb60408601613ddd565b905092959194509250565b60008060008060808587031215613ffc57600080fd5b61400585613a04565b935061401360208601613a04565b92506040850135915060608501356001600160401b0381111561403557600080fd5b8501601f8101871361404657600080fd5b61405587823560208401613e30565b91505092959194509250565b6000806020838503121561407457600080fd5b82356001600160401b0381111561408a57600080fd5b61409685828601613f3e565b90969095509350505050565b600080604083850312156140b557600080fd5b6140be83613a04565b9150613d6c60208401613a04565b6000808335601e198436030181126140e357600080fd5b8301803591506001600160401b038211156140fd57600080fd5b6020019150600581901b3603821315610a6257600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016141535761415361412b565b5060010190565b60006020828403121561416c57600080fd5b8151610e0081613ef9565b808201808211156107d1576107d161412b565b80820281158282048414176107d1576107d161412b565b6000826141be57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806141d757607f821691505b6020821081036141f757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561095c57600081815260208120601f850160051c810160208610156142245750805b601f850160051c820191505b8181101561109757828155600101614230565b81516001600160401b0381111561425c5761425c613a45565b6142708161426a84546141c3565b846141fd565b602080601f8311600181146142a5576000841561428d5750858301515b600019600386901b1c1916600185901b178555611097565b600085815260208120601f198616915b828110156142d4578886015182559484019460019091019084016142b5565b50858210156142f25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000816143115761431161412b565b506000190190565b818103818111156107d1576107d161412b565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526034908201527f4552433732315073693a207472616e736665722063616c6c6572206973206e6f6040820152731d081bdddb995c881b9bdc88185c1c1c9bdd995960621b606082015260800190565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60008351614429818460208801613988565b83519083019061443d818360208801613988565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161447e816017850160208801613988565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516144af816028840160208801613988565b01602801949350505050565b634e487b7160e01b600052603160045260246000fd5b60208082526035908201527f4552433732315073693a207472616e7366657220746f206e6f6e20455243373260408201527418a932b1b2b4bb32b91034b6b83632b6b2b73a32b960591b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906145f0908301846139ac565b9695505050505050565b60006020828403121561460c57600080fd5b8151610e008161395556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0001020903110a19042112290b311a3905412245134d2a550c5d32651b6d3a7506264262237d468514804e8d2b95569d0d495ea533a966b11c886eb93bc176c9071727374353637324837e9b47af86c7155181ad4fd18ed32c9096db57d59ee30e2e4a6a5f92a6be3498aae067ddb2eb1d5989b56fd7baf33ca0c2ee77e5caf7ff0810182028303840444c545c646c7425617c847f8c949c48a4a8b087b8c0c816365272829aaec650acd0d28fdad4e22d6991bd97dfdcea58b4d6f29fede4f6fe0f1f2f3f4b5b6b607b8b93a3a7b7bf357199c5abcfd9e168bcdee9b3f1ecf5fd1e3e5a7a8aa2b670c4ced8bbe8f0f4fc3d79a1c3cde7effb78cce6facbf9f8a264697066735822122069f1e7de30c125031cf14dee918b767ccf0b99363cb74ee4a00c68cea975db1b64736f6c63430008110033";
|
|
30917
31543
|
const isSuperArgs$2 = (xs) => xs.length > 1;
|
|
30918
31544
|
class ImmutableERC721__factory extends ContractFactory {
|
|
30919
31545
|
constructor(...args) {
|
|
@@ -30924,11 +31550,11 @@ class ImmutableERC721__factory extends ContractFactory {
|
|
|
30924
31550
|
super(_abi$2, _bytecode$2, args[0]);
|
|
30925
31551
|
}
|
|
30926
31552
|
}
|
|
30927
|
-
deploy(owner_, name_, symbol_, baseURI_, contractURI_,
|
|
30928
|
-
return super.deploy(owner_, name_, symbol_, baseURI_, contractURI_,
|
|
31553
|
+
deploy(owner_, name_, symbol_, baseURI_, contractURI_, operatorAllowlist_, royaltyReceiver_, feeNumerator_, overrides) {
|
|
31554
|
+
return super.deploy(owner_, name_, symbol_, baseURI_, contractURI_, operatorAllowlist_, royaltyReceiver_, feeNumerator_, overrides || {});
|
|
30929
31555
|
}
|
|
30930
|
-
getDeployTransaction(owner_, name_, symbol_, baseURI_, contractURI_,
|
|
30931
|
-
return super.getDeployTransaction(owner_, name_, symbol_, baseURI_, contractURI_,
|
|
31556
|
+
getDeployTransaction(owner_, name_, symbol_, baseURI_, contractURI_, operatorAllowlist_, royaltyReceiver_, feeNumerator_, overrides) {
|
|
31557
|
+
return super.getDeployTransaction(owner_, name_, symbol_, baseURI_, contractURI_, operatorAllowlist_, royaltyReceiver_, feeNumerator_, overrides || {});
|
|
30932
31558
|
}
|
|
30933
31559
|
attach(address) {
|
|
30934
31560
|
return super.attach(address);
|
|
@@ -30979,7 +31605,7 @@ const _abi$1 = [
|
|
|
30979
31605
|
},
|
|
30980
31606
|
{
|
|
30981
31607
|
internalType: "address",
|
|
30982
|
-
name: "
|
|
31608
|
+
name: "_operatorAllowlist",
|
|
30983
31609
|
type: "address",
|
|
30984
31610
|
},
|
|
30985
31611
|
{
|
|
@@ -30996,6 +31622,11 @@ const _abi$1 = [
|
|
|
30996
31622
|
stateMutability: "nonpayable",
|
|
30997
31623
|
type: "constructor",
|
|
30998
31624
|
},
|
|
31625
|
+
{
|
|
31626
|
+
inputs: [],
|
|
31627
|
+
name: "AllowlistDoesNotImplementIOperatorAllowlist",
|
|
31628
|
+
type: "error",
|
|
31629
|
+
},
|
|
30999
31630
|
{
|
|
31000
31631
|
inputs: [
|
|
31001
31632
|
{
|
|
@@ -31088,11 +31719,6 @@ const _abi$1 = [
|
|
|
31088
31719
|
name: "IImmutableERC721TokenAlreadyBurned",
|
|
31089
31720
|
type: "error",
|
|
31090
31721
|
},
|
|
31091
|
-
{
|
|
31092
|
-
inputs: [],
|
|
31093
|
-
name: "RoyaltyEnforcementDoesNotImplementRequiredInterface",
|
|
31094
|
-
type: "error",
|
|
31095
|
-
},
|
|
31096
31722
|
{
|
|
31097
31723
|
inputs: [
|
|
31098
31724
|
{
|
|
@@ -31165,6 +31791,25 @@ const _abi$1 = [
|
|
|
31165
31791
|
name: "ApprovalForAll",
|
|
31166
31792
|
type: "event",
|
|
31167
31793
|
},
|
|
31794
|
+
{
|
|
31795
|
+
anonymous: false,
|
|
31796
|
+
inputs: [
|
|
31797
|
+
{
|
|
31798
|
+
indexed: false,
|
|
31799
|
+
internalType: "address",
|
|
31800
|
+
name: "oldRegistry",
|
|
31801
|
+
type: "address",
|
|
31802
|
+
},
|
|
31803
|
+
{
|
|
31804
|
+
indexed: false,
|
|
31805
|
+
internalType: "address",
|
|
31806
|
+
name: "newRegistry",
|
|
31807
|
+
type: "address",
|
|
31808
|
+
},
|
|
31809
|
+
],
|
|
31810
|
+
name: "OperatorAllowlistRegistryUpdated",
|
|
31811
|
+
type: "event",
|
|
31812
|
+
},
|
|
31168
31813
|
{
|
|
31169
31814
|
anonymous: false,
|
|
31170
31815
|
inputs: [
|
|
@@ -31240,25 +31885,6 @@ const _abi$1 = [
|
|
|
31240
31885
|
name: "RoleRevoked",
|
|
31241
31886
|
type: "event",
|
|
31242
31887
|
},
|
|
31243
|
-
{
|
|
31244
|
-
anonymous: false,
|
|
31245
|
-
inputs: [
|
|
31246
|
-
{
|
|
31247
|
-
indexed: false,
|
|
31248
|
-
internalType: "address",
|
|
31249
|
-
name: "oldRegistry",
|
|
31250
|
-
type: "address",
|
|
31251
|
-
},
|
|
31252
|
-
{
|
|
31253
|
-
indexed: false,
|
|
31254
|
-
internalType: "address",
|
|
31255
|
-
name: "newRegistry",
|
|
31256
|
-
type: "address",
|
|
31257
|
-
},
|
|
31258
|
-
],
|
|
31259
|
-
name: "RoyaltyAllowlistRegistryUpdated",
|
|
31260
|
-
type: "event",
|
|
31261
|
-
},
|
|
31262
31888
|
{
|
|
31263
31889
|
anonymous: false,
|
|
31264
31890
|
inputs: [
|
|
@@ -31666,6 +32292,19 @@ const _abi$1 = [
|
|
|
31666
32292
|
stateMutability: "view",
|
|
31667
32293
|
type: "function",
|
|
31668
32294
|
},
|
|
32295
|
+
{
|
|
32296
|
+
inputs: [],
|
|
32297
|
+
name: "operatorAllowlist",
|
|
32298
|
+
outputs: [
|
|
32299
|
+
{
|
|
32300
|
+
internalType: "contract IOperatorAllowlist",
|
|
32301
|
+
name: "",
|
|
32302
|
+
type: "address",
|
|
32303
|
+
},
|
|
32304
|
+
],
|
|
32305
|
+
stateMutability: "view",
|
|
32306
|
+
type: "function",
|
|
32307
|
+
},
|
|
31669
32308
|
{
|
|
31670
32309
|
inputs: [
|
|
31671
32310
|
{
|
|
@@ -31734,19 +32373,6 @@ const _abi$1 = [
|
|
|
31734
32373
|
stateMutability: "nonpayable",
|
|
31735
32374
|
type: "function",
|
|
31736
32375
|
},
|
|
31737
|
-
{
|
|
31738
|
-
inputs: [],
|
|
31739
|
-
name: "royaltyAllowlist",
|
|
31740
|
-
outputs: [
|
|
31741
|
-
{
|
|
31742
|
-
internalType: "contract IRoyaltyAllowlist",
|
|
31743
|
-
name: "",
|
|
31744
|
-
type: "address",
|
|
31745
|
-
},
|
|
31746
|
-
],
|
|
31747
|
-
stateMutability: "view",
|
|
31748
|
-
type: "function",
|
|
31749
|
-
},
|
|
31750
32376
|
{
|
|
31751
32377
|
inputs: [
|
|
31752
32378
|
{
|
|
@@ -32055,11 +32681,11 @@ const _abi$1 = [
|
|
|
32055
32681
|
inputs: [
|
|
32056
32682
|
{
|
|
32057
32683
|
internalType: "address",
|
|
32058
|
-
name: "
|
|
32684
|
+
name: "_operatorAllowlist",
|
|
32059
32685
|
type: "address",
|
|
32060
32686
|
},
|
|
32061
32687
|
],
|
|
32062
|
-
name: "
|
|
32688
|
+
name: "setOperatorAllowlistRegistry",
|
|
32063
32689
|
outputs: [],
|
|
32064
32690
|
stateMutability: "nonpayable",
|
|
32065
32691
|
type: "function",
|
|
@@ -32152,7 +32778,7 @@ const _abi$1 = [
|
|
|
32152
32778
|
type: "function",
|
|
32153
32779
|
},
|
|
32154
32780
|
];
|
|
32155
|
-
const _bytecode$1 = "0x60806040523480156200001157600080fd5b5060405162003c7938038062003c79833981016040819052620000349162000506565b8787878787878787868660036200004c838262000699565b5060046200005b828262000699565b506200006d91506000905089620000b8565b620000798282620000fb565b620000848362000200565b600c62000092868262000699565b50600b620000a1858262000699565b505050505050505050505050505050505062000790565b620000cf8282620002f960201b6200135e1760201c565b6000828152600160209081526040909120620000f6918390620013e26200039a821b17901c565b505050565b6127106001600160601b03821611156200016f5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001c75760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000166565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000272919062000765565b6200029057604051631353be1160e11b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527ff499b54d61d3fcb40299e3299af3ffe9ef1ee6e47194240f3cc5b6e09f7f6796910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000396576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003553390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620003b1836001600160a01b038416620003ba565b90505b92915050565b60008181526001830160205260408120546200040357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003b4565b506000620003b4565b80516001600160a01b03811681146200042457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200045157600080fd5b81516001600160401b03808211156200046e576200046e62000429565b604051601f8301601f19908116603f0116810190828211818310171562000499576200049962000429565b81604052838152602092508683858801011115620004b657600080fd5b600091505b83821015620004da5785820183015181830184015290820190620004bb565b600093810190920192909252949350505050565b80516001600160601b03811681146200042457600080fd5b600080600080600080600080610100898b0312156200052457600080fd5b6200052f896200040c565b60208a01519098506001600160401b03808211156200054d57600080fd5b6200055b8c838d016200043f565b985060408b01519150808211156200057257600080fd5b620005808c838d016200043f565b975060608b01519150808211156200059757600080fd5b620005a58c838d016200043f565b965060808b0151915080821115620005bc57600080fd5b50620005cb8b828c016200043f565b945050620005dc60a08a016200040c565b9250620005ec60c08a016200040c565b9150620005fc60e08a01620004ee565b90509295985092959890939650565b600181811c908216806200062057607f821691505b6020821081036200064157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000f657600081815260208120601f850160051c81016020861015620006705750805b601f850160051c820191505b8181101562000691578281556001016200067c565b505050505050565b81516001600160401b03811115620006b557620006b562000429565b620006cd81620006c684546200060b565b8462000647565b602080601f831160018114620007055760008415620006ec5750858301515b600019600386901b1c1916600185901b17855562000691565b600085815260208120601f198616915b82811015620007365788860151825594840194600190910190840162000715565b5085821015620007555787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200077857600080fd5b815180151581146200078957600080fd5b9392505050565b6134d980620007a06000396000f3fe608060405234801561001057600080fd5b50600436106102945760003560e01c806369e2f0fb11610167578063a1448194116100ce578063ca15c87311610087578063ca15c873146105da578063d5391393146105ed578063d547741f14610602578063e4623c1b14610615578063e8a3d48514610628578063e985e9c51461063057600080fd5b8063a144819414610573578063a217fddf14610586578063a22cb4651461058e578063a7012816146105a1578063b88d4fde146105b4578063c87b56dd146105c757600080fd5b80639010d07c116101205780639010d07c1461050c57806391d148541461051f578063938e3d7b1461053257806395d89b41146105455780639e2641a31461054d5780639f15d7001461056057600080fd5b806369e2f0fb146104a55780636b3a0632146104b85780636c0360eb146104cb57806370a08231146104d357806374f16a81146104e6578063885e7a08146104f957600080fd5b806331ae450b1161020b57806342842e0e116101c457806342842e0e1461043357806342966c6814610446578063439aed341461045957806355f804b31461046c5780636352211e1461047f5780636588962a1461049257600080fd5b806331ae450b146103c957806336568abe146103de5780633dd1eb61146103f15780633e769acd146104045780633eaaf86b1461041757806340c10f191461042057600080fd5b806318160ddd1161025d57806318160ddd14610329578063234af0461461033b57806323b872dd1461034e578063248a9ca3146103615780632a55205a146103845780632f2ff15d146103b657600080fd5b80628ad9461461029957806301ffc9a7146102ae57806306fdde03146102d6578063081812fc146102eb578063095ea7b314610316575b600080fd5b6102ac6102a7366004612907565b61066c565b005b6102c16102bc366004612957565b610742565b60405190151581526020015b60405180910390f35b6102de610753565b6040516102cd91906129c4565b6102fe6102f93660046129d7565b6107e5565b6040516001600160a01b0390911681526020016102cd565b6102ac610324366004612a0c565b61080c565b600d545b6040519081526020016102cd565b6102ac610349366004612bd8565b610967565b6102ac61035c366004612c20565b6109bf565b61032d61036f3660046129d7565b60009081526020819052604090206001015490565b610397610392366004612c5c565b6109f1565b604080516001600160a01b0390931683526020830191909152016102cd565b6102ac6103c4366004612c7e565b610a9f565b6103d1610ac4565b6040516102cd9190612caa565b6102ac6103ec366004612c7e565b610b72565b6102ac6103ff366004612cf7565b610bec565b6102ac610412366004612bd8565b610c0f565b61032d600d5481565b6102ac61042e366004612a0c565b610c9b565b6102ac610441366004612c20565b610cd7565b6102ac6104543660046129d7565b610cf2565b6102ac610467366004612d29565b610d30565b6102ac61047a366004612dbc565b610d59565b6102fe61048d3660046129d7565b610d70565b6102ac6104a0366004612cf7565b610dd0565b6102ac6104b3366004612cf7565b610de4565b6002546102fe906001600160a01b031681565b6102de610e07565b61032d6104e1366004612cf7565b610e95565b6102ac6104f4366004612bd8565b610f1b565b6102ac610507366004612e04565b610f27565b6102fe61051a366004612c5c565b610f3c565b6102c161052d366004612c7e565b610f5b565b6102ac610540366004612dbc565b610f84565b6102de610f9b565b6102ac61055b366004612bd8565b610faa565b6102ac61056e366004612a0c565b611002565b6102ac610581366004612a0c565b61105c565b61032d600081565b6102ac61059c366004612e3c565b61108e565b6102ac6105af366004612eb7565b6111df565b6102ac6105c2366004612f1b565b61123f565b6102de6105d53660046129d7565b611271565b61032d6105e83660046129d7565b6112d7565b61032d6a4d494e5445525f524f4c4560a81b81565b6102ac610610366004612c7e565b6112ee565b6102ac610623366004612f96565b611313565b6102de611351565b6102c161063e366004612fd7565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b6106796020820182613001565b90506106886040830183613001565b9050146106a85760405163359a1bc360e01b815260040160405180910390fd5b60005b6106b86040830183613001565b905081101561073e5761072c6106d16020840184612cf7565b6106de6020850185613001565b848181106106ee576106ee61304a565b90506020020160208101906107039190612cf7565b6107106040860186613001565b858181106107205761072061304a565b90506020020135610cd7565b8061073681613076565b9150506106ab565b5050565b600061074d826113f7565b92915050565b6060600380546107629061308f565b80601f016020809104026020016040519081016040528092919081815260200182805461078e9061308f565b80156107db5780601f106107b0576101008083540402835291602001916107db565b820191906000526020600020905b8154815290600101906020018083116107be57829003601f168201915b5050505050905090565b60006107f082611402565b506000908152600760205260409020546001600160a01b031690565b81333b1580159061088657506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088491906130c9565b155b156108ab5760405163f6fa4cbd60e01b81523360048201526024015b60405180910390fd5b6001600160a01b0381163b1580159061092f57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092d91906130c9565b155b15610958576040516341b8d58160e11b81526001600160a01b03821660048201526024016108a2565b6109628383611461565b505050565b6a4d494e5445525f524f4c4560a81b61097f81611571565b60005b8251811015610962576109ad8382815181106109a0576109a061304a565b602002602001015161157b565b806109b781613076565b915050610982565b6109ca335b8261160a565b6109e65760405162461bcd60e51b81526004016108a2906130e6565b610962838383611689565b6000828152600a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a665750604080518082019091526009546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610a85906001600160601b031687613133565b610a8f919061314a565b91519350909150505b9250929050565b600082815260208190526040902060010154610aba81611571565b6109628383611890565b60606000610ad1816112d7565b90506000816001600160401b03811115610aed57610aed612a36565b604051908082528060200260200182016040528015610b16578160200160208202803683370190505b50905060005b82811015610b6b57610b2f600082610f3c565b828281518110610b4157610b4161304a565b6001600160a01b039092166020928302919091019091015280610b6381613076565b915050610b1c565b5092915050565b6001600160a01b0381163314610be25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108a2565b61073e82826118b2565b6000610bf781611571565b61073e6a4d494e5445525f524f4c4560a81b83610a9f565b60005b815181101561073e576000828281518110610c2f57610c2f61304a565b6020026020010151905060005b816020015151811015610c8657610c74826000015183602001518381518110610c6757610c6761304a565b6020026020010151611002565b80610c7e81613076565b915050610c3c565b50508080610c9390613076565b915050610c12565b6a4d494e5445525f524f4c4560a81b610cb381611571565b610cbd83836118d4565b600d8054906000610ccd83613076565b9190505550505050565b6109628383836040518060200160405280600081525061123f565b610cfb8161191b565b600881901c6000908152600e602052604081208054600160ff85161b179055600d805491610d288361316c565b919050555050565b6a4d494e5445525f524f4c4560a81b610d4881611571565b610d53848484611949565b50505050565b6000610d6481611571565b600c61096283826131c9565b6000818152600560205260408120546001600160a01b03168061074d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108a2565b6000610ddb81611571565b61073e82611a14565b6000610def81611571565b61073e6a4d494e5445525f524f4c4560a81b836112ee565b600c8054610e149061308f565b80601f0160208091040260200160405190810160405280929190818152602001828054610e409061308f565b8015610e8d5780601f10610e6257610100808354040283529160200191610e8d565b820191906000526020600020905b815481529060010190602001808311610e7057829003601f168201915b505050505081565b60006001600160a01b038216610eff5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016108a2565b506001600160a01b031660009081526006602052604090205490565b610f2481610c0f565b50565b6000610f3281611571565b6109628383611b09565b6000828152600160205260408120610f549083611bc3565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610f8f81611571565b600b61096283826131c9565b6060600480546107629061308f565b6a4d494e5445525f524f4c4560a81b610fc281611571565b60005b825181101561096257610ff0838281518110610fe357610fe361304a565b6020026020010151611bcf565b80610ffa81613076565b915050610fc5565b600061100d82610d70565b9050826001600160a01b0316816001600160a01b03161461105357604051634fefd56160e01b8152600481018390526001600160a01b03821660248201526044016108a2565b61096282610cf2565b6a4d494e5445525f524f4c4560a81b61107481611571565b610cbd838360405180602001604052806000815250611c45565b81333b1580159061110857506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110691906130c9565b155b156111285760405163f6fa4cbd60e01b81523360048201526024016108a2565b6001600160a01b0381163b158015906111ac57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111aa91906130c9565b155b156111d5576040516341b8d58160e11b81526001600160a01b03821660048201526024016108a2565b6109628383611c78565b6a4d494e5445525f524f4c4560a81b6111f781611571565b60005b84811015611237576112258686838181106112175761121761304a565b905060200201358585611949565b8061122f81613076565b9150506111fa565b505050505050565b611249338361160a565b6112655760405162461bcd60e51b81526004016108a2906130e6565b610d5384848484611c83565b606061127c82611402565b6000611286611cb6565b905060008151116112a65760405180602001604052806000815250610f54565b806112b084611cc5565b6040516020016112c1929190613288565b6040516020818303038152906040529392505050565b600081815260016020526040812061074d90611d57565b60008281526020819052604090206001015461130981611571565b61096283836118b2565b60005b818110156109625761133f8383838181106113335761133361304a565b90506020020135610cf2565b8061134981613076565b915050611316565b600b8054610e149061308f565b6113688282610f5b565b61073e576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561139e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610f54836001600160a01b038416611d61565b600061074d82611db0565b6000818152600560205260409020546001600160a01b0316610f245760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108a2565b600061146c82610d70565b9050806001600160a01b0316836001600160a01b0316036114d95760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016108a2565b336001600160a01b03821614806114f557506114f5813361063e565b6115675760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016108a2565b6109628383611dd5565b610f248133611e43565b80516001600160a01b03166115a3576040516331c3e52960e11b815260040160405180910390fd5b60005b8160200151518110156115f0576115de8260000151836020015183815181106115d1576115d161304a565b6020026020010151611e9c565b806115e881613076565b9150506115a6565b50806020015151600d5461160491906132b7565b600d5550565b60008061161683610d70565b9050806001600160a01b0316846001600160a01b0316148061165d57506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b806116815750836001600160a01b0316611676846107e5565b6001600160a01b0316145b949350505050565b828233321480159061170457506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156116de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170291906130c9565b155b156117245760405163937db65f60e01b81523360048201526024016108a2565b6001600160a01b0382163b158015906117a857506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa158015611782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a691906130c9565b155b156117d15760405163f934453160e01b81526001600160a01b03831660048201526024016108a2565b6001600160a01b0381163b1580159061185557506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185391906130c9565b155b1561187e57604051632a67242160e11b81526001600160a01b03821660048201526024016108a2565b611889858585611ee3565b5050505050565b61189a828261135e565b600082815260016020526040902061096290826113e2565b6118bc8282612047565b600082815260016020526040902061096290826120ac565b600881901c6000908152600e6020526040902054600160ff83161b1615611911576040516305dcda1160e51b8152600481018290526024016108a2565b61073e82826120c1565b611924336109c4565b6119405760405162461bcd60e51b81526004016108a2906130e6565b610f248161224c565b6127106001600160601b03821611156119745760405162461bcd60e51b81526004016108a2906132ca565b6001600160a01b0382166119ca5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d6574657273000000000060448201526064016108a2565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600a90529190942093519051909116600160a01b029116179055565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015611a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8391906130c9565b611aa057604051631353be1160e11b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527ff499b54d61d3fcb40299e3299af3ffe9ef1ee6e47194240f3cc5b6e09f7f6796910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b6127106001600160601b0382161115611b345760405162461bcd60e51b81526004016108a2906132ca565b6001600160a01b038216611b8a5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016108a2565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b6000610f5483836122e1565b80516001600160a01b031615611bf8576040516331c3e52960e11b815260040160405180910390fd5b60005b8160200151518110156115f057611c33826000015183602001518381518110611c2657611c2661304a565b60200260200101516118d4565b80611c3d81613076565b915050611bfb565b611c4f83836118d4565b611c5c600084848461230b565b6109625760405162461bcd60e51b81526004016108a290613314565b61073e33838361240c565b611c8e848484611689565b611c9a8484848461230b565b610d535760405162461bcd60e51b81526004016108a290613314565b6060600c80546107629061308f565b60606000611cd2836124da565b60010190506000816001600160401b03811115611cf157611cf1612a36565b6040519080825280601f01601f191660200182016040528015611d1b576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611d2557509392505050565b600061074d825490565b6000818152600183016020526040812054611da85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561074d565b50600061074d565b60006001600160e01b0319821663152a902d60e11b148061074d575061074d826125b2565b600081815260076020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611e0a82610d70565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611e4d8282610f5b565b61073e57611e5a816125f2565b611e65836020612604565b604051602001611e76929190613366565b60408051601f198184030181529082905262461bcd60e51b82526108a2916004016129c4565b600881901c6000908152600e6020526040902054600160ff83161b1615611ed9576040516305dcda1160e51b8152600481018290526024016108a2565b61073e828261279f565b826001600160a01b0316611ef682610d70565b6001600160a01b031614611f1c5760405162461bcd60e51b81526004016108a2906133db565b6001600160a01b038216611f7e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108a2565b826001600160a01b0316611f9182610d70565b6001600160a01b031614611fb75760405162461bcd60e51b81526004016108a2906133db565b600081815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260068552838620805460001901905590871680865283862080546001019055868652600590945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6120518282610f5b565b1561073e576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610f54836001600160a01b0384166127b9565b6001600160a01b0382166121175760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108a2565b6000818152600560205260409020546001600160a01b03161561217c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108a2565b6000818152600560205260409020546001600160a01b0316156121e15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108a2565b6001600160a01b038216600081815260066020908152604080832080546001019055848352600590915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600061225782610d70565b905061226282610d70565b600083815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526006845282852080546000190190558785526005909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60008260000182815481106122f8576122f861304a565b9060005260206000200154905092915050565b60006001600160a01b0384163b1561240157604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061234f903390899088908890600401613420565b6020604051808303816000875af192505050801561238a575060408051601f3d908101601f191682019092526123879181019061345d565b60015b6123e7573d8080156123b8576040519150601f19603f3d011682016040523d82523d6000602084013e6123bd565b606091505b5080516000036123df5760405162461bcd60e51b81526004016108a290613314565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611681565b506001949350505050565b816001600160a01b0316836001600160a01b03160361246d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108a2565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106125195772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612545576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061256357662386f26fc10000830492506010015b6305f5e100831061257b576305f5e100830492506008015b612710831061258f57612710830492506004015b606483106125a1576064830492506002015b600a831061074d5760010192915050565b60006001600160e01b031982166380ac58cd60e01b14806125e357506001600160e01b03198216635b5e139f60e01b145b8061074d575061074d826128ac565b606061074d6001600160a01b03831660145b60606000612613836002613133565b61261e9060026132b7565b6001600160401b0381111561263557612635612a36565b6040519080825280601f01601f19166020018201604052801561265f576020820181803683370190505b509050600360fc1b8160008151811061267a5761267a61304a565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126a9576126a961304a565b60200101906001600160f81b031916908160001a90535060006126cd846002613133565b6126d89060016132b7565b90505b6001811115612750576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061270c5761270c61304a565b1a60f81b8282815181106127225761272261304a565b60200101906001600160f81b031916908160001a90535060049490941c936127498161316c565b90506126db565b508315610f545760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108a2565b61073e828260405180602001604052806000815250611c45565b600081815260018301602052604081205480156128a25760006127dd60018361347a565b85549091506000906127f19060019061347a565b90508181146128565760008660000182815481106128115761281161304a565b90600052602060002001549050808760000184815481106128345761283461304a565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806128675761286761348d565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061074d565b600091505061074d565b600061074d8260006001600160e01b03198216635a05180f60e01b148061074d575061074d8260006001600160e01b03198216637965db0b60e01b148061074d57506301ffc9a760e01b6001600160e01b031983161461074d565b60006020828403121561291957600080fd5b81356001600160401b0381111561292f57600080fd5b820160608185031215610f5457600080fd5b6001600160e01b031981168114610f2457600080fd5b60006020828403121561296957600080fd5b8135610f5481612941565b60005b8381101561298f578181015183820152602001612977565b50506000910152565b600081518084526129b0816020860160208601612974565b601f01601f19169290920160200192915050565b602081526000610f546020830184612998565b6000602082840312156129e957600080fd5b5035919050565b80356001600160a01b0381168114612a0757600080fd5b919050565b60008060408385031215612a1f57600080fd5b612a28836129f0565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612a6e57612a6e612a36565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612a9c57612a9c612a36565b604052919050565b60006001600160401b03821115612abd57612abd612a36565b5060051b60200190565b6000612ada612ad584612aa4565b612a74565b8381529050602080820190600585811b850187811115612af957600080fd5b855b81811015612bcc5780356001600160401b0380821115612b1b5760008081fd5b908801906040828c031215612b305760008081fd5b612b38612a4c565b612b41836129f0565b81528683013582811115612b555760008081fd5b8084019350508b601f840112612b6d57600091508182fd5b82359150612b7d612ad583612aa4565b82815291861b8301870191878101908d841115612b9a5760008081fd5b938801935b83851015612bb857843582529388019390880190612b9f565b828901525087525050938301938301612afb565b50505050509392505050565b600060208284031215612bea57600080fd5b81356001600160401b03811115612c0057600080fd5b8201601f81018413612c1157600080fd5b61168184823560208401612ac7565b600080600060608486031215612c3557600080fd5b612c3e846129f0565b9250612c4c602085016129f0565b9150604084013590509250925092565b60008060408385031215612c6f57600080fd5b50508035926020909101359150565b60008060408385031215612c9157600080fd5b82359150612ca1602084016129f0565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ceb5783516001600160a01b031683529284019291840191600101612cc6565b50909695505050505050565b600060208284031215612d0957600080fd5b610f54826129f0565b80356001600160601b0381168114612a0757600080fd5b600080600060608486031215612d3e57600080fd5b83359250612d4e602085016129f0565b9150612d5c60408501612d12565b90509250925092565b60006001600160401b03831115612d7e57612d7e612a36565b612d91601f8401601f1916602001612a74565b9050828152838383011115612da557600080fd5b828260208301376000602084830101529392505050565b600060208284031215612dce57600080fd5b81356001600160401b03811115612de457600080fd5b8201601f81018413612df557600080fd5b61168184823560208401612d65565b60008060408385031215612e1757600080fd5b612e20836129f0565b9150612ca160208401612d12565b8015158114610f2457600080fd5b60008060408385031215612e4f57600080fd5b612e58836129f0565b91506020830135612e6881612e2e565b809150509250929050565b60008083601f840112612e8557600080fd5b5081356001600160401b03811115612e9c57600080fd5b6020830191508360208260051b8501011115610a9857600080fd5b60008060008060608587031215612ecd57600080fd5b84356001600160401b03811115612ee357600080fd5b612eef87828801612e73565b9095509350612f029050602086016129f0565b9150612f1060408601612d12565b905092959194509250565b60008060008060808587031215612f3157600080fd5b612f3a856129f0565b9350612f48602086016129f0565b92506040850135915060608501356001600160401b03811115612f6a57600080fd5b8501601f81018713612f7b57600080fd5b612f8a87823560208401612d65565b91505092959194509250565b60008060208385031215612fa957600080fd5b82356001600160401b03811115612fbf57600080fd5b612fcb85828601612e73565b90969095509350505050565b60008060408385031215612fea57600080fd5b612ff3836129f0565b9150612ca1602084016129f0565b6000808335601e1984360301811261301857600080fd5b8301803591506001600160401b0382111561303257600080fd5b6020019150600581901b3603821315610a9857600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161308857613088613060565b5060010190565b600181811c908216806130a357607f821691505b6020821081036130c357634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156130db57600080fd5b8151610f5481612e2e565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b808202811582820484141761074d5761074d613060565b60008261316757634e487b7160e01b600052601260045260246000fd5b500490565b60008161317b5761317b613060565b506000190190565b601f82111561096257600081815260208120601f850160051c810160208610156131aa5750805b601f850160051c820191505b81811015611237578281556001016131b6565b81516001600160401b038111156131e2576131e2612a36565b6131f6816131f0845461308f565b84613183565b602080601f83116001811461322b57600084156132135750858301515b600019600386901b1c1916600185901b178555611237565b600085815260208120601f198616915b8281101561325a5788860151825594840194600190910190840161323b565b50858210156132785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000835161329a818460208801612974565b8351908301906132ae818360208801612974565b01949350505050565b8082018082111561074d5761074d613060565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161339e816017850160208801612974565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516133cf816028840160208801612974565b01602801949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061345390830184612998565b9695505050505050565b60006020828403121561346f57600080fd5b8151610f5481612941565b8181038181111561074d5761074d613060565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220b011c76f17319aab20d598a27be80ad3891d73e102d2a5a5fca6210f067ce45564736f6c63430008110033";
|
|
32781
|
+
const _bytecode$1 = "0x60806040523480156200001157600080fd5b5060405162003c7338038062003c73833981016040819052620000349162000506565b8787878787878787868660036200004c838262000699565b5060046200005b828262000699565b506200006d91506000905089620000b8565b620000798282620000fb565b620000848362000200565b600c62000092868262000699565b50600b620000a1858262000699565b505050505050505050505050505050505062000790565b620000cf8282620002f960201b6200135e1760201c565b6000828152600160209081526040909120620000f6918390620013e26200039a821b17901c565b505050565b6127106001600160601b03821611156200016f5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001c75760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000166565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000272919062000765565b620002905760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000396576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003553390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620003b1836001600160a01b038416620003ba565b90505b92915050565b60008181526001830160205260408120546200040357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003b4565b506000620003b4565b80516001600160a01b03811681146200042457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200045157600080fd5b81516001600160401b03808211156200046e576200046e62000429565b604051601f8301601f19908116603f0116810190828211818310171562000499576200049962000429565b81604052838152602092508683858801011115620004b657600080fd5b600091505b83821015620004da5785820183015181830184015290820190620004bb565b600093810190920192909252949350505050565b80516001600160601b03811681146200042457600080fd5b600080600080600080600080610100898b0312156200052457600080fd5b6200052f896200040c565b60208a01519098506001600160401b03808211156200054d57600080fd5b6200055b8c838d016200043f565b985060408b01519150808211156200057257600080fd5b620005808c838d016200043f565b975060608b01519150808211156200059757600080fd5b620005a58c838d016200043f565b965060808b0151915080821115620005bc57600080fd5b50620005cb8b828c016200043f565b945050620005dc60a08a016200040c565b9250620005ec60c08a016200040c565b9150620005fc60e08a01620004ee565b90509295985092959890939650565b600181811c908216806200062057607f821691505b6020821081036200064157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000f657600081815260208120601f850160051c81016020861015620006705750805b601f850160051c820191505b8181101562000691578281556001016200067c565b505050505050565b81516001600160401b03811115620006b557620006b562000429565b620006cd81620006c684546200060b565b8462000647565b602080601f831160018114620007055760008415620006ec5750858301515b600019600386901b1c1916600185901b17855562000691565b600085815260208120601f198616915b82811015620007365788860151825594840194600190910190840162000715565b5085821015620007555787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200077857600080fd5b815180151581146200078957600080fd5b9392505050565b6134d380620007a06000396000f3fe608060405234801561001057600080fd5b50600436106102945760003560e01c806369e2f0fb11610167578063a217fddf116100ce578063d539139311610087578063d5391393146105da578063d547741f146105ef578063e4623c1b14610602578063e4e18f6d14610615578063e8a3d48514610628578063e985e9c51461063057600080fd5b8063a217fddf14610573578063a22cb4651461057b578063a70128161461058e578063b88d4fde146105a1578063c87b56dd146105b4578063ca15c873146105c757600080fd5b806391d148541161012057806391d148541461050c578063938e3d7b1461051f57806395d89b41146105325780639e2641a31461053a5780639f15d7001461054d578063a14481941461056057600080fd5b806369e2f0fb146104a55780636c0360eb146104b857806370a08231146104c057806374f16a81146104d3578063885e7a08146104e65780639010d07c146104f957600080fd5b80632f2ff15d1161020b57806340c10f19116101c457806340c10f191461043357806342842e0e1461044657806342966c6814610459578063439aed341461046c57806355f804b31461047f5780636352211e1461049257600080fd5b80632f2ff15d146103c957806331ae450b146103dc57806336568abe146103f15780633dd1eb61146104045780633e769acd146104175780633eaaf86b1461042a57600080fd5b806318160ddd1161025d57806318160ddd14610329578063234af0461461033b57806323b872dd1461034e578063248a9ca31461036157806329326f29146103845780632a55205a1461039757600080fd5b80628ad9461461029957806301ffc9a7146102ae57806306fdde03146102d6578063081812fc146102eb578063095ea7b314610316575b600080fd5b6102ac6102a7366004612901565b61066c565b005b6102c16102bc366004612951565b610742565b60405190151581526020015b60405180910390f35b6102de610753565b6040516102cd91906129be565b6102fe6102f93660046129d1565b6107e5565b6040516001600160a01b0390911681526020016102cd565b6102ac610324366004612a06565b61080c565b600d545b6040519081526020016102cd565b6102ac610349366004612bd2565b610967565b6102ac61035c366004612c1a565b6109bf565b61032d61036f3660046129d1565b60009081526020819052604090206001015490565b6002546102fe906001600160a01b031681565b6103aa6103a5366004612c56565b6109f1565b604080516001600160a01b0390931683526020830191909152016102cd565b6102ac6103d7366004612c78565b610a9f565b6103e4610ac4565b6040516102cd9190612ca4565b6102ac6103ff366004612c78565b610b72565b6102ac610412366004612cf1565b610bec565b6102ac610425366004612bd2565b610c0f565b61032d600d5481565b6102ac610441366004612a06565b610c9b565b6102ac610454366004612c1a565b610cd7565b6102ac6104673660046129d1565b610cf2565b6102ac61047a366004612d23565b610d30565b6102ac61048d366004612db6565b610d59565b6102fe6104a03660046129d1565b610d70565b6102ac6104b3366004612cf1565b610dd0565b6102de610df3565b61032d6104ce366004612cf1565b610e81565b6102ac6104e1366004612bd2565b610f07565b6102ac6104f4366004612dfe565b610f13565b6102fe610507366004612c56565b610f28565b6102c161051a366004612c78565b610f47565b6102ac61052d366004612db6565b610f70565b6102de610f87565b6102ac610548366004612bd2565b610f96565b6102ac61055b366004612a06565b610fee565b6102ac61056e366004612a06565b611048565b61032d600081565b6102ac610589366004612e36565b61107a565b6102ac61059c366004612eb1565b6111cb565b6102ac6105af366004612f15565b61122b565b6102de6105c23660046129d1565b61125d565b61032d6105d53660046129d1565b6112c3565b61032d6a4d494e5445525f524f4c4560a81b81565b6102ac6105fd366004612c78565b6112da565b6102ac610610366004612f90565b6112ff565b6102ac610623366004612cf1565b61133d565b6102de611351565b6102c161063e366004612fd1565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b6106796020820182612ffb565b90506106886040830183612ffb565b9050146106a85760405163359a1bc360e01b815260040160405180910390fd5b60005b6106b86040830183612ffb565b905081101561073e5761072c6106d16020840184612cf1565b6106de6020850185612ffb565b848181106106ee576106ee613044565b90506020020160208101906107039190612cf1565b6107106040860186612ffb565b8581811061072057610720613044565b90506020020135610cd7565b8061073681613070565b9150506106ab565b5050565b600061074d826113f7565b92915050565b60606003805461076290613089565b80601f016020809104026020016040519081016040528092919081815260200182805461078e90613089565b80156107db5780601f106107b0576101008083540402835291602001916107db565b820191906000526020600020905b8154815290600101906020018083116107be57829003601f168201915b5050505050905090565b60006107f08261141c565b506000908152600760205260409020546001600160a01b031690565b81333b1580159061088657506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088491906130c3565b155b156108ab5760405163f6fa4cbd60e01b81523360048201526024015b60405180910390fd5b6001600160a01b0381163b1580159061092f57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015610909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092d91906130c3565b155b15610958576040516341b8d58160e11b81526001600160a01b03821660048201526024016108a2565b610962838361147b565b505050565b6a4d494e5445525f524f4c4560a81b61097f8161158b565b60005b8251811015610962576109ad8382815181106109a0576109a0613044565b6020026020010151611595565b806109b781613070565b915050610982565b6109ca335b82611624565b6109e65760405162461bcd60e51b81526004016108a2906130e0565b6109628383836116a3565b6000828152600a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a665750604080518082019091526009546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610a85906001600160601b03168761312d565b610a8f9190613144565b91519350909150505b9250929050565b600082815260208190526040902060010154610aba8161158b565b61096283836118aa565b60606000610ad1816112c3565b90506000816001600160401b03811115610aed57610aed612a30565b604051908082528060200260200182016040528015610b16578160200160208202803683370190505b50905060005b82811015610b6b57610b2f600082610f28565b828281518110610b4157610b41613044565b6001600160a01b039092166020928302919091019091015280610b6381613070565b915050610b1c565b5092915050565b6001600160a01b0381163314610be25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108a2565b61073e82826118cc565b6000610bf78161158b565b61073e6a4d494e5445525f524f4c4560a81b83610a9f565b60005b815181101561073e576000828281518110610c2f57610c2f613044565b6020026020010151905060005b816020015151811015610c8657610c74826000015183602001518381518110610c6757610c67613044565b6020026020010151610fee565b80610c7e81613070565b915050610c3c565b50508080610c9390613070565b915050610c12565b6a4d494e5445525f524f4c4560a81b610cb38161158b565b610cbd83836118ee565b600d8054906000610ccd83613070565b9190505550505050565b6109628383836040518060200160405280600081525061122b565b610cfb81611935565b600881901c6000908152600e602052604081208054600160ff85161b179055600d805491610d2883613166565b919050555050565b6a4d494e5445525f524f4c4560a81b610d488161158b565b610d53848484611963565b50505050565b6000610d648161158b565b600c61096283826131c3565b6000818152600560205260408120546001600160a01b03168061074d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108a2565b6000610ddb8161158b565b61073e6a4d494e5445525f524f4c4560a81b836112da565b600c8054610e0090613089565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2c90613089565b8015610e795780601f10610e4e57610100808354040283529160200191610e79565b820191906000526020600020905b815481529060010190602001808311610e5c57829003601f168201915b505050505081565b60006001600160a01b038216610eeb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016108a2565b506001600160a01b031660009081526006602052604090205490565b610f1081610c0f565b50565b6000610f1e8161158b565b6109628383611a2e565b6000828152600160205260408120610f409083611ae8565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610f7b8161158b565b600b61096283826131c3565b60606004805461076290613089565b6a4d494e5445525f524f4c4560a81b610fae8161158b565b60005b825181101561096257610fdc838281518110610fcf57610fcf613044565b6020026020010151611af4565b80610fe681613070565b915050610fb1565b6000610ff982610d70565b9050826001600160a01b0316816001600160a01b03161461103f57604051634fefd56160e01b8152600481018390526001600160a01b03821660248201526044016108a2565b61096282610cf2565b6a4d494e5445525f524f4c4560a81b6110608161158b565b610cbd838360405180602001604052806000815250611b6a565b81333b158015906110f457506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156110ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f291906130c3565b155b156111145760405163f6fa4cbd60e01b81523360048201526024016108a2565b6001600160a01b0381163b1580159061119857506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611172573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119691906130c3565b155b156111c1576040516341b8d58160e11b81526001600160a01b03821660048201526024016108a2565b6109628383611b9d565b6a4d494e5445525f524f4c4560a81b6111e38161158b565b60005b848110156112235761121186868381811061120357611203613044565b905060200201358585611963565b8061121b81613070565b9150506111e6565b505050505050565b6112353383611624565b6112515760405162461bcd60e51b81526004016108a2906130e0565b610d5384848484611ba8565b60606112688261141c565b6000611272611bdb565b905060008151116112925760405180602001604052806000815250610f40565b8061129c84611bea565b6040516020016112ad929190613282565b6040516020818303038152906040529392505050565b600081815260016020526040812061074d90611c7c565b6000828152602081905260409020600101546112f58161158b565b61096283836118cc565b60005b818110156109625761132b83838381811061131f5761131f613044565b90506020020135610cf2565b8061133581613070565b915050611302565b60006113488161158b565b61073e82611c86565b600b8054610e0090613089565b6113688282610f47565b61073e576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561139e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610f40836001600160a01b038416611d7b565b60006001600160e01b0319821663152a902d60e11b148061074d575061074d82611dca565b6000818152600560205260409020546001600160a01b0316610f105760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108a2565b600061148682610d70565b9050806001600160a01b0316836001600160a01b0316036114f35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016108a2565b336001600160a01b038216148061150f575061150f813361063e565b6115815760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016108a2565b6109628383611e0a565b610f108133611e78565b80516001600160a01b03166115bd576040516331c3e52960e11b815260040160405180910390fd5b60005b81602001515181101561160a576115f88260000151836020015183815181106115eb576115eb613044565b6020026020010151611ed1565b8061160281613070565b9150506115c0565b50806020015151600d5461161e91906132b1565b600d5550565b60008061163083610d70565b9050806001600160a01b0316846001600160a01b0316148061167757506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b8061169b5750836001600160a01b0316611690846107e5565b6001600160a01b0316145b949350505050565b828233321480159061171e57506002546040516305a3b80960e01b81523360048201526001600160a01b03909116906305a3b80990602401602060405180830381865afa1580156116f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171c91906130c3565b155b1561173e5760405163937db65f60e01b81523360048201526024016108a2565b6001600160a01b0382163b158015906117c257506002546040516305a3b80960e01b81526001600160a01b038481166004830152909116906305a3b80990602401602060405180830381865afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c091906130c3565b155b156117eb5760405163f934453160e01b81526001600160a01b03831660048201526024016108a2565b6001600160a01b0381163b1580159061186f57506002546040516305a3b80960e01b81526001600160a01b038381166004830152909116906305a3b80990602401602060405180830381865afa158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d91906130c3565b155b1561189857604051632a67242160e11b81526001600160a01b03821660048201526024016108a2565b6118a3858585611f18565b5050505050565b6118b4828261135e565b600082815260016020526040902061096290826113e2565b6118d6828261207c565b600082815260016020526040902061096290826120e1565b600881901c6000908152600e6020526040902054600160ff83161b161561192b576040516305dcda1160e51b8152600481018290526024016108a2565b61073e82826120f6565b61193e336109c4565b61195a5760405162461bcd60e51b81526004016108a2906130e0565b610f1081612281565b6127106001600160601b038216111561198e5760405162461bcd60e51b81526004016108a2906132c4565b6001600160a01b0382166119e45760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d6574657273000000000060448201526064016108a2565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600a90529190942093519051909116600160a01b029116179055565b6127106001600160601b0382161115611a595760405162461bcd60e51b81526004016108a2906132c4565b6001600160a01b038216611aaf5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016108a2565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b6000610f408383612316565b80516001600160a01b031615611b1d576040516331c3e52960e11b815260040160405180910390fd5b60005b81602001515181101561160a57611b58826000015183602001518381518110611b4b57611b4b613044565b60200260200101516118ee565b80611b6281613070565b915050611b20565b611b7483836118ee565b611b816000848484612340565b6109625760405162461bcd60e51b81526004016108a29061330e565b61073e338383612441565b611bb38484846116a3565b611bbf84848484612340565b610d535760405162461bcd60e51b81526004016108a29061330e565b6060600c805461076290613089565b60606000611bf78361250f565b60010190506000816001600160401b03811115611c1657611c16612a30565b6040519080825280601f01601f191660200182016040528015611c40576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611c4a57509392505050565b600061074d825490565b6040516301ffc9a760e01b81526305a3b80960e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015611cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf591906130c3565b611d125760405163d6f93fb760e01b815260040160405180910390fd5b600254604080516001600160a01b03928316815291831660208301527f3edc37a14cc8047c7c8a3f354311efe86c14848efd4e3765a3e1e57eea04ea76910160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152600183016020526040812054611dc25750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561074d565b50600061074d565b60006001600160e01b031982166380ac58cd60e01b1480611dfb57506001600160e01b03198216635b5e139f60e01b145b8061074d575061074d826125e7565b600081815260076020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611e3f82610d70565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611e828282610f47565b61073e57611e8f816125f2565b611e9a836020612604565b604051602001611eab929190613360565b60408051601f198184030181529082905262461bcd60e51b82526108a2916004016129be565b600881901c6000908152600e6020526040902054600160ff83161b1615611f0e576040516305dcda1160e51b8152600481018290526024016108a2565b61073e828261279f565b826001600160a01b0316611f2b82610d70565b6001600160a01b031614611f515760405162461bcd60e51b81526004016108a2906133d5565b6001600160a01b038216611fb35760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108a2565b826001600160a01b0316611fc682610d70565b6001600160a01b031614611fec5760405162461bcd60e51b81526004016108a2906133d5565b600081815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260068552838620805460001901905590871680865283862080546001019055868652600590945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6120868282610f47565b1561073e576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610f40836001600160a01b0384166127b9565b6001600160a01b03821661214c5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108a2565b6000818152600560205260409020546001600160a01b0316156121b15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108a2565b6000818152600560205260409020546001600160a01b0316156122165760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108a2565b6001600160a01b038216600081815260066020908152604080832080546001019055848352600590915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600061228c82610d70565b905061229782610d70565b600083815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526006845282852080546000190190558785526005909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600082600001828154811061232d5761232d613044565b9060005260206000200154905092915050565b60006001600160a01b0384163b1561243657604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061238490339089908890889060040161341a565b6020604051808303816000875af19250505080156123bf575060408051601f3d908101601f191682019092526123bc91810190613457565b60015b61241c573d8080156123ed576040519150601f19603f3d011682016040523d82523d6000602084013e6123f2565b606091505b5080516000036124145760405162461bcd60e51b81526004016108a29061330e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061169b565b506001949350505050565b816001600160a01b0316836001600160a01b0316036124a25760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108a2565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061254e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061257a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061259857662386f26fc10000830492506010015b6305f5e10083106125b0576305f5e100830492506008015b61271083106125c457612710830492506004015b606483106125d6576064830492506002015b600a831061074d5760010192915050565b600061074d826128ac565b606061074d6001600160a01b03831660145b6060600061261383600261312d565b61261e9060026132b1565b6001600160401b0381111561263557612635612a30565b6040519080825280601f01601f19166020018201604052801561265f576020820181803683370190505b509050600360fc1b8160008151811061267a5761267a613044565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126a9576126a9613044565b60200101906001600160f81b031916908160001a90535060006126cd84600261312d565b6126d89060016132b1565b90505b6001811115612750576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061270c5761270c613044565b1a60f81b82828151811061272257612722613044565b60200101906001600160f81b031916908160001a90535060049490941c9361274981613166565b90506126db565b508315610f405760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108a2565b61073e828260405180602001604052806000815250611b6a565b600081815260018301602052604081205480156128a25760006127dd600183613474565b85549091506000906127f190600190613474565b905081811461285657600086600001828154811061281157612811613044565b906000526020600020015490508087600001848154811061283457612834613044565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061286757612867613487565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061074d565b600091505061074d565b60006001600160e01b03198216635a05180f60e01b148061074d575061074d8260006001600160e01b03198216637965db0b60e01b148061074d57506301ffc9a760e01b6001600160e01b031983161461074d565b60006020828403121561291357600080fd5b81356001600160401b0381111561292957600080fd5b820160608185031215610f4057600080fd5b6001600160e01b031981168114610f1057600080fd5b60006020828403121561296357600080fd5b8135610f408161293b565b60005b83811015612989578181015183820152602001612971565b50506000910152565b600081518084526129aa81602086016020860161296e565b601f01601f19169290920160200192915050565b602081526000610f406020830184612992565b6000602082840312156129e357600080fd5b5035919050565b80356001600160a01b0381168114612a0157600080fd5b919050565b60008060408385031215612a1957600080fd5b612a22836129ea565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612a6857612a68612a30565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612a9657612a96612a30565b604052919050565b60006001600160401b03821115612ab757612ab7612a30565b5060051b60200190565b6000612ad4612acf84612a9e565b612a6e565b8381529050602080820190600585811b850187811115612af357600080fd5b855b81811015612bc65780356001600160401b0380821115612b155760008081fd5b908801906040828c031215612b2a5760008081fd5b612b32612a46565b612b3b836129ea565b81528683013582811115612b4f5760008081fd5b8084019350508b601f840112612b6757600091508182fd5b82359150612b77612acf83612a9e565b82815291861b8301870191878101908d841115612b945760008081fd5b938801935b83851015612bb257843582529388019390880190612b99565b828901525087525050938301938301612af5565b50505050509392505050565b600060208284031215612be457600080fd5b81356001600160401b03811115612bfa57600080fd5b8201601f81018413612c0b57600080fd5b61169b84823560208401612ac1565b600080600060608486031215612c2f57600080fd5b612c38846129ea565b9250612c46602085016129ea565b9150604084013590509250925092565b60008060408385031215612c6957600080fd5b50508035926020909101359150565b60008060408385031215612c8b57600080fd5b82359150612c9b602084016129ea565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ce55783516001600160a01b031683529284019291840191600101612cc0565b50909695505050505050565b600060208284031215612d0357600080fd5b610f40826129ea565b80356001600160601b0381168114612a0157600080fd5b600080600060608486031215612d3857600080fd5b83359250612d48602085016129ea565b9150612d5660408501612d0c565b90509250925092565b60006001600160401b03831115612d7857612d78612a30565b612d8b601f8401601f1916602001612a6e565b9050828152838383011115612d9f57600080fd5b828260208301376000602084830101529392505050565b600060208284031215612dc857600080fd5b81356001600160401b03811115612dde57600080fd5b8201601f81018413612def57600080fd5b61169b84823560208401612d5f565b60008060408385031215612e1157600080fd5b612e1a836129ea565b9150612c9b60208401612d0c565b8015158114610f1057600080fd5b60008060408385031215612e4957600080fd5b612e52836129ea565b91506020830135612e6281612e28565b809150509250929050565b60008083601f840112612e7f57600080fd5b5081356001600160401b03811115612e9657600080fd5b6020830191508360208260051b8501011115610a9857600080fd5b60008060008060608587031215612ec757600080fd5b84356001600160401b03811115612edd57600080fd5b612ee987828801612e6d565b9095509350612efc9050602086016129ea565b9150612f0a60408601612d0c565b905092959194509250565b60008060008060808587031215612f2b57600080fd5b612f34856129ea565b9350612f42602086016129ea565b92506040850135915060608501356001600160401b03811115612f6457600080fd5b8501601f81018713612f7557600080fd5b612f8487823560208401612d5f565b91505092959194509250565b60008060208385031215612fa357600080fd5b82356001600160401b03811115612fb957600080fd5b612fc585828601612e6d565b90969095509350505050565b60008060408385031215612fe457600080fd5b612fed836129ea565b9150612c9b602084016129ea565b6000808335601e1984360301811261301257600080fd5b8301803591506001600160401b0382111561302c57600080fd5b6020019150600581901b3603821315610a9857600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016130825761308261305a565b5060010190565b600181811c9082168061309d57607f821691505b6020821081036130bd57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156130d557600080fd5b8151610f4081612e28565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b808202811582820484141761074d5761074d61305a565b60008261316157634e487b7160e01b600052601260045260246000fd5b500490565b6000816131755761317561305a565b506000190190565b601f82111561096257600081815260208120601f850160051c810160208610156131a45750805b601f850160051c820191505b81811015611223578281556001016131b0565b81516001600160401b038111156131dc576131dc612a30565b6131f0816131ea8454613089565b8461317d565b602080601f831160018114613225576000841561320d5750858301515b600019600386901b1c1916600185901b178555611223565b600085815260208120601f198616915b8281101561325457888601518255948401946001909101908401613235565b50858210156132725787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000835161329481846020880161296e565b8351908301906132a881836020880161296e565b01949350505050565b8082018082111561074d5761074d61305a565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161339881601785016020880161296e565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516133c981602884016020880161296e565b01602801949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061344d90830184612992565b9695505050505050565b60006020828403121561346957600080fd5b8151610f408161293b565b8181038181111561074d5761074d61305a565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220db78f674a75be30e896244d83179c8c4f1b45519e52de44c0f337b384795efbc64736f6c63430008110033";
|
|
32156
32782
|
const isSuperArgs$1 = (xs) => xs.length > 1;
|
|
32157
32783
|
class ImmutableERC721MintByID__factory extends ContractFactory {
|
|
32158
32784
|
constructor(...args) {
|
|
@@ -32163,11 +32789,11 @@ class ImmutableERC721MintByID__factory extends ContractFactory {
|
|
|
32163
32789
|
super(_abi$1, _bytecode$1, args[0]);
|
|
32164
32790
|
}
|
|
32165
32791
|
}
|
|
32166
|
-
deploy(owner, name_, symbol_, baseURI_, contractURI_,
|
|
32167
|
-
return super.deploy(owner, name_, symbol_, baseURI_, contractURI_,
|
|
32792
|
+
deploy(owner, name_, symbol_, baseURI_, contractURI_, _operatorAllowlist, _receiver, _feeNumerator, overrides) {
|
|
32793
|
+
return super.deploy(owner, name_, symbol_, baseURI_, contractURI_, _operatorAllowlist, _receiver, _feeNumerator, overrides || {});
|
|
32168
32794
|
}
|
|
32169
|
-
getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_,
|
|
32170
|
-
return super.getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_,
|
|
32795
|
+
getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_, _operatorAllowlist, _receiver, _feeNumerator, overrides) {
|
|
32796
|
+
return super.getDeployTransaction(owner, name_, symbol_, baseURI_, contractURI_, _operatorAllowlist, _receiver, _feeNumerator, overrides || {});
|
|
32171
32797
|
}
|
|
32172
32798
|
attach(address) {
|
|
32173
32799
|
return super.attach(address);
|
|
@@ -32283,9 +32909,7 @@ class ERC721 {
|
|
|
32283
32909
|
* @returns the approved address for a token ID, or zero if no address set.
|
|
32284
32910
|
*/
|
|
32285
32911
|
async getApproved(provider, tokenId, overrides = {}) {
|
|
32286
|
-
return await this.contract
|
|
32287
|
-
.connect(provider)
|
|
32288
|
-
.getApproved(tokenId, overrides);
|
|
32912
|
+
return await this.contract.connect(provider).getApproved(tokenId, overrides);
|
|
32289
32913
|
}
|
|
32290
32914
|
/**
|
|
32291
32915
|
* @returns the role admin address.
|
|
@@ -32297,33 +32921,25 @@ class ERC721 {
|
|
|
32297
32921
|
* @returns the role member address at a particular index.
|
|
32298
32922
|
*/
|
|
32299
32923
|
async getRoleMember(provider, role, index, overrides = {}) {
|
|
32300
|
-
return await this.contract
|
|
32301
|
-
.connect(provider)
|
|
32302
|
-
.getRoleMember(role, index, overrides);
|
|
32924
|
+
return await this.contract.connect(provider).getRoleMember(role, index, overrides);
|
|
32303
32925
|
}
|
|
32304
32926
|
/**
|
|
32305
32927
|
* @returns the role member count as a BigNumber.
|
|
32306
32928
|
*/
|
|
32307
32929
|
async getRoleMemberCount(provider, role, overrides = {}) {
|
|
32308
|
-
return await this.contract
|
|
32309
|
-
.connect(provider)
|
|
32310
|
-
.getRoleMemberCount(role, overrides);
|
|
32930
|
+
return await this.contract.connect(provider).getRoleMemberCount(role, overrides);
|
|
32311
32931
|
}
|
|
32312
32932
|
/**
|
|
32313
32933
|
* @returns a boolean for whether an account has a particular role.
|
|
32314
32934
|
*/
|
|
32315
32935
|
async hasRole(provider, role, account, overrides = {}) {
|
|
32316
|
-
return await this.contract
|
|
32317
|
-
.connect(provider)
|
|
32318
|
-
.hasRole(role, account, overrides);
|
|
32936
|
+
return await this.contract.connect(provider).hasRole(role, account, overrides);
|
|
32319
32937
|
}
|
|
32320
32938
|
/**
|
|
32321
32939
|
* @returns a booolean that tells whether an operator is approved by a given owner.
|
|
32322
32940
|
*/
|
|
32323
32941
|
async isApprovedForAll(provider, owner, operator, overrides = {}) {
|
|
32324
|
-
return await this.contract
|
|
32325
|
-
.connect(provider)
|
|
32326
|
-
.isApprovedForAll(owner, operator, overrides);
|
|
32942
|
+
return await this.contract.connect(provider).isApprovedForAll(owner, operator, overrides);
|
|
32327
32943
|
}
|
|
32328
32944
|
/**
|
|
32329
32945
|
* @returns the name of the contract as a string.
|
|
@@ -32338,18 +32954,16 @@ class ERC721 {
|
|
|
32338
32954
|
return await this.contract.connect(provider).ownerOf(tokenId, overrides);
|
|
32339
32955
|
}
|
|
32340
32956
|
/**
|
|
32341
|
-
* @returns the
|
|
32957
|
+
* @returns the operator allowlist as a string.
|
|
32342
32958
|
*/
|
|
32343
|
-
async
|
|
32344
|
-
return await this.contract.connect(provider).
|
|
32959
|
+
async operatorAllowlist(provider, overrides = {}) {
|
|
32960
|
+
return await this.contract.connect(provider).operatorAllowlist(overrides);
|
|
32345
32961
|
}
|
|
32346
32962
|
/**
|
|
32347
32963
|
* @returns the royalty information for a particular tokenId.
|
|
32348
32964
|
*/
|
|
32349
32965
|
async royaltyInfo(provider, _tokenId, _salePrice, overrides = {}) {
|
|
32350
|
-
return await this.contract
|
|
32351
|
-
.connect(provider)
|
|
32352
|
-
.royaltyInfo(_tokenId, _salePrice, overrides);
|
|
32966
|
+
return await this.contract.connect(provider).royaltyInfo(_tokenId, _salePrice, overrides);
|
|
32353
32967
|
}
|
|
32354
32968
|
/**
|
|
32355
32969
|
* @returns the symbol of the contract as a string.
|
|
@@ -32535,10 +33149,10 @@ class ERC721 {
|
|
|
32535
33149
|
return await this.contract.populateTransaction.setNFTRoyaltyReceiverBatch(tokenIds, receiver, feeNumerator, overrides);
|
|
32536
33150
|
}
|
|
32537
33151
|
/**
|
|
32538
|
-
* @returns a populated transaction for the
|
|
33152
|
+
* @returns a populated transaction for the setOperatorAllowlistRegistry contract function
|
|
32539
33153
|
*/
|
|
32540
|
-
async
|
|
32541
|
-
return await this.contract.populateTransaction.
|
|
33154
|
+
async populateSetOperatorAllowlistRegistry(_operatorAllowlist, overrides = {}) {
|
|
33155
|
+
return await this.contract.populateTransaction.setOperatorAllowlistRegistry(_operatorAllowlist, overrides);
|
|
32542
33156
|
}
|
|
32543
33157
|
}
|
|
32544
33158
|
|
|
@@ -32651,10 +33265,10 @@ class ERC721MintByID {
|
|
|
32651
33265
|
return await this.contract.connect(provider).ownerOf(tokenId, overrides);
|
|
32652
33266
|
}
|
|
32653
33267
|
/**
|
|
32654
|
-
* @returns the
|
|
33268
|
+
* @returns the operator allowlist as a string.
|
|
32655
33269
|
*/
|
|
32656
|
-
async
|
|
32657
|
-
return await this.contract.connect(provider).
|
|
33270
|
+
async operatorAllowlist(provider, overrides = {}) {
|
|
33271
|
+
return await this.contract.connect(provider).operatorAllowlist(overrides);
|
|
32658
33272
|
}
|
|
32659
33273
|
/**
|
|
32660
33274
|
* @returns the royalty information for a particular tokenId.
|
|
@@ -32812,10 +33426,10 @@ class ERC721MintByID {
|
|
|
32812
33426
|
return await this.contract.populateTransaction.setNFTRoyaltyReceiverBatch(tokenIds, receiver, feeNumerator, overrides);
|
|
32813
33427
|
}
|
|
32814
33428
|
/**
|
|
32815
|
-
* @returns a populated transaction for the
|
|
33429
|
+
* @returns a populated transaction for the setOperatorAllowlistRegistry contract function
|
|
32816
33430
|
*/
|
|
32817
|
-
async
|
|
32818
|
-
return await this.contract.populateTransaction.
|
|
33431
|
+
async populateSetOperatorAllowlistRegistry(_operatorAllowlist, overrides = {}) {
|
|
33432
|
+
return await this.contract.populateTransaction.setOperatorAllowlistRegistry(_operatorAllowlist, overrides);
|
|
32819
33433
|
}
|
|
32820
33434
|
}
|
|
32821
33435
|
|