@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 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
@@ -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":";;;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"}
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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"}