@paulstinchcombe/gasless-nft-tx 0.2.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -1
- package/dist/index.js.map +1 -1
- package/dist/kami-deployment.d.ts +36 -0
- package/dist/kami-deployment.d.ts.map +1 -0
- package/dist/kami-deployment.js +233 -0
- package/dist/kami-deployment.js.map +1 -0
- package/dist/kami-library-deployment.d.ts +26 -0
- package/dist/kami-library-deployment.d.ts.map +1 -0
- package/dist/kami-library-deployment.js +135 -0
- package/dist/kami-library-deployment.js.map +1 -0
- package/dist/kami-operations-1155c.d.ts +267 -0
- package/dist/kami-operations-1155c.d.ts.map +1 -0
- package/dist/kami-operations-1155c.js +495 -0
- package/dist/kami-operations-1155c.js.map +1 -0
- package/dist/kami-operations-721ac.d.ts +234 -0
- package/dist/kami-operations-721ac.d.ts.map +1 -0
- package/dist/kami-operations-721ac.js +446 -0
- package/dist/kami-operations-721ac.js.map +1 -0
- package/dist/kami-operations-721c.d.ts +206 -0
- package/dist/kami-operations-721c.d.ts.map +1 -0
- package/dist/kami-operations-721c.js +400 -0
- package/dist/kami-operations-721c.js.map +1 -0
- package/dist/kami-types.d.ts +250 -0
- package/dist/kami-types.d.ts.map +1 -0
- package/dist/kami-types.js +17 -0
- package/dist/kami-types.js.map +1 -0
- package/package.json +2 -1
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,13 @@ export { NftListingOperations, createNftListingOperations } from './nft-listing'
|
|
|
8
8
|
export type { NftToken, NftMetadata, NftListingResult, NftListingConfig } from './nft-listing';
|
|
9
9
|
export { deploySimpleAccountFactory, createSimpleAccount, getSimpleAccountAddressFromFactory, isSimpleAccountDeployed, } from './SimpleAccountDeployer';
|
|
10
10
|
export { SIMPLE_ACCOUNT_BYTECODE, SIMPLE_ACCOUNT_FACTORY_BYTECODE, SIMPLE_ACCOUNT_ABI, SIMPLE_ACCOUNT_FACTORY_ABI, getSimpleAccountAddress, } from './SmartContractWallet/SimpleAccount';
|
|
11
|
+
export * as KAMI721C from './kami-operations-721c';
|
|
12
|
+
export * as KAMI721AC from './kami-operations-721ac';
|
|
13
|
+
export * as KAMI1155C from './kami-operations-1155c';
|
|
14
|
+
export { deployKAMI721C, deployKAMI721AC, deployKAMI1155C, deployKamiContract } from './kami-deployment';
|
|
15
|
+
export { deployKamiLibraries, getLibraryLinks, verifyLibraryDeployment } from './kami-library-deployment';
|
|
16
|
+
export type { RoyaltyData, RentalInfo, KAMI721CDeployParams, KAMI721ACDeployParams, KAMI1155CDeployParams, LibraryDeploymentResult, ContractDeploymentResult, MintParams, ClaimParams, BatchClaimParams, Mint1155Params, MintBatch1155Params, RentTokenParams, ExtendRentalParams, SellTokenParams, SellToken1155Params, SetRoyaltiesParams, SetTokenRoyaltiesParams, UpdatePlatformCommissionParams, SetMintPriceParams, SetBaseURIParams, BurnParams, Burn1155Params, PauseParams, } from './kami-types';
|
|
17
|
+
export { KamiContractType } from './kami-types';
|
|
11
18
|
export type { NftConstructorArgs } from './types';
|
|
12
19
|
export type { Address, Hex } from 'viem';
|
|
13
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGlG,OAAO,EACN,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGzH,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AACpG,YAAY,EACX,mBAAmB,EACnB,YAAY,EACZ,UAAU,IAAI,uBAAuB,EACrC,SAAS,EACT,uBAAuB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACjF,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG/F,OAAO,EACN,0BAA0B,EAC1B,mBAAmB,EACnB,kCAAkC,EAClC,uBAAuB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACN,uBAAuB,EACvB,+BAA+B,EAC/B,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,GACvB,MAAM,qCAAqC,CAAC;AAG7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGlG,OAAO,EACN,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGzH,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AACpG,YAAY,EACX,mBAAmB,EACnB,YAAY,EACZ,UAAU,IAAI,uBAAuB,EACrC,SAAS,EACT,uBAAuB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACjF,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG/F,OAAO,EACN,0BAA0B,EAC1B,mBAAmB,EACnB,kCAAkC,EAClC,uBAAuB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACN,uBAAuB,EACvB,+BAA+B,EAC/B,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,GACvB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEzG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAG1G,YAAY,EACX,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,8BAA8B,EAC9B,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSimpleAccountAddress = exports.SIMPLE_ACCOUNT_FACTORY_ABI = exports.SIMPLE_ACCOUNT_ABI = exports.SIMPLE_ACCOUNT_FACTORY_BYTECODE = exports.SIMPLE_ACCOUNT_BYTECODE = exports.isSimpleAccountDeployed = exports.getSimpleAccountAddressFromFactory = exports.createSimpleAccount = exports.deploySimpleAccountFactory = exports.createNftListingOperations = exports.NftListingOperations = exports.createSimpleAccountOperations = exports.SimpleAccountOperations = exports.createBackendMintHandler = exports.createSimpleAccountMintHandler = exports.createEoaMintHandler = exports.BackendMintHandler = exports.SimpleAccountMintHandler = exports.EoaMintHandler = exports.mintToSelf = exports.safeMint = exports.mintERC721A = exports.executeCustomNftCall = exports.deployContractFromEOA = exports.encodeNftConstructorArgs = void 0;
|
|
36
|
+
exports.KamiContractType = exports.verifyLibraryDeployment = exports.getLibraryLinks = exports.deployKamiLibraries = exports.deployKamiContract = exports.deployKAMI1155C = exports.deployKAMI721AC = exports.deployKAMI721C = exports.KAMI1155C = exports.KAMI721AC = exports.KAMI721C = exports.getSimpleAccountAddress = exports.SIMPLE_ACCOUNT_FACTORY_ABI = exports.SIMPLE_ACCOUNT_ABI = exports.SIMPLE_ACCOUNT_FACTORY_BYTECODE = exports.SIMPLE_ACCOUNT_BYTECODE = exports.isSimpleAccountDeployed = exports.getSimpleAccountAddressFromFactory = exports.createSimpleAccount = exports.deploySimpleAccountFactory = exports.createNftListingOperations = exports.NftListingOperations = exports.createSimpleAccountOperations = exports.SimpleAccountOperations = exports.createBackendMintHandler = exports.createSimpleAccountMintHandler = exports.createEoaMintHandler = exports.BackendMintHandler = exports.SimpleAccountMintHandler = exports.EoaMintHandler = exports.mintToSelf = exports.safeMint = exports.mintERC721A = exports.executeCustomNftCall = exports.deployContractFromEOA = exports.encodeNftConstructorArgs = void 0;
|
|
4
37
|
// Main exports for the gasless NFT transaction library
|
|
5
38
|
var nft_operations_1 = require("./nft-operations");
|
|
6
39
|
Object.defineProperty(exports, "encodeNftConstructorArgs", { enumerable: true, get: function () { return nft_operations_1.encodeNftConstructorArgs; } });
|
|
@@ -39,4 +72,20 @@ Object.defineProperty(exports, "SIMPLE_ACCOUNT_FACTORY_BYTECODE", { enumerable:
|
|
|
39
72
|
Object.defineProperty(exports, "SIMPLE_ACCOUNT_ABI", { enumerable: true, get: function () { return SimpleAccount_1.SIMPLE_ACCOUNT_ABI; } });
|
|
40
73
|
Object.defineProperty(exports, "SIMPLE_ACCOUNT_FACTORY_ABI", { enumerable: true, get: function () { return SimpleAccount_1.SIMPLE_ACCOUNT_FACTORY_ABI; } });
|
|
41
74
|
Object.defineProperty(exports, "getSimpleAccountAddress", { enumerable: true, get: function () { return SimpleAccount_1.getSimpleAccountAddress; } });
|
|
75
|
+
// KAMI NFT operations
|
|
76
|
+
exports.KAMI721C = __importStar(require("./kami-operations-721c"));
|
|
77
|
+
exports.KAMI721AC = __importStar(require("./kami-operations-721ac"));
|
|
78
|
+
exports.KAMI1155C = __importStar(require("./kami-operations-1155c"));
|
|
79
|
+
// KAMI NFT deployment
|
|
80
|
+
var kami_deployment_1 = require("./kami-deployment");
|
|
81
|
+
Object.defineProperty(exports, "deployKAMI721C", { enumerable: true, get: function () { return kami_deployment_1.deployKAMI721C; } });
|
|
82
|
+
Object.defineProperty(exports, "deployKAMI721AC", { enumerable: true, get: function () { return kami_deployment_1.deployKAMI721AC; } });
|
|
83
|
+
Object.defineProperty(exports, "deployKAMI1155C", { enumerable: true, get: function () { return kami_deployment_1.deployKAMI1155C; } });
|
|
84
|
+
Object.defineProperty(exports, "deployKamiContract", { enumerable: true, get: function () { return kami_deployment_1.deployKamiContract; } });
|
|
85
|
+
var kami_library_deployment_1 = require("./kami-library-deployment");
|
|
86
|
+
Object.defineProperty(exports, "deployKamiLibraries", { enumerable: true, get: function () { return kami_library_deployment_1.deployKamiLibraries; } });
|
|
87
|
+
Object.defineProperty(exports, "getLibraryLinks", { enumerable: true, get: function () { return kami_library_deployment_1.getLibraryLinks; } });
|
|
88
|
+
Object.defineProperty(exports, "verifyLibraryDeployment", { enumerable: true, get: function () { return kami_library_deployment_1.verifyLibraryDeployment; } });
|
|
89
|
+
var kami_types_1 = require("./kami-types");
|
|
90
|
+
Object.defineProperty(exports, "KamiContractType", { enumerable: true, get: function () { return kami_types_1.KamiContractType; } });
|
|
42
91
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,mDAAmF;AAA1E,0HAAA,wBAAwB,OAAA;AAAE,uHAAA,qBAAqB,OAAA;AAExD,4DAA4D;AAC5D,iEAAkG;AAAzF,6HAAA,oBAAoB,OAAA;AAAE,oHAAA,WAAW,OAAA;AAAE,iHAAA,QAAQ,OAAA;AAAE,mHAAA,UAAU,OAAA;AAEhE,4DAA4D;AAC5D,+CAOwB;AANvB,8GAAA,cAAc,OAAA;AACd,wHAAA,wBAAwB,OAAA;AACxB,kHAAA,kBAAkB,OAAA;AAClB,oHAAA,oBAAoB,OAAA;AACpB,8HAAA,8BAA8B,OAAA;AAC9B,wHAAA,wBAAwB,OAAA;AAIzB,oEAAoE;AACpE,uEAAoG;AAA3F,mIAAA,uBAAuB,OAAA;AAAE,yIAAA,6BAA6B,OAAA;AAS/D,yBAAyB;AACzB,6CAAiF;AAAxE,mHAAA,oBAAoB,OAAA;AAAE,yHAAA,0BAA0B,OAAA;AAGzD,qCAAqC;AACrC,iEAKiC;AAJhC,mIAAA,0BAA0B,OAAA;AAC1B,4HAAA,mBAAmB,OAAA;AACnB,2IAAA,kCAAkC,OAAA;AAClC,gIAAA,uBAAuB,OAAA;AAGxB,qEAM6C;AAL5C,wHAAA,uBAAuB,OAAA;AACvB,gIAAA,+BAA+B,OAAA;AAC/B,mHAAA,kBAAkB,OAAA;AAClB,2HAAA,0BAA0B,OAAA;AAC1B,wHAAA,uBAAuB,OAAA;AAGxB,sBAAsB;AACtB,mEAAmD;AACnD,qEAAqD;AACrD,qEAAqD;AAErD,sBAAsB;AACtB,qDAAyG;AAAhG,iHAAA,cAAc,OAAA;AAAE,kHAAA,eAAe,OAAA;AAAE,kHAAA,eAAe,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAE7E,qEAA0G;AAAjG,8HAAA,mBAAmB,OAAA;AAAE,0HAAA,eAAe,OAAA;AAAE,kIAAA,uBAAuB,OAAA;AA8BtE,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file KAMI NFT Contract Deployment
|
|
3
|
+
* @description Deployment utilities for KAMI721C, KAMI721AC, and KAMI1155C contracts
|
|
4
|
+
*/
|
|
5
|
+
import { ethers } from 'ethers';
|
|
6
|
+
import { KAMI721CDeployParams, KAMI721ACDeployParams, KAMI1155CDeployParams, ContractDeploymentResult, KamiContractType } from './kami-types';
|
|
7
|
+
/**
|
|
8
|
+
* Deploy KAMI721C contract (Standard ERC721 with minting)
|
|
9
|
+
* @param signer Ethers signer to deploy with
|
|
10
|
+
* @param params Deployment parameters
|
|
11
|
+
* @returns Deployment result with contract address and library addresses
|
|
12
|
+
*/
|
|
13
|
+
export declare function deployKAMI721C(signer: ethers.Signer, params: KAMI721CDeployParams): Promise<ContractDeploymentResult>;
|
|
14
|
+
/**
|
|
15
|
+
* Deploy KAMI721AC contract (ERC721A with claiming features)
|
|
16
|
+
* @param signer Ethers signer to deploy with
|
|
17
|
+
* @param params Deployment parameters
|
|
18
|
+
* @returns Deployment result with contract address and library addresses
|
|
19
|
+
*/
|
|
20
|
+
export declare function deployKAMI721AC(signer: ethers.Signer, params: KAMI721ACDeployParams): Promise<ContractDeploymentResult>;
|
|
21
|
+
/**
|
|
22
|
+
* Deploy KAMI1155C contract (ERC1155 multi-token)
|
|
23
|
+
* @param signer Ethers signer to deploy with
|
|
24
|
+
* @param params Deployment parameters
|
|
25
|
+
* @returns Deployment result with contract address and library addresses
|
|
26
|
+
*/
|
|
27
|
+
export declare function deployKAMI1155C(signer: ethers.Signer, params: KAMI1155CDeployParams): Promise<ContractDeploymentResult>;
|
|
28
|
+
/**
|
|
29
|
+
* Deploy a KAMI contract based on type
|
|
30
|
+
* @param signer Ethers signer to deploy with
|
|
31
|
+
* @param contractType Type of contract to deploy
|
|
32
|
+
* @param params Deployment parameters (type-specific)
|
|
33
|
+
* @returns Deployment result
|
|
34
|
+
*/
|
|
35
|
+
export declare function deployKamiContract(signer: ethers.Signer, contractType: KamiContractType, params: KAMI721CDeployParams | KAMI721ACDeployParams | KAMI1155CDeployParams): Promise<ContractDeploymentResult>;
|
|
36
|
+
//# sourceMappingURL=kami-deployment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kami-deployment.d.ts","sourceRoot":"","sources":["../src/kami-deployment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACN,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAEhB,MAAM,cAAc,CAAC;AAwBtB;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA4D3H;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAyD7H;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAuD7H;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,YAAY,EAAE,gBAAgB,EAC9B,MAAM,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,qBAAqB,GAC1E,OAAO,CAAC,wBAAwB,CAAC,CAWnC"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file KAMI NFT Contract Deployment
|
|
4
|
+
* @description Deployment utilities for KAMI721C, KAMI721AC, and KAMI1155C contracts
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.deployKAMI721C = deployKAMI721C;
|
|
41
|
+
exports.deployKAMI721AC = deployKAMI721AC;
|
|
42
|
+
exports.deployKAMI1155C = deployKAMI1155C;
|
|
43
|
+
exports.deployKamiContract = deployKamiContract;
|
|
44
|
+
const ethers_1 = require("ethers");
|
|
45
|
+
const kami_types_1 = require("./kami-types");
|
|
46
|
+
const kami_library_deployment_1 = require("./kami-library-deployment");
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
/**
|
|
50
|
+
* Load compiled contract artifact
|
|
51
|
+
* @param contractName Name of the contract
|
|
52
|
+
* @returns Contract artifact with ABI and bytecode
|
|
53
|
+
*/
|
|
54
|
+
function loadMainContractArtifact(contractName) {
|
|
55
|
+
const artifactPath = path.join(__dirname, '../src/KAMI-NFTs/artifacts/contracts', `${contractName}.sol`, `${contractName}.json`);
|
|
56
|
+
if (!fs.existsSync(artifactPath)) {
|
|
57
|
+
throw new Error(`Contract artifact not found: ${artifactPath}`);
|
|
58
|
+
}
|
|
59
|
+
const artifact = JSON.parse(fs.readFileSync(artifactPath, 'utf8'));
|
|
60
|
+
return {
|
|
61
|
+
abi: artifact.abi,
|
|
62
|
+
bytecode: artifact.bytecode,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Deploy KAMI721C contract (Standard ERC721 with minting)
|
|
67
|
+
* @param signer Ethers signer to deploy with
|
|
68
|
+
* @param params Deployment parameters
|
|
69
|
+
* @returns Deployment result with contract address and library addresses
|
|
70
|
+
*/
|
|
71
|
+
async function deployKAMI721C(signer, params) {
|
|
72
|
+
console.log('Starting KAMI721C deployment...');
|
|
73
|
+
// Deploy or use existing libraries
|
|
74
|
+
let libraries;
|
|
75
|
+
if (params.libraries && params.libraries.kamiNFTCore) {
|
|
76
|
+
libraries = {
|
|
77
|
+
kamiNFTCore: params.libraries.kamiNFTCore,
|
|
78
|
+
kamiPlatform: params.libraries.kamiPlatform,
|
|
79
|
+
kamiRoyalty: params.libraries.kamiRoyalty,
|
|
80
|
+
kamiRental: params.libraries.kamiRental,
|
|
81
|
+
kamiTransfer: params.libraries.kamiTransfer,
|
|
82
|
+
};
|
|
83
|
+
console.log('Using provided library addresses');
|
|
84
|
+
// Verify libraries are deployed
|
|
85
|
+
const provider = signer.provider;
|
|
86
|
+
const verified = await (0, kami_library_deployment_1.verifyLibraryDeployment)(provider, libraries);
|
|
87
|
+
if (!verified) {
|
|
88
|
+
throw new Error('Library verification failed');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
console.log('Deploying new libraries...');
|
|
93
|
+
libraries = await (0, kami_library_deployment_1.deployKamiLibraries)(signer);
|
|
94
|
+
}
|
|
95
|
+
// Load contract artifact
|
|
96
|
+
const { abi, bytecode } = loadMainContractArtifact('KAMI721C');
|
|
97
|
+
// Create factory with library links
|
|
98
|
+
const libraryLinks = (0, kami_library_deployment_1.getLibraryLinks)(libraries);
|
|
99
|
+
const factory = new ethers_1.ethers.ContractFactory(abi, bytecode, signer).connect(signer);
|
|
100
|
+
// Link libraries - This is a placeholder as ethers v6 handles linking differently
|
|
101
|
+
// In practice, you may need to use hardhat deployment scripts or manually link bytecode
|
|
102
|
+
// Deploy contract
|
|
103
|
+
console.log('Deploying KAMI721C contract...');
|
|
104
|
+
const contract = await factory.deploy(params.paymentToken, params.name, params.symbol, params.baseTokenURI, params.initialMintPrice, params.platformAddress, params.platformCommissionPercentage);
|
|
105
|
+
await contract.waitForDeployment();
|
|
106
|
+
const contractAddress = await contract.getAddress();
|
|
107
|
+
const deploymentTx = contract.deploymentTransaction();
|
|
108
|
+
console.log(`KAMI721C deployed at: ${contractAddress}`);
|
|
109
|
+
return {
|
|
110
|
+
contractAddress,
|
|
111
|
+
contractType: kami_types_1.KamiContractType.KAMI721C,
|
|
112
|
+
libraries,
|
|
113
|
+
deploymentTransaction: deploymentTx.hash,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Deploy KAMI721AC contract (ERC721A with claiming features)
|
|
118
|
+
* @param signer Ethers signer to deploy with
|
|
119
|
+
* @param params Deployment parameters
|
|
120
|
+
* @returns Deployment result with contract address and library addresses
|
|
121
|
+
*/
|
|
122
|
+
async function deployKAMI721AC(signer, params) {
|
|
123
|
+
console.log('Starting KAMI721AC deployment...');
|
|
124
|
+
// Deploy or use existing libraries
|
|
125
|
+
let libraries;
|
|
126
|
+
if (params.libraries && params.libraries.kamiNFTCore) {
|
|
127
|
+
libraries = {
|
|
128
|
+
kamiNFTCore: params.libraries.kamiNFTCore,
|
|
129
|
+
kamiPlatform: params.libraries.kamiPlatform,
|
|
130
|
+
kamiRoyalty: params.libraries.kamiRoyalty,
|
|
131
|
+
kamiRental: params.libraries.kamiRental,
|
|
132
|
+
kamiTransfer: params.libraries.kamiTransfer,
|
|
133
|
+
};
|
|
134
|
+
console.log('Using provided library addresses');
|
|
135
|
+
// Verify libraries are deployed
|
|
136
|
+
const provider = signer.provider;
|
|
137
|
+
const verified = await (0, kami_library_deployment_1.verifyLibraryDeployment)(provider, libraries);
|
|
138
|
+
if (!verified) {
|
|
139
|
+
throw new Error('Library verification failed');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
console.log('Deploying new libraries...');
|
|
144
|
+
libraries = await (0, kami_library_deployment_1.deployKamiLibraries)(signer);
|
|
145
|
+
}
|
|
146
|
+
// Load contract artifact
|
|
147
|
+
const { abi, bytecode } = loadMainContractArtifact('KAMI721AC');
|
|
148
|
+
// Create factory with library links
|
|
149
|
+
const libraryLinks = (0, kami_library_deployment_1.getLibraryLinks)(libraries);
|
|
150
|
+
const factory = new ethers_1.ethers.ContractFactory(abi, bytecode, signer).connect(signer);
|
|
151
|
+
// Deploy contract
|
|
152
|
+
console.log('Deploying KAMI721AC contract...');
|
|
153
|
+
const contract = await factory.deploy(params.paymentToken, params.name, params.symbol, params.baseTokenURI, params.initialMintPrice, params.platformAddress, params.platformCommissionPercentage);
|
|
154
|
+
await contract.waitForDeployment();
|
|
155
|
+
const contractAddress = await contract.getAddress();
|
|
156
|
+
const deploymentTx = contract.deploymentTransaction();
|
|
157
|
+
console.log(`KAMI721AC deployed at: ${contractAddress}`);
|
|
158
|
+
return {
|
|
159
|
+
contractAddress,
|
|
160
|
+
contractType: kami_types_1.KamiContractType.KAMI721AC,
|
|
161
|
+
libraries,
|
|
162
|
+
deploymentTransaction: deploymentTx.hash,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Deploy KAMI1155C contract (ERC1155 multi-token)
|
|
167
|
+
* @param signer Ethers signer to deploy with
|
|
168
|
+
* @param params Deployment parameters
|
|
169
|
+
* @returns Deployment result with contract address and library addresses
|
|
170
|
+
*/
|
|
171
|
+
async function deployKAMI1155C(signer, params) {
|
|
172
|
+
console.log('Starting KAMI1155C deployment...');
|
|
173
|
+
// Deploy or use existing libraries
|
|
174
|
+
let libraries;
|
|
175
|
+
if (params.libraries && params.libraries.kamiNFTCore) {
|
|
176
|
+
libraries = {
|
|
177
|
+
kamiNFTCore: params.libraries.kamiNFTCore,
|
|
178
|
+
kamiPlatform: params.libraries.kamiPlatform,
|
|
179
|
+
kamiRoyalty: params.libraries.kamiRoyalty,
|
|
180
|
+
kamiRental: params.libraries.kamiRental,
|
|
181
|
+
kamiTransfer: params.libraries.kamiTransfer,
|
|
182
|
+
};
|
|
183
|
+
console.log('Using provided library addresses');
|
|
184
|
+
// Verify libraries are deployed
|
|
185
|
+
const provider = signer.provider;
|
|
186
|
+
const verified = await (0, kami_library_deployment_1.verifyLibraryDeployment)(provider, libraries);
|
|
187
|
+
if (!verified) {
|
|
188
|
+
throw new Error('Library verification failed');
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
console.log('Deploying new libraries...');
|
|
193
|
+
libraries = await (0, kami_library_deployment_1.deployKamiLibraries)(signer);
|
|
194
|
+
}
|
|
195
|
+
// Load contract artifact
|
|
196
|
+
const { abi, bytecode } = loadMainContractArtifact('KAMI1155C');
|
|
197
|
+
// Create factory with library links
|
|
198
|
+
const libraryLinks = (0, kami_library_deployment_1.getLibraryLinks)(libraries);
|
|
199
|
+
const factory = new ethers_1.ethers.ContractFactory(abi, bytecode, signer).connect(signer);
|
|
200
|
+
// Deploy contract
|
|
201
|
+
console.log('Deploying KAMI1155C contract...');
|
|
202
|
+
const contract = await factory.deploy(params.paymentToken, params.baseTokenURI, params.initialMintPrice, params.platformAddress, params.platformCommissionPercentage);
|
|
203
|
+
await contract.waitForDeployment();
|
|
204
|
+
const contractAddress = await contract.getAddress();
|
|
205
|
+
const deploymentTx = contract.deploymentTransaction();
|
|
206
|
+
console.log(`KAMI1155C deployed at: ${contractAddress}`);
|
|
207
|
+
return {
|
|
208
|
+
contractAddress,
|
|
209
|
+
contractType: kami_types_1.KamiContractType.KAMI1155C,
|
|
210
|
+
libraries,
|
|
211
|
+
deploymentTransaction: deploymentTx.hash,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Deploy a KAMI contract based on type
|
|
216
|
+
* @param signer Ethers signer to deploy with
|
|
217
|
+
* @param contractType Type of contract to deploy
|
|
218
|
+
* @param params Deployment parameters (type-specific)
|
|
219
|
+
* @returns Deployment result
|
|
220
|
+
*/
|
|
221
|
+
async function deployKamiContract(signer, contractType, params) {
|
|
222
|
+
switch (contractType) {
|
|
223
|
+
case kami_types_1.KamiContractType.KAMI721C:
|
|
224
|
+
return deployKAMI721C(signer, params);
|
|
225
|
+
case kami_types_1.KamiContractType.KAMI721AC:
|
|
226
|
+
return deployKAMI721AC(signer, params);
|
|
227
|
+
case kami_types_1.KamiContractType.KAMI1155C:
|
|
228
|
+
return deployKAMI1155C(signer, params);
|
|
229
|
+
default:
|
|
230
|
+
throw new Error(`Unknown contract type: ${contractType}`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=kami-deployment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kami-deployment.js","sourceRoot":"","sources":["../src/kami-deployment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file KAMI NFT Library Deployment
|
|
3
|
+
* @description Deployment utilities for shared KAMI NFT libraries
|
|
4
|
+
*/
|
|
5
|
+
import { ethers } from 'ethers';
|
|
6
|
+
import { LibraryDeploymentResult } from './kami-types';
|
|
7
|
+
/**
|
|
8
|
+
* Deploy all KAMI NFT shared libraries
|
|
9
|
+
* @param signer Ethers signer to deploy with
|
|
10
|
+
* @returns Object containing all deployed library addresses
|
|
11
|
+
*/
|
|
12
|
+
export declare function deployKamiLibraries(signer: ethers.Signer): Promise<LibraryDeploymentResult>;
|
|
13
|
+
/**
|
|
14
|
+
* Get library linking configuration for contract deployment
|
|
15
|
+
* @param libraries Library deployment result
|
|
16
|
+
* @returns Library links object for ContractFactory
|
|
17
|
+
*/
|
|
18
|
+
export declare function getLibraryLinks(libraries: LibraryDeploymentResult): Record<string, string>;
|
|
19
|
+
/**
|
|
20
|
+
* Verify if libraries are already deployed
|
|
21
|
+
* @param provider Ethers provider
|
|
22
|
+
* @param libraries Library addresses to verify
|
|
23
|
+
* @returns True if all libraries are deployed and have code
|
|
24
|
+
*/
|
|
25
|
+
export declare function verifyLibraryDeployment(provider: ethers.Provider, libraries: LibraryDeploymentResult): Promise<boolean>;
|
|
26
|
+
//# sourceMappingURL=kami-library-deployment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kami-library-deployment.d.ts","sourceRoot":"","sources":["../src/kami-library-deployment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAiDvD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAsBjG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ1F;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAe7H"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file KAMI NFT Library Deployment
|
|
4
|
+
* @description Deployment utilities for shared KAMI NFT libraries
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.deployKamiLibraries = deployKamiLibraries;
|
|
41
|
+
exports.getLibraryLinks = getLibraryLinks;
|
|
42
|
+
exports.verifyLibraryDeployment = verifyLibraryDeployment;
|
|
43
|
+
const ethers_1 = require("ethers");
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
/**
|
|
47
|
+
* Load compiled contract artifact
|
|
48
|
+
* @param contractName Name of the contract
|
|
49
|
+
* @returns Contract artifact with ABI and bytecode
|
|
50
|
+
*/
|
|
51
|
+
function loadContractArtifact(contractName) {
|
|
52
|
+
const artifactPath = path.join(__dirname, '../src/KAMI-NFTs/artifacts/contracts/libraries', `${contractName}.sol`, `${contractName}.json`);
|
|
53
|
+
if (!fs.existsSync(artifactPath)) {
|
|
54
|
+
throw new Error(`Contract artifact not found: ${artifactPath}`);
|
|
55
|
+
}
|
|
56
|
+
const artifact = JSON.parse(fs.readFileSync(artifactPath, 'utf8'));
|
|
57
|
+
return {
|
|
58
|
+
abi: artifact.abi,
|
|
59
|
+
bytecode: artifact.bytecode,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Deploy a single library contract
|
|
64
|
+
* @param signer Ethers signer to deploy with
|
|
65
|
+
* @param libraryName Name of the library to deploy
|
|
66
|
+
* @returns Deployed library address
|
|
67
|
+
*/
|
|
68
|
+
async function deployLibrary(signer, libraryName) {
|
|
69
|
+
console.log(`Deploying ${libraryName}...`);
|
|
70
|
+
const { abi, bytecode } = loadContractArtifact(libraryName);
|
|
71
|
+
const factory = new ethers_1.ethers.ContractFactory(abi, bytecode, signer);
|
|
72
|
+
const library = await factory.deploy();
|
|
73
|
+
await library.waitForDeployment();
|
|
74
|
+
const address = await library.getAddress();
|
|
75
|
+
console.log(`${libraryName} deployed at: ${address}`);
|
|
76
|
+
return address;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Deploy all KAMI NFT shared libraries
|
|
80
|
+
* @param signer Ethers signer to deploy with
|
|
81
|
+
* @returns Object containing all deployed library addresses
|
|
82
|
+
*/
|
|
83
|
+
async function deployKamiLibraries(signer) {
|
|
84
|
+
console.log('Starting KAMI NFT library deployment...');
|
|
85
|
+
// Deploy libraries in dependency order
|
|
86
|
+
const kamiNFTCore = await deployLibrary(signer, 'KamiNFTCore');
|
|
87
|
+
const kamiPlatform = await deployLibrary(signer, 'KamiPlatform');
|
|
88
|
+
const kamiRoyalty = await deployLibrary(signer, 'KamiRoyalty');
|
|
89
|
+
const kamiRental = await deployLibrary(signer, 'KamiRental');
|
|
90
|
+
const kamiTransfer = await deployLibrary(signer, 'KamiTransfer');
|
|
91
|
+
const result = {
|
|
92
|
+
kamiNFTCore,
|
|
93
|
+
kamiPlatform,
|
|
94
|
+
kamiRoyalty,
|
|
95
|
+
kamiRental,
|
|
96
|
+
kamiTransfer,
|
|
97
|
+
};
|
|
98
|
+
console.log('All KAMI NFT libraries deployed successfully!');
|
|
99
|
+
console.log(JSON.stringify(result, null, 2));
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get library linking configuration for contract deployment
|
|
104
|
+
* @param libraries Library deployment result
|
|
105
|
+
* @returns Library links object for ContractFactory
|
|
106
|
+
*/
|
|
107
|
+
function getLibraryLinks(libraries) {
|
|
108
|
+
return {
|
|
109
|
+
'contracts/libraries/KamiNFTCore.sol:KamiNFTCore': libraries.kamiNFTCore,
|
|
110
|
+
'contracts/libraries/KamiPlatform.sol:KamiPlatform': libraries.kamiPlatform,
|
|
111
|
+
'contracts/libraries/KamiRoyalty.sol:KamiRoyalty': libraries.kamiRoyalty,
|
|
112
|
+
'contracts/libraries/KamiRental.sol:KamiRental': libraries.kamiRental,
|
|
113
|
+
'contracts/libraries/KamiTransfer.sol:KamiTransfer': libraries.kamiTransfer,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Verify if libraries are already deployed
|
|
118
|
+
* @param provider Ethers provider
|
|
119
|
+
* @param libraries Library addresses to verify
|
|
120
|
+
* @returns True if all libraries are deployed and have code
|
|
121
|
+
*/
|
|
122
|
+
async function verifyLibraryDeployment(provider, libraries) {
|
|
123
|
+
const libraryNames = Object.keys(libraries);
|
|
124
|
+
for (const name of libraryNames) {
|
|
125
|
+
const address = libraries[name];
|
|
126
|
+
const code = await provider.getCode(address);
|
|
127
|
+
if (code === '0x') {
|
|
128
|
+
console.error(`Library ${name} at ${address} has no code deployed`);
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
console.log('All libraries verified successfully!');
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=kami-library-deployment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kami-library-deployment.js","sourceRoot":"","sources":["../src/kami-library-deployment.ts"],"names":[],"mappings":"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"}
|