@nucypher/shared 0.1.0-rc.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.
Files changed (125) hide show
  1. package/LICENSE +675 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/contracts/agents/coordinator.d.ts +43 -0
  4. package/dist/cjs/contracts/agents/coordinator.js +82 -0
  5. package/dist/cjs/contracts/agents/coordinator.js.map +1 -0
  6. package/dist/cjs/contracts/agents/global-allow-list.d.ts +8 -0
  7. package/dist/cjs/contracts/agents/global-allow-list.js +25 -0
  8. package/dist/cjs/contracts/agents/global-allow-list.js.map +1 -0
  9. package/dist/cjs/contracts/agents/index.d.ts +2 -0
  10. package/dist/cjs/contracts/agents/index.js +19 -0
  11. package/dist/cjs/contracts/agents/index.js.map +1 -0
  12. package/dist/cjs/contracts/agents/subscription-manager.d.ts +9 -0
  13. package/dist/cjs/contracts/agents/subscription-manager.js +35 -0
  14. package/dist/cjs/contracts/agents/subscription-manager.js.map +1 -0
  15. package/dist/cjs/contracts/ethers-typechain/Coordinator.d.ts +955 -0
  16. package/dist/cjs/contracts/ethers-typechain/Coordinator.js +3 -0
  17. package/dist/cjs/contracts/ethers-typechain/Coordinator.js.map +1 -0
  18. package/dist/cjs/contracts/ethers-typechain/GlobalAllowList.d.ts +423 -0
  19. package/dist/cjs/contracts/ethers-typechain/GlobalAllowList.js +3 -0
  20. package/dist/cjs/contracts/ethers-typechain/GlobalAllowList.js.map +1 -0
  21. package/dist/cjs/contracts/ethers-typechain/SubscriptionManager.d.ts +325 -0
  22. package/dist/cjs/contracts/ethers-typechain/SubscriptionManager.js +3 -0
  23. package/dist/cjs/contracts/ethers-typechain/SubscriptionManager.js.map +1 -0
  24. package/dist/cjs/contracts/ethers-typechain/common.d.ts +21 -0
  25. package/dist/cjs/contracts/ethers-typechain/common.js +3 -0
  26. package/dist/cjs/contracts/ethers-typechain/common.js.map +1 -0
  27. package/dist/cjs/contracts/ethers-typechain/factories/Coordinator__factory.d.ts +1104 -0
  28. package/dist/cjs/contracts/ethers-typechain/factories/Coordinator__factory.js +1441 -0
  29. package/dist/cjs/contracts/ethers-typechain/factories/Coordinator__factory.js.map +1 -0
  30. package/dist/cjs/contracts/ethers-typechain/factories/GlobalAllowList__factory.d.ts +412 -0
  31. package/dist/cjs/contracts/ethers-typechain/factories/GlobalAllowList__factory.js +540 -0
  32. package/dist/cjs/contracts/ethers-typechain/factories/GlobalAllowList__factory.js.map +1 -0
  33. package/dist/cjs/contracts/ethers-typechain/factories/SubscriptionManager__factory.d.ts +390 -0
  34. package/dist/cjs/contracts/ethers-typechain/factories/SubscriptionManager__factory.js +520 -0
  35. package/dist/cjs/contracts/ethers-typechain/factories/SubscriptionManager__factory.js.map +1 -0
  36. package/dist/cjs/contracts/ethers-typechain/factories/index.d.ts +2 -0
  37. package/dist/cjs/contracts/ethers-typechain/factories/index.js +11 -0
  38. package/dist/cjs/contracts/ethers-typechain/factories/index.js.map +1 -0
  39. package/dist/cjs/contracts/ethers-typechain/index.d.ts +5 -0
  40. package/dist/cjs/contracts/ethers-typechain/index.js +32 -0
  41. package/dist/cjs/contracts/ethers-typechain/index.js.map +1 -0
  42. package/dist/cjs/contracts/index.d.ts +3 -0
  43. package/dist/cjs/contracts/index.js +20 -0
  44. package/dist/cjs/contracts/index.js.map +1 -0
  45. package/dist/cjs/contracts/registry.d.ts +8 -0
  46. package/dist/cjs/contracts/registry.js +42 -0
  47. package/dist/cjs/contracts/registry.js.map +1 -0
  48. package/dist/cjs/index.d.ts +6 -0
  49. package/dist/cjs/index.js +35 -0
  50. package/dist/cjs/index.js.map +1 -0
  51. package/dist/cjs/porter.d.ts +36 -0
  52. package/dist/cjs/porter.js +86 -0
  53. package/dist/cjs/porter.js.map +1 -0
  54. package/dist/cjs/types.d.ts +3 -0
  55. package/dist/cjs/types.js +3 -0
  56. package/dist/cjs/types.js.map +1 -0
  57. package/dist/cjs/utils.d.ts +15 -0
  58. package/dist/cjs/utils.js +71 -0
  59. package/dist/cjs/utils.js.map +1 -0
  60. package/dist/cjs/web3.d.ts +7 -0
  61. package/dist/cjs/web3.js +20 -0
  62. package/dist/cjs/web3.js.map +1 -0
  63. package/dist/es/contracts/agents/coordinator.d.ts +43 -0
  64. package/dist/es/contracts/agents/coordinator.js +78 -0
  65. package/dist/es/contracts/agents/coordinator.js.map +1 -0
  66. package/dist/es/contracts/agents/global-allow-list.d.ts +8 -0
  67. package/dist/es/contracts/agents/global-allow-list.js +21 -0
  68. package/dist/es/contracts/agents/global-allow-list.js.map +1 -0
  69. package/dist/es/contracts/agents/index.d.ts +2 -0
  70. package/dist/es/contracts/agents/index.js +3 -0
  71. package/dist/es/contracts/agents/index.js.map +1 -0
  72. package/dist/es/contracts/agents/subscription-manager.d.ts +9 -0
  73. package/dist/es/contracts/agents/subscription-manager.js +31 -0
  74. package/dist/es/contracts/agents/subscription-manager.js.map +1 -0
  75. package/dist/es/contracts/ethers-typechain/Coordinator.d.ts +955 -0
  76. package/dist/es/contracts/ethers-typechain/Coordinator.js +2 -0
  77. package/dist/es/contracts/ethers-typechain/Coordinator.js.map +1 -0
  78. package/dist/es/contracts/ethers-typechain/GlobalAllowList.d.ts +423 -0
  79. package/dist/es/contracts/ethers-typechain/GlobalAllowList.js +2 -0
  80. package/dist/es/contracts/ethers-typechain/GlobalAllowList.js.map +1 -0
  81. package/dist/es/contracts/ethers-typechain/SubscriptionManager.d.ts +325 -0
  82. package/dist/es/contracts/ethers-typechain/SubscriptionManager.js +2 -0
  83. package/dist/es/contracts/ethers-typechain/SubscriptionManager.js.map +1 -0
  84. package/dist/es/contracts/ethers-typechain/common.d.ts +21 -0
  85. package/dist/es/contracts/ethers-typechain/common.js +2 -0
  86. package/dist/es/contracts/ethers-typechain/common.js.map +1 -0
  87. package/dist/es/contracts/ethers-typechain/factories/Coordinator__factory.d.ts +1104 -0
  88. package/dist/es/contracts/ethers-typechain/factories/Coordinator__factory.js +1437 -0
  89. package/dist/es/contracts/ethers-typechain/factories/Coordinator__factory.js.map +1 -0
  90. package/dist/es/contracts/ethers-typechain/factories/GlobalAllowList__factory.d.ts +412 -0
  91. package/dist/es/contracts/ethers-typechain/factories/GlobalAllowList__factory.js +536 -0
  92. package/dist/es/contracts/ethers-typechain/factories/GlobalAllowList__factory.js.map +1 -0
  93. package/dist/es/contracts/ethers-typechain/factories/SubscriptionManager__factory.d.ts +390 -0
  94. package/dist/es/contracts/ethers-typechain/factories/SubscriptionManager__factory.js +516 -0
  95. package/dist/es/contracts/ethers-typechain/factories/SubscriptionManager__factory.js.map +1 -0
  96. package/dist/es/contracts/ethers-typechain/factories/index.d.ts +2 -0
  97. package/dist/es/contracts/ethers-typechain/factories/index.js +6 -0
  98. package/dist/es/contracts/ethers-typechain/factories/index.js.map +1 -0
  99. package/dist/es/contracts/ethers-typechain/index.d.ts +5 -0
  100. package/dist/es/contracts/ethers-typechain/index.js +4 -0
  101. package/dist/es/contracts/ethers-typechain/index.js.map +1 -0
  102. package/dist/es/contracts/index.d.ts +3 -0
  103. package/dist/es/contracts/index.js +4 -0
  104. package/dist/es/contracts/index.js.map +1 -0
  105. package/dist/es/contracts/registry.d.ts +8 -0
  106. package/dist/es/contracts/registry.js +38 -0
  107. package/dist/es/contracts/registry.js.map +1 -0
  108. package/dist/es/index.d.ts +6 -0
  109. package/dist/es/index.js +8 -0
  110. package/dist/es/index.js.map +1 -0
  111. package/dist/es/porter.d.ts +36 -0
  112. package/dist/es/porter.js +78 -0
  113. package/dist/es/porter.js.map +1 -0
  114. package/dist/es/types.d.ts +3 -0
  115. package/dist/es/types.js +2 -0
  116. package/dist/es/types.js.map +1 -0
  117. package/dist/es/utils.d.ts +15 -0
  118. package/dist/es/utils.js +52 -0
  119. package/dist/es/utils.js.map +1 -0
  120. package/dist/es/web3.d.ts +7 -0
  121. package/dist/es/web3.js +16 -0
  122. package/dist/es/web3.js.map +1 -0
  123. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  124. package/dist/tsconfig.es.tsbuildinfo +1 -0
  125. package/package.json +63 -0
@@ -0,0 +1,43 @@
1
+ import { DkgPublicKey, SessionStaticKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
2
+ import { BigNumberish, ethers } from 'ethers';
3
+ import { ChecksumAddress } from '../../types';
4
+ import { BLS12381 } from '../ethers-typechain/Coordinator';
5
+ export interface CoordinatorRitual {
6
+ initiator: string;
7
+ initTimestamp: number;
8
+ endTimestamp: number;
9
+ totalTranscripts: number;
10
+ totalAggregations: number;
11
+ authority: string;
12
+ dkgSize: number;
13
+ threshold: number;
14
+ aggregationMismatch: boolean;
15
+ accessController: string;
16
+ publicKey: BLS12381.G1PointStructOutput;
17
+ aggregatedTranscript: string;
18
+ }
19
+ export type DkgParticipant = {
20
+ provider: string;
21
+ aggregated: boolean;
22
+ decryptionRequestStaticKey: SessionStaticKey;
23
+ };
24
+ export declare enum DkgRitualState {
25
+ NON_INITIATED = 0,
26
+ AWAITING_TRANSCRIPTS = 1,
27
+ AWAITING_AGGREGATIONS = 2,
28
+ TIMEOUT = 3,
29
+ INVALID = 4,
30
+ FINALIZED = 5
31
+ }
32
+ export declare class DkgCoordinatorAgent {
33
+ static getParticipants(provider: ethers.providers.Provider, ritualId: number): Promise<DkgParticipant[]>;
34
+ static initializeRitual(provider: ethers.providers.Provider, signer: ethers.Signer, providers: ChecksumAddress[], authority: string, duration: BigNumberish, accessController: string): Promise<number>;
35
+ static getRitual(provider: ethers.providers.Provider, ritualId: number): Promise<CoordinatorRitual>;
36
+ static getRitualState(provider: ethers.providers.Provider, ritualId: number): Promise<DkgRitualState>;
37
+ static onRitualEndEvent(provider: ethers.providers.Provider, ritualId: number, callback: (successful: boolean) => void): Promise<void>;
38
+ static getRitualIdFromPublicKey(provider: ethers.providers.Provider, dkgPublicKey: DkgPublicKey): Promise<number>;
39
+ static isEncryptionAuthorized(provider: ethers.providers.Provider, ritualId: number, thresholdMessageKit: ThresholdMessageKit): Promise<boolean>;
40
+ private static connectReadOnly;
41
+ private static connectReadWrite;
42
+ private static connect;
43
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DkgCoordinatorAgent = exports.DkgRitualState = void 0;
4
+ const nucypher_core_1 = require("@nucypher/nucypher-core");
5
+ const utils_1 = require("../../utils");
6
+ const ethers_typechain_1 = require("../ethers-typechain");
7
+ const registry_1 = require("../registry");
8
+ var DkgRitualState;
9
+ (function (DkgRitualState) {
10
+ DkgRitualState[DkgRitualState["NON_INITIATED"] = 0] = "NON_INITIATED";
11
+ DkgRitualState[DkgRitualState["AWAITING_TRANSCRIPTS"] = 1] = "AWAITING_TRANSCRIPTS";
12
+ DkgRitualState[DkgRitualState["AWAITING_AGGREGATIONS"] = 2] = "AWAITING_AGGREGATIONS";
13
+ DkgRitualState[DkgRitualState["TIMEOUT"] = 3] = "TIMEOUT";
14
+ DkgRitualState[DkgRitualState["INVALID"] = 4] = "INVALID";
15
+ DkgRitualState[DkgRitualState["FINALIZED"] = 5] = "FINALIZED";
16
+ })(DkgRitualState || (exports.DkgRitualState = DkgRitualState = {}));
17
+ class DkgCoordinatorAgent {
18
+ static async getParticipants(provider, ritualId) {
19
+ const coordinator = await this.connectReadOnly(provider);
20
+ const participants = await coordinator.getParticipants(ritualId);
21
+ return participants.map((participant) => {
22
+ return {
23
+ provider: participant.provider,
24
+ aggregated: participant.aggregated,
25
+ decryptionRequestStaticKey: nucypher_core_1.SessionStaticKey.fromBytes((0, utils_1.fromHexString)(participant.decryptionRequestStaticKey)),
26
+ };
27
+ });
28
+ }
29
+ static async initializeRitual(provider, signer, providers, authority, duration, accessController) {
30
+ const coordinator = await this.connectReadWrite(provider, signer);
31
+ const tx = await coordinator.initiateRitual(providers, authority, duration, accessController);
32
+ const txReceipt = await tx.wait(registry_1.DEFAULT_WAIT_N_CONFIRMATIONS);
33
+ const [ritualStartEvent] = txReceipt.events ?? [];
34
+ if (!ritualStartEvent) {
35
+ throw new Error('Ritual start event not found');
36
+ }
37
+ return ritualStartEvent.args?.ritualId;
38
+ }
39
+ static async getRitual(provider, ritualId) {
40
+ const coordinator = await this.connectReadOnly(provider);
41
+ return coordinator.rituals(ritualId);
42
+ }
43
+ static async getRitualState(provider, ritualId) {
44
+ const coordinator = await this.connectReadOnly(provider);
45
+ return await coordinator.getRitualState(ritualId);
46
+ }
47
+ static async onRitualEndEvent(provider, ritualId, callback) {
48
+ const coordinator = await this.connectReadOnly(provider);
49
+ // We leave `initiator` undefined because we don't care who the initiator is
50
+ // We leave `successful` undefined because we don't care if the ritual was successful
51
+ const eventFilter = coordinator.filters.EndRitual(ritualId, undefined);
52
+ coordinator.once(eventFilter, (_ritualId, successful) => {
53
+ callback(successful);
54
+ });
55
+ }
56
+ static async getRitualIdFromPublicKey(provider, dkgPublicKey) {
57
+ const coordinator = await this.connectReadOnly(provider);
58
+ const dkgPublicKeyBytes = dkgPublicKey.toBytes();
59
+ const pointStruct = {
60
+ word0: dkgPublicKeyBytes.slice(0, 32),
61
+ word1: dkgPublicKeyBytes.slice(32, 48),
62
+ };
63
+ return await coordinator.getRitualIdFromPublicKey(pointStruct);
64
+ }
65
+ static async isEncryptionAuthorized(provider, ritualId, thresholdMessageKit) {
66
+ const coordinator = await this.connectReadOnly(provider);
67
+ return await coordinator.isEncryptionAuthorized(ritualId, thresholdMessageKit.acp.authorization, thresholdMessageKit.ciphertextHeader.toBytes());
68
+ }
69
+ static async connectReadOnly(provider) {
70
+ return await this.connect(provider);
71
+ }
72
+ static async connectReadWrite(provider, signer) {
73
+ return await this.connect(provider, signer);
74
+ }
75
+ static async connect(provider, signer) {
76
+ const network = await provider.getNetwork();
77
+ const contractAddress = (0, registry_1.getContract)(network.chainId, 'COORDINATOR');
78
+ return ethers_typechain_1.Coordinator__factory.connect(contractAddress, signer ?? provider);
79
+ }
80
+ }
81
+ exports.DkgCoordinatorAgent = DkgCoordinatorAgent;
82
+ //# sourceMappingURL=coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../../src/contracts/agents/coordinator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ethers } from 'ethers';
2
+ import { ChecksumAddress } from '../../types';
3
+ export declare class GlobalAllowListAgent {
4
+ static registerEncrypters(provider: ethers.providers.Provider, signer: ethers.Signer, ritualId: number, encrypters: ChecksumAddress[]): Promise<void>;
5
+ private static connectReadOnly;
6
+ private static connectReadWrite;
7
+ private static connect;
8
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GlobalAllowListAgent = void 0;
4
+ const ethers_typechain_1 = require("../ethers-typechain");
5
+ const registry_1 = require("../registry");
6
+ class GlobalAllowListAgent {
7
+ static async registerEncrypters(provider, signer, ritualId, encrypters) {
8
+ const globalAllowList = await this.connectReadWrite(provider, signer);
9
+ const tx = await globalAllowList.authorize(ritualId, encrypters);
10
+ await tx.wait(registry_1.DEFAULT_WAIT_N_CONFIRMATIONS);
11
+ }
12
+ static async connectReadOnly(provider) {
13
+ return await this.connect(provider);
14
+ }
15
+ static async connectReadWrite(provider, signer) {
16
+ return await this.connect(provider, signer);
17
+ }
18
+ static async connect(provider, signer) {
19
+ const network = await provider.getNetwork();
20
+ const contractAddress = (0, registry_1.getContract)(network.chainId, 'GLOBAL_ALLOW_LIST');
21
+ return ethers_typechain_1.GlobalAllowList__factory.connect(contractAddress, signer ?? provider);
22
+ }
23
+ }
24
+ exports.GlobalAllowListAgent = GlobalAllowListAgent;
25
+ //# sourceMappingURL=global-allow-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-allow-list.js","sourceRoot":"","sources":["../../../../src/contracts/agents/global-allow-list.ts"],"names":[],"mappings":";;;AAGA,0DAAgF;AAChF,0CAAwE;AAExE,MAAa,oBAAoB;IACxB,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACpC,QAAmC,EACnC,MAAqB,EACrB,QAAgB,EAChB,UAA6B;QAE7B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjE,MAAM,EAAE,CAAC,IAAI,CAAC,uCAA4B,CAAC,CAAC;IAC9C,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,QAAmC;QACtE,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CACnC,QAAmC,EACnC,MAAqB;QAErB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,OAAO,CAC1B,QAAmC,EACnC,MAAsB;QAEtB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAA,sBAAW,EAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC1E,OAAO,2CAAwB,CAAC,OAAO,CACrC,eAAe,EACf,MAAM,IAAI,QAAQ,CACnB,CAAC;IACJ,CAAC;CACF;AAlCD,oDAkCC"}
@@ -0,0 +1,2 @@
1
+ export * from './coordinator';
2
+ export * from './subscription-manager';
@@ -0,0 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./coordinator"), exports);
18
+ __exportStar(require("./subscription-manager"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contracts/agents/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,yDAAuC"}
@@ -0,0 +1,9 @@
1
+ import { BigNumber, ContractTransaction, ethers } from 'ethers';
2
+ import { ChecksumAddress } from '../../types';
3
+ export declare class PreSubscriptionManagerAgent {
4
+ static createPolicy(provider: ethers.providers.Provider, signer: ethers.Signer, valueInWei: BigNumber, policyId: Uint8Array, size: number, startTimestamp: number, endTimestamp: number, ownerAddress: ChecksumAddress): Promise<ContractTransaction>;
5
+ static getPolicyCost(provider: ethers.providers.Provider, size: number, startTimestamp: number, endTimestamp: number): Promise<BigNumber>;
6
+ private static connectReadOnly;
7
+ private static connectReadWrite;
8
+ private static connect;
9
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PreSubscriptionManagerAgent = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const ethers_typechain_1 = require("../ethers-typechain");
6
+ const registry_1 = require("../registry");
7
+ class PreSubscriptionManagerAgent {
8
+ static async createPolicy(provider, signer, valueInWei, policyId, size, startTimestamp, endTimestamp, ownerAddress) {
9
+ const subscriptionManager = await this.connectReadWrite(provider, signer);
10
+ const overrides = {
11
+ value: valueInWei.toString(),
12
+ };
13
+ const estimatedGas = await subscriptionManager.estimateGas.createPolicy(ethers_1.utils.hexlify(policyId), ownerAddress, size, startTimestamp, endTimestamp, overrides);
14
+ const tx = await subscriptionManager.createPolicy(ethers_1.utils.hexlify(policyId), ownerAddress, size, startTimestamp, endTimestamp, { ...overrides, gasLimit: estimatedGas });
15
+ await tx.wait(registry_1.DEFAULT_WAIT_N_CONFIRMATIONS);
16
+ return tx;
17
+ }
18
+ static async getPolicyCost(provider, size, startTimestamp, endTimestamp) {
19
+ const subscriptionManager = await this.connectReadOnly(provider);
20
+ return await subscriptionManager.getPolicyCost(size, startTimestamp, endTimestamp);
21
+ }
22
+ static async connectReadOnly(provider) {
23
+ return await this.connect(provider);
24
+ }
25
+ static async connectReadWrite(provider, signer) {
26
+ return await this.connect(provider, signer);
27
+ }
28
+ static async connect(provider, signer) {
29
+ const network = await provider.getNetwork();
30
+ const contractAddress = (0, registry_1.getContract)(network.chainId, 'SUBSCRIPTION_MANAGER');
31
+ return ethers_typechain_1.SubscriptionManager__factory.connect(contractAddress, signer ?? provider);
32
+ }
33
+ }
34
+ exports.PreSubscriptionManagerAgent = PreSubscriptionManagerAgent;
35
+ //# sourceMappingURL=subscription-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription-manager.js","sourceRoot":"","sources":["../../../../src/contracts/agents/subscription-manager.ts"],"names":[],"mappings":";;;AAAA,mCAKgB;AAGhB,0DAG6B;AAC7B,0CAAwE;AAExE,MAAa,2BAA2B;IAC/B,MAAM,CAAC,KAAK,CAAC,YAAY,CAC9B,QAAmC,EACnC,MAAqB,EACrB,UAAqB,EACrB,QAAoB,EACpB,IAAY,EACZ,cAAsB,EACtB,YAAoB,EACpB,YAA6B;QAE7B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE;SAC7B,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,YAAY,CACrE,cAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC7B,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,SAAS,CACV,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAC/C,cAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC7B,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,CACzC,CAAC;QACF,MAAM,EAAE,CAAC,IAAI,CAAC,uCAA4B,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,aAAa,CAC/B,QAAmC,EACnC,IAAY,EACZ,cAAsB,EACtB,YAAoB;QAEpB,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjE,OAAO,MAAM,mBAAmB,CAAC,aAAa,CAC5C,IAAI,EACJ,cAAc,EACd,YAAY,CACb,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,QAAmC;QACtE,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CACnC,QAAmC,EACnC,MAAqB;QAErB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,OAAO,CAC1B,QAAmC,EACnC,MAAsB;QAEtB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAA,sBAAW,EACjC,OAAO,CAAC,OAAO,EACf,sBAAsB,CACvB,CAAC;QACF,OAAO,+CAA4B,CAAC,OAAO,CACzC,eAAe,EACf,MAAM,IAAI,QAAQ,CACnB,CAAC;IACJ,CAAC;CACF;AA1ED,kEA0EC"}