@antseed/node 0.2.116 → 0.2.118

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 (97) hide show
  1. package/README.md +30 -0
  2. package/dist/index.d.ts +15 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +14 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/node.d.ts +2 -0
  7. package/dist/node.d.ts.map +1 -1
  8. package/dist/node.js +3 -0
  9. package/dist/node.js.map +1 -1
  10. package/dist/payments/chain-config.d.ts +53 -0
  11. package/dist/payments/chain-config.d.ts.map +1 -1
  12. package/dist/payments/chain-config.js +43 -23
  13. package/dist/payments/chain-config.js.map +1 -1
  14. package/dist/payments/contract-stack.d.ts +53 -0
  15. package/dist/payments/contract-stack.d.ts.map +1 -0
  16. package/dist/payments/contract-stack.js +97 -0
  17. package/dist/payments/contract-stack.js.map +1 -0
  18. package/dist/payments/evm/ants-token-client.d.ts +7 -0
  19. package/dist/payments/evm/ants-token-client.d.ts.map +1 -1
  20. package/dist/payments/evm/ants-token-client.js +37 -1
  21. package/dist/payments/evm/ants-token-client.js.map +1 -1
  22. package/dist/payments/evm/emissions-client.d.ts +3 -0
  23. package/dist/payments/evm/emissions-client.d.ts.map +1 -1
  24. package/dist/payments/evm/emissions-client.js +13 -0
  25. package/dist/payments/evm/emissions-client.js.map +1 -1
  26. package/dist/payments/evm/emissions-gate-client.d.ts +51 -0
  27. package/dist/payments/evm/emissions-gate-client.d.ts.map +1 -0
  28. package/dist/payments/evm/emissions-gate-client.js +55 -0
  29. package/dist/payments/evm/emissions-gate-client.js.map +1 -0
  30. package/dist/payments/evm/multicall.d.ts +21 -0
  31. package/dist/payments/evm/multicall.d.ts.map +1 -0
  32. package/dist/payments/evm/multicall.js +73 -0
  33. package/dist/payments/evm/multicall.js.map +1 -0
  34. package/dist/payments/evm/points-policy-registry-client.d.ts +21 -0
  35. package/dist/payments/evm/points-policy-registry-client.d.ts.map +1 -0
  36. package/dist/payments/evm/points-policy-registry-client.js +34 -0
  37. package/dist/payments/evm/points-policy-registry-client.js.map +1 -0
  38. package/dist/payments/evm/position-init-client.d.ts +18 -0
  39. package/dist/payments/evm/position-init-client.d.ts.map +1 -0
  40. package/dist/payments/evm/position-init-client.js +19 -0
  41. package/dist/payments/evm/position-init-client.js.map +1 -0
  42. package/dist/payments/evm/registry-client.d.ts +17 -0
  43. package/dist/payments/evm/registry-client.d.ts.map +1 -0
  44. package/dist/payments/evm/registry-client.js +24 -0
  45. package/dist/payments/evm/registry-client.js.map +1 -0
  46. package/dist/payments/evm/seller-pools-client.d.ts +95 -0
  47. package/dist/payments/evm/seller-pools-client.d.ts.map +1 -0
  48. package/dist/payments/evm/seller-pools-client.js +193 -0
  49. package/dist/payments/evm/seller-pools-client.js.map +1 -0
  50. package/dist/payments/evm/seller-pools-rewards-client.d.ts +36 -0
  51. package/dist/payments/evm/seller-pools-rewards-client.d.ts.map +1 -0
  52. package/dist/payments/evm/seller-pools-rewards-client.js +126 -0
  53. package/dist/payments/evm/seller-pools-rewards-client.js.map +1 -0
  54. package/dist/payments/evm/seller-registry-client.d.ts +28 -0
  55. package/dist/payments/evm/seller-registry-client.d.ts.map +1 -0
  56. package/dist/payments/evm/seller-registry-client.js +60 -0
  57. package/dist/payments/evm/seller-registry-client.js.map +1 -0
  58. package/dist/payments/evm/seller-rewards-pool-client.d.ts +24 -0
  59. package/dist/payments/evm/seller-rewards-pool-client.d.ts.map +1 -0
  60. package/dist/payments/evm/seller-rewards-pool-client.js +27 -0
  61. package/dist/payments/evm/seller-rewards-pool-client.js.map +1 -0
  62. package/dist/payments/evm/usage-accounting-client.d.ts +49 -0
  63. package/dist/payments/evm/usage-accounting-client.d.ts.map +1 -0
  64. package/dist/payments/evm/usage-accounting-client.js +82 -0
  65. package/dist/payments/evm/usage-accounting-client.js.map +1 -0
  66. package/dist/payments/evm/usage-rewards-client.d.ts +43 -0
  67. package/dist/payments/evm/usage-rewards-client.d.ts.map +1 -0
  68. package/dist/payments/evm/usage-rewards-client.js +62 -0
  69. package/dist/payments/evm/usage-rewards-client.js.map +1 -0
  70. package/dist/payments/evm/wash-trading-registry-client.d.ts +105 -0
  71. package/dist/payments/evm/wash-trading-registry-client.d.ts.map +1 -0
  72. package/dist/payments/evm/wash-trading-registry-client.js +170 -0
  73. package/dist/payments/evm/wash-trading-registry-client.js.map +1 -0
  74. package/dist/payments/generated-contract-addresses.d.ts +49 -0
  75. package/dist/payments/generated-contract-addresses.d.ts.map +1 -0
  76. package/dist/payments/generated-contract-addresses.js +50 -0
  77. package/dist/payments/generated-contract-addresses.js.map +1 -0
  78. package/dist/payments/index.d.ts +28 -0
  79. package/dist/payments/index.d.ts.map +1 -1
  80. package/dist/payments/index.js +14 -0
  81. package/dist/payments/index.js.map +1 -1
  82. package/dist/payments/reward-claims.d.ts +28 -0
  83. package/dist/payments/reward-claims.d.ts.map +1 -0
  84. package/dist/payments/reward-claims.js +67 -0
  85. package/dist/payments/reward-claims.js.map +1 -0
  86. package/dist/payments/reward-preview.d.ts +19 -0
  87. package/dist/payments/reward-preview.d.ts.map +1 -0
  88. package/dist/payments/reward-preview.js +36 -0
  89. package/dist/payments/reward-preview.js.map +1 -0
  90. package/dist/payments/seller-payment-manager.d.ts +9 -0
  91. package/dist/payments/seller-payment-manager.d.ts.map +1 -1
  92. package/dist/payments/seller-payment-manager.js +45 -0
  93. package/dist/payments/seller-payment-manager.js.map +1 -1
  94. package/dist/seller-request-handler.d.ts.map +1 -1
  95. package/dist/seller-request-handler.js +12 -0
  96. package/dist/seller-request-handler.js.map +1 -1
  97. package/package.json +4 -4
@@ -0,0 +1,53 @@
1
+ import type { ChainConfig } from './chain-config.js';
2
+ export type ContractStackMode = 'legacy' | 'recognized-usage';
3
+ export interface ContractStackAddresses {
4
+ registryContractAddress: string;
5
+ emissionsContractAddress?: string;
6
+ stakingContractAddress?: string;
7
+ legacyEmissionsContractAddress?: string;
8
+ legacyStakingContractAddress?: string;
9
+ legacyEmissionsV1ContractAddress?: string;
10
+ usageAccountingAddress?: string;
11
+ sellerRegistryAddress?: string;
12
+ channelsContractAddress: string;
13
+ depositsContractAddress: string;
14
+ antsTokenAddress?: string;
15
+ }
16
+ export interface ContractStackResolution {
17
+ mode: ContractStackMode;
18
+ currentEpoch: number;
19
+ firstRewardedEpoch?: number;
20
+ addresses: ContractStackAddresses;
21
+ registryPointers: {
22
+ emissions: string;
23
+ staking: string;
24
+ };
25
+ }
26
+ interface RegistryReader {
27
+ emissions(): Promise<string>;
28
+ staking(): Promise<string>;
29
+ }
30
+ interface EpochReader {
31
+ currentEpoch(): Promise<number>;
32
+ }
33
+ interface UsageEpochReader extends EpochReader {
34
+ firstRewardedEpoch(): Promise<number>;
35
+ }
36
+ export interface ContractStackRpcOptions {
37
+ registryClient?: RegistryReader;
38
+ legacyEmissionsClient?: {
39
+ getEpochInfo(): Promise<{
40
+ epoch: number;
41
+ }>;
42
+ };
43
+ usageAccountingClient?: UsageEpochReader;
44
+ }
45
+ export declare class ContractStackMismatchError extends Error {
46
+ constructor(message: string);
47
+ }
48
+ export declare function resolveLegacyContractAddresses(config: Pick<ChainConfig, 'emissionsContractAddress' | 'stakingContractAddress' | 'usageAccountingAddress' | 'sellerRegistryAddress' | 'legacyEmissionsContractAddress' | 'legacyStakingContractAddress' | 'legacyEmissionsV1ContractAddress'>): Pick<ContractStackAddresses, 'legacyEmissionsContractAddress' | 'legacyStakingContractAddress' | 'legacyEmissionsV1ContractAddress'>;
49
+ export declare function legacyEpochs(currentEpoch: number, firstRewardedEpoch: number): number[];
50
+ export declare function newEpochs(currentEpoch: number, firstRewardedEpoch: number): number[];
51
+ export declare function resolveContractStack(chainConfig: ChainConfig, rpcOptions?: ContractStackRpcOptions): Promise<ContractStackResolution>;
52
+ export {};
53
+ //# sourceMappingURL=contract-stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-stack.d.ts","sourceRoot":"","sources":["../../src/payments/contract-stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,kBAAkB,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,UAAU,cAAc;IACtB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,UAAU,WAAW;IAAG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAAE;AAC1D,UAAU,gBAAiB,SAAQ,WAAW;IAAG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAAE;AAEzF,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,qBAAqB,CAAC,EAAE;QAAE,YAAY,IAAI,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACvE,qBAAqB,CAAC,EAAE,gBAAgB,CAAC;CAC1C;AAED,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAUD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EACrE,0BAA0B,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,uBAAuB,GAC1G,gCAAgC,GAAG,8BAA8B,GAAG,kCAAkC,CACvG,GAAG,IAAI,CAAC,sBAAsB,EAAE,gCAAgC,GAAG,8BAA8B,GAAG,kCAAkC,CAAC,CAQvI;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvF;AAED,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,EAAE,CAGpF;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,WAAW,EACxB,UAAU,GAAE,uBAA4B,GACvC,OAAO,CAAC,uBAAuB,CAAC,CAoElC"}
@@ -0,0 +1,97 @@
1
+ import { EmissionsClient } from './evm/emissions-client.js';
2
+ import { RegistryClient } from './evm/registry-client.js';
3
+ import { UsageAccountingClient } from './evm/usage-accounting-client.js';
4
+ const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
5
+ export class ContractStackMismatchError extends Error {
6
+ constructor(message) {
7
+ super(`Contract stack mismatch: ${message}. Upgrade @antseed/cli or check payments.crypto overrides.`);
8
+ this.name = 'ContractStackMismatchError';
9
+ }
10
+ }
11
+ function sameAddress(left, right) {
12
+ return !!left && !!right && left.toLowerCase() === right.toLowerCase();
13
+ }
14
+ function isZero(address) {
15
+ return !address || sameAddress(address, ZERO_ADDRESS);
16
+ }
17
+ export function resolveLegacyContractAddresses(config) {
18
+ const emissionsIsLegacy = !!config.emissionsContractAddress && !sameAddress(config.emissionsContractAddress, config.usageAccountingAddress);
19
+ const stakingIsLegacy = !!config.stakingContractAddress && !sameAddress(config.stakingContractAddress, config.sellerRegistryAddress);
20
+ return {
21
+ legacyEmissionsContractAddress: emissionsIsLegacy ? config.emissionsContractAddress : config.legacyEmissionsContractAddress,
22
+ legacyStakingContractAddress: stakingIsLegacy ? config.stakingContractAddress : config.legacyStakingContractAddress,
23
+ legacyEmissionsV1ContractAddress: emissionsIsLegacy ? config.legacyEmissionsContractAddress : config.legacyEmissionsV1ContractAddress,
24
+ };
25
+ }
26
+ export function legacyEpochs(currentEpoch, firstRewardedEpoch) {
27
+ return Array.from({ length: Math.max(0, Math.min(currentEpoch, firstRewardedEpoch)) }, (_, epoch) => epoch);
28
+ }
29
+ export function newEpochs(currentEpoch, firstRewardedEpoch) {
30
+ const start = Math.max(0, firstRewardedEpoch);
31
+ return Array.from({ length: Math.max(0, currentEpoch - start) }, (_, index) => start + index);
32
+ }
33
+ export async function resolveContractStack(chainConfig, rpcOptions = {}) {
34
+ const registryAddress = chainConfig.registryContractAddress;
35
+ if (!registryAddress) {
36
+ throw new ContractStackMismatchError(`registry address not configured for chain '${chainConfig.chainId}'`);
37
+ }
38
+ const addresses = {
39
+ registryContractAddress: registryAddress,
40
+ emissionsContractAddress: chainConfig.emissionsContractAddress,
41
+ stakingContractAddress: chainConfig.stakingContractAddress,
42
+ legacyEmissionsContractAddress: chainConfig.legacyEmissionsContractAddress,
43
+ legacyStakingContractAddress: chainConfig.legacyStakingContractAddress,
44
+ usageAccountingAddress: chainConfig.usageAccountingAddress,
45
+ sellerRegistryAddress: chainConfig.sellerRegistryAddress,
46
+ channelsContractAddress: chainConfig.channelsContractAddress,
47
+ depositsContractAddress: chainConfig.depositsContractAddress,
48
+ antsTokenAddress: chainConfig.antsTokenAddress,
49
+ };
50
+ try {
51
+ const registry = rpcOptions.registryClient ?? new RegistryClient({
52
+ rpcUrl: chainConfig.rpcUrl,
53
+ fallbackRpcUrls: chainConfig.fallbackRpcUrls,
54
+ contractAddress: registryAddress,
55
+ evmChainId: chainConfig.evmChainId,
56
+ });
57
+ const [registryEmissions, registryStaking] = await Promise.all([registry.emissions(), registry.staking()]);
58
+ const registryPointers = { emissions: registryEmissions, staking: registryStaking };
59
+ if (isZero(registryEmissions) || isZero(registryStaking)) {
60
+ throw new ContractStackMismatchError(`registry returned zero pointer(s): emissions=${registryEmissions}, staking=${registryStaking}`);
61
+ }
62
+ const recognizedConfigured = !!chainConfig.usageAccountingAddress || !!chainConfig.sellerRegistryAddress;
63
+ const recognizedMatch = sameAddress(registryEmissions, chainConfig.usageAccountingAddress)
64
+ && sameAddress(registryStaking, chainConfig.sellerRegistryAddress);
65
+ if (recognizedConfigured && recognizedMatch) {
66
+ const usage = rpcOptions.usageAccountingClient ?? new UsageAccountingClient({
67
+ rpcUrl: chainConfig.rpcUrl,
68
+ fallbackRpcUrls: chainConfig.fallbackRpcUrls,
69
+ contractAddress: chainConfig.usageAccountingAddress,
70
+ evmChainId: chainConfig.evmChainId,
71
+ });
72
+ const [currentEpoch, firstRewardedEpoch] = await Promise.all([usage.currentEpoch(), usage.firstRewardedEpoch()]);
73
+ return { mode: 'recognized-usage', currentEpoch, firstRewardedEpoch, addresses: { ...addresses, ...resolveLegacyContractAddresses(chainConfig) }, registryPointers };
74
+ }
75
+ const legacyMatch = sameAddress(registryEmissions, chainConfig.emissionsContractAddress)
76
+ && sameAddress(registryStaking, chainConfig.stakingContractAddress)
77
+ && !sameAddress(registryEmissions, chainConfig.usageAccountingAddress)
78
+ && !sameAddress(registryStaking, chainConfig.sellerRegistryAddress);
79
+ if (legacyMatch) {
80
+ const emissions = rpcOptions.legacyEmissionsClient ?? new EmissionsClient({
81
+ rpcUrl: chainConfig.rpcUrl,
82
+ fallbackRpcUrls: chainConfig.fallbackRpcUrls,
83
+ contractAddress: chainConfig.emissionsContractAddress,
84
+ evmChainId: chainConfig.evmChainId,
85
+ });
86
+ const { epoch: currentEpoch } = await emissions.getEpochInfo();
87
+ return { mode: 'legacy', currentEpoch, addresses, registryPointers };
88
+ }
89
+ throw new ContractStackMismatchError(`registry emissions=${registryEmissions}, staking=${registryStaking}; configured legacy emissions=${chainConfig.emissionsContractAddress ?? 'missing'}, staking=${chainConfig.stakingContractAddress ?? 'missing'}; configured recognized emissions=${chainConfig.usageAccountingAddress ?? 'missing'}, staking=${chainConfig.sellerRegistryAddress ?? 'missing'}`);
90
+ }
91
+ catch (error) {
92
+ if (error instanceof ContractStackMismatchError)
93
+ throw error;
94
+ throw new ContractStackMismatchError(`failed to verify registry ${registryAddress}: ${error.message}`);
95
+ }
96
+ }
97
+ //# sourceMappingURL=contract-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-stack.js","sourceRoot":"","sources":["../../src/payments/contract-stack.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,17 @@ export interface ANTSTokenClientConfig {
9
9
  export declare class ANTSTokenClient extends BaseEvmClient {
10
10
  constructor(config: ANTSTokenClientConfig);
11
11
  balanceOf(address: string): Promise<bigint>;
12
+ allowance(owner: string, spender: string): Promise<bigint>;
12
13
  totalSupply(): Promise<bigint>;
13
14
  transfersEnabled(): Promise<boolean>;
14
15
  setRegistry(signer: AbstractSigner, registryAddress: string): Promise<string>;
15
16
  enableTransfers(signer: AbstractSigner): Promise<string>;
16
17
  transferOwnership(signer: AbstractSigner, newOwner: string): Promise<string>;
18
+ receivedInTransaction(transactionHash: string, recipient: string): Promise<bigint>;
19
+ transferWhitelist(account: string): Promise<boolean>;
20
+ maxSupply(): Promise<bigint>;
21
+ /** Whether `account` can move ANTS right now (transfers enabled globally or the account is whitelisted). */
22
+ canTransfer(account: string): Promise<boolean>;
23
+ approve(signer: AbstractSigner, spender: string, amount: bigint): Promise<string>;
17
24
  }
18
25
  //# sourceMappingURL=ants-token-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ants-token-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/ants-token-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAeD,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,MAAM,EAAE,qBAAqB;IAInC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAK9B,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7E,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxD,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAUnF"}
1
+ {"version":3,"file":"ants-token-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/ants-token-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAmBD,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,MAAM,EAAE,qBAAqB;IAInC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1D,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAK9B,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7E,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxD,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5E,qBAAqB,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWlF,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAKlC,4GAA4G;IACtG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpD,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGlF"}
@@ -1,12 +1,16 @@
1
- import { Contract } from 'ethers';
1
+ import { Contract, Interface, zeroPadValue } from 'ethers';
2
2
  import { BaseEvmClient } from './base-evm-client.js';
3
3
  const ANTS_TOKEN_ABI = [
4
4
  'function balanceOf(address account) external view returns (uint256)',
5
+ 'function allowance(address owner, address spender) external view returns (uint256)',
5
6
  'function totalSupply() external view returns (uint256)',
6
7
  'function name() external view returns (string)',
7
8
  'function symbol() external view returns (string)',
8
9
  'function decimals() external view returns (uint8)',
9
10
  'function transfersEnabled() external view returns (bool)',
11
+ 'function transferWhitelist(address account) external view returns (bool)',
12
+ 'function approve(address spender, uint256 amount) external returns (bool)',
13
+ 'function MAX_SUPPLY() external view returns (uint256)',
10
14
  'function owner() external view returns (address)',
11
15
  'function setRegistry(address _registry) external',
12
16
  'function enableTransfers() external',
@@ -20,6 +24,10 @@ export class ANTSTokenClient extends BaseEvmClient {
20
24
  const contract = new Contract(this._contractAddress, ANTS_TOKEN_ABI, this._provider);
21
25
  return contract.getFunction('balanceOf')(address);
22
26
  }
27
+ async allowance(owner, spender) {
28
+ const contract = new Contract(this._contractAddress, ANTS_TOKEN_ABI, this._provider);
29
+ return contract.getFunction('allowance')(owner, spender);
30
+ }
23
31
  async totalSupply() {
24
32
  const contract = new Contract(this._contractAddress, ANTS_TOKEN_ABI, this._provider);
25
33
  return contract.getFunction('totalSupply')();
@@ -61,5 +69,33 @@ export class ANTSTokenClient extends BaseEvmClient {
61
69
  throw new Error('Transaction was dropped or replaced');
62
70
  return receipt.hash;
63
71
  }
72
+ async receivedInTransaction(transactionHash, recipient) {
73
+ const receipt = await this.provider.getTransactionReceipt(transactionHash);
74
+ if (!receipt || receipt.status !== 1)
75
+ throw new Error(`Confirmed receipt unavailable: ${transactionHash}`);
76
+ const tokenInterface = new Interface(['event Transfer(address indexed from, address indexed to, uint256 value)']);
77
+ const topics = tokenInterface.encodeFilterTopics('Transfer', [null, recipient]);
78
+ return receipt.logs.reduce((received, log) => {
79
+ if (log.address.toLowerCase() !== this.contractAddress.toLowerCase() || log.topics[0] !== topics[0] || log.topics[2]?.toLowerCase() !== zeroPadValue(recipient, 32).toLowerCase())
80
+ return received;
81
+ return received + tokenInterface.parseLog(log).args.value;
82
+ }, 0n);
83
+ }
84
+ async transferWhitelist(account) {
85
+ const contract = new Contract(this._contractAddress, ANTS_TOKEN_ABI, this._provider);
86
+ return contract.getFunction('transferWhitelist')(account);
87
+ }
88
+ async maxSupply() {
89
+ const contract = new Contract(this._contractAddress, ANTS_TOKEN_ABI, this._provider);
90
+ return contract.getFunction('MAX_SUPPLY')();
91
+ }
92
+ /** Whether `account` can move ANTS right now (transfers enabled globally or the account is whitelisted). */
93
+ async canTransfer(account) {
94
+ const [enabled, whitelisted] = await Promise.all([this.transfersEnabled(), this.transferWhitelist(account)]);
95
+ return enabled || whitelisted;
96
+ }
97
+ approve(signer, spender, amount) {
98
+ return this._execWrite(signer, ANTS_TOKEN_ABI, 'approve', spender, amount);
99
+ }
64
100
  }
65
101
  //# sourceMappingURL=ants-token-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ants-token-client.js","sourceRoot":"","sources":["../../../src/payments/evm/ants-token-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ants-token-client.js","sourceRoot":"","sources":["../../../src/payments/evm/ants-token-client.ts"],"names":[],"mappings":"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"}
@@ -41,5 +41,8 @@ export declare class EmissionsClient extends BaseEvmClient {
41
41
  sellerEpochClaimed(account: string, epoch: number): Promise<boolean>;
42
42
  buyerEpochClaimed(account: string, epoch: number): Promise<boolean>;
43
43
  flushReserve(signer: AbstractSigner): Promise<string>;
44
+ /** Legacy locked-rewards pool address (zero when the V2 contract has none configured). */
45
+ sellerRewardsPool(): Promise<string>;
46
+ sellerUnlockPolicy(): Promise<string>;
44
47
  }
45
48
  //# sourceMappingURL=emissions-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emissions-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/emissions-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA0CD,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,MAAM,EAAE,qBAAqB;IAInC,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/E,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7F,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAM/F,YAAY,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAcnF,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAM7B,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMrC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMpC,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAqB1C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4B5D,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKtD,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhE,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnE,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAU5D"}
1
+ {"version":3,"file":"emissions-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/emissions-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8CD,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,MAAM,EAAE,qBAAqB;IAInC,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/E,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7F,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAM/F,YAAY,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAcnF,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAM7B,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMrC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMpC,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAqB1C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4B5D,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKtD,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhE,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnE,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAW3D,0FAA0F;IACpF,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKpC,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;CAI5C"}
@@ -26,6 +26,10 @@ const EMISSIONS_ABI = [
26
26
  'function MAX_SELLER_SHARE_PCT() external view returns (uint256)',
27
27
  'function MAX_BUYER_SHARE_PCT() external view returns (uint256)',
28
28
  'function reserveAccumulated() external view returns (uint256)',
29
+ 'function sellerRewardsPool() external view returns (address)',
30
+ 'function sellerUnlockPolicy() external view returns (address)',
31
+ 'function teamAccumulated() external view returns (uint256)',
32
+ 'function paused() external view returns (bool)',
29
33
  // Reads — mappings exposed as auto-generated getters
30
34
  'function epochParams(uint256 epoch) external view returns (uint256 sellerSharePct, uint256 buyerSharePct, uint256 reserveSharePct, uint256 teamSharePct, uint256 maxSellerSharePct, uint256 maxBuyerSharePct, bool initialized)',
31
35
  'function epochTotalSellerPoints(uint256 epoch) external view returns (uint256)',
@@ -168,5 +172,14 @@ export class EmissionsClient extends BaseEvmClient {
168
172
  throw new Error('Transaction was dropped or replaced');
169
173
  return receipt.hash;
170
174
  }
175
+ /** Legacy locked-rewards pool address (zero when the V2 contract has none configured). */
176
+ async sellerRewardsPool() {
177
+ const contract = new Contract(this._contractAddress, EMISSIONS_ABI, this._provider);
178
+ return contract.getFunction('sellerRewardsPool')();
179
+ }
180
+ async sellerUnlockPolicy() {
181
+ const contract = new Contract(this._contractAddress, EMISSIONS_ABI, this._provider);
182
+ return contract.getFunction('sellerUnlockPolicy')();
183
+ }
171
184
  }
172
185
  //# sourceMappingURL=emissions-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emissions-client.js","sourceRoot":"","sources":["../../../src/payments/evm/emissions-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emissions-client.js","sourceRoot":"","sources":["../../../src/payments/evm/emissions-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { BaseEvmClient } from './base-evm-client.js';
2
+ export interface EmissionsGateClientConfig {
3
+ rpcUrl: string;
4
+ fallbackRpcUrls?: string[];
5
+ contractAddress: string;
6
+ evmChainId?: number;
7
+ }
8
+ export interface GateMinter {
9
+ controller: string;
10
+ shareBps: number;
11
+ editable: boolean;
12
+ }
13
+ /** Gate minter ids are `keccak256(id string)`. These are the M001 buckets. */
14
+ export declare const GATE_MINTERS: readonly [{
15
+ readonly name: "seller-pools";
16
+ readonly id: "antseed.emissions.seller-pools.v1";
17
+ }, {
18
+ readonly name: "usage";
19
+ readonly id: "antseed.emissions.usage.v1";
20
+ }, {
21
+ readonly name: "team";
22
+ readonly id: "antseed.emissions.team.v1";
23
+ }, {
24
+ readonly name: "reserve";
25
+ readonly id: "antseed.emissions.reserve.v1";
26
+ }, {
27
+ readonly name: "verification";
28
+ readonly id: "antseed.emissions.verification.v1";
29
+ }];
30
+ export declare function gateMinterId(id: string): string;
31
+ export declare class EmissionsGateClient extends BaseEvmClient {
32
+ constructor(config: EmissionsGateClientConfig);
33
+ private contract;
34
+ currentEpoch(): Promise<number>;
35
+ effectiveEpoch(): Promise<number>;
36
+ currentEmissionRate(): Promise<bigint>;
37
+ epochDuration(): Promise<number>;
38
+ genesis(): Promise<number>;
39
+ halvingInterval(): Promise<number>;
40
+ initialEmission(): Promise<bigint>;
41
+ shareDenominator(): Promise<number>;
42
+ getEpochEmission(epoch: number): Promise<bigint>;
43
+ cumulativeEmissionThrough(epochExclusive: number): Promise<bigint>;
44
+ minter(minterId: string): Promise<GateMinter>;
45
+ minterEpochBudget(minterId: string, epoch: number): Promise<bigint>;
46
+ controllerEpochBudget(controller: string, epoch: number): Promise<bigint>;
47
+ emissionsReserve(): Promise<string>;
48
+ legacyEscrow(): Promise<string>;
49
+ owner(): Promise<string>;
50
+ }
51
+ //# sourceMappingURL=emissions-gate-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emissions-gate-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/emissions-gate-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,yBAAyB;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAAE;AAExI,MAAM,WAAW,UAAU;IAAG,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;CAAE;AAExF,8EAA8E;AAC9E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;EAMf,CAAC;AAEX,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/C;AAqBD,qBAAa,mBAAoB,SAAQ,aAAa;gBACxC,MAAM,EAAE,yBAAyB;IAC7C,OAAO,CAAC,QAAQ;IAEV,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAC/B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IACvC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAChC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAChC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAC1B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IACxC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAC5B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IACzC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAChD,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5D,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAInD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACnE,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACzE,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IACnC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAC/B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CACzB"}
@@ -0,0 +1,55 @@
1
+ import { Contract, keccak256, toUtf8Bytes } from 'ethers';
2
+ import { BaseEvmClient } from './base-evm-client.js';
3
+ /** Gate minter ids are `keccak256(id string)`. These are the M001 buckets. */
4
+ export const GATE_MINTERS = [
5
+ { name: 'seller-pools', id: 'antseed.emissions.seller-pools.v1' },
6
+ { name: 'usage', id: 'antseed.emissions.usage.v1' },
7
+ { name: 'team', id: 'antseed.emissions.team.v1' },
8
+ { name: 'reserve', id: 'antseed.emissions.reserve.v1' },
9
+ { name: 'verification', id: 'antseed.emissions.verification.v1' },
10
+ ];
11
+ export function gateMinterId(id) {
12
+ return keccak256(toUtf8Bytes(id));
13
+ }
14
+ const ABI = [
15
+ 'function currentEpoch() external view returns (uint256)',
16
+ 'function effectiveEpoch() external view returns (uint256)',
17
+ 'function currentEmissionRate() external view returns (uint256)',
18
+ 'function epochDuration() external view returns (uint256)',
19
+ 'function genesis() external view returns (uint256)',
20
+ 'function HALVING_INTERVAL() external view returns (uint256)',
21
+ 'function INITIAL_EMISSION() external view returns (uint256)',
22
+ 'function SHARE_DENOMINATOR() external view returns (uint256)',
23
+ 'function getEpochEmission(uint256 epoch) external view returns (uint256)',
24
+ 'function cumulativeEmissionThrough(uint256 epochExclusive) external view returns (uint256)',
25
+ 'function minters(bytes32 minterId) external view returns (address controller, uint32 shareBps, bool editable)',
26
+ 'function minterEpochBudget(bytes32 minterId, uint256 epoch) external view returns (uint256)',
27
+ 'function controllerEpochBudget(address controller, uint256 epoch) external view returns (uint256)',
28
+ 'function emissionsReserve() external view returns (address)',
29
+ 'function legacyEscrow() external view returns (address)',
30
+ 'function owner() external view returns (address)',
31
+ ];
32
+ export class EmissionsGateClient extends BaseEvmClient {
33
+ constructor(config) { super(config.rpcUrl, config.contractAddress, config.fallbackRpcUrls, config.evmChainId); }
34
+ contract() { return new Contract(this._contractAddress, ABI, this._provider); }
35
+ async currentEpoch() { return Number(await this.contract().getFunction('currentEpoch')()); }
36
+ async effectiveEpoch() { return Number(await this.contract().getFunction('effectiveEpoch')()); }
37
+ currentEmissionRate() { return this.contract().getFunction('currentEmissionRate')(); }
38
+ async epochDuration() { return Number(await this.contract().getFunction('epochDuration')()); }
39
+ async genesis() { return Number(await this.contract().getFunction('genesis')()); }
40
+ async halvingInterval() { return Number(await this.contract().getFunction('HALVING_INTERVAL')()); }
41
+ initialEmission() { return this.contract().getFunction('INITIAL_EMISSION')(); }
42
+ async shareDenominator() { return Number(await this.contract().getFunction('SHARE_DENOMINATOR')()); }
43
+ getEpochEmission(epoch) { return this.contract().getFunction('getEpochEmission')(epoch); }
44
+ cumulativeEmissionThrough(epochExclusive) { return this.contract().getFunction('cumulativeEmissionThrough')(epochExclusive); }
45
+ async minter(minterId) {
46
+ const [controller, shareBps, editable] = await this.contract().getFunction('minters')(minterId);
47
+ return { controller, shareBps: Number(shareBps), editable };
48
+ }
49
+ minterEpochBudget(minterId, epoch) { return this.contract().getFunction('minterEpochBudget')(minterId, epoch); }
50
+ controllerEpochBudget(controller, epoch) { return this.contract().getFunction('controllerEpochBudget')(controller, epoch); }
51
+ emissionsReserve() { return this.contract().getFunction('emissionsReserve')(); }
52
+ legacyEscrow() { return this.contract().getFunction('legacyEscrow')(); }
53
+ owner() { return this.contract().getFunction('owner')(); }
54
+ }
55
+ //# sourceMappingURL=emissions-gate-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emissions-gate-client.js","sourceRoot":"","sources":["../../../src/payments/evm/emissions-gate-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Interface, type AbstractProvider } from 'ethers';
2
+ /** Canonical Multicall3 deployment (same address on Base, Base Sepolia, and most EVM chains). */
3
+ export declare const MULTICALL3_ADDRESS = "0xcA11bde05977b3631167028862bE2a173976CA11";
4
+ export interface MulticallRequest {
5
+ target: string;
6
+ iface: Interface;
7
+ method: string;
8
+ args?: unknown[];
9
+ }
10
+ /**
11
+ * Batch many read calls into a few `eth_call`s via Multicall3 (`allowFailure`
12
+ * per call: a reverting read yields `null` instead of failing the batch).
13
+ * Falls back to individual calls when the chain has no Multicall3.
14
+ */
15
+ export declare function multicallRead(provider: AbstractProvider, requests: MulticallRequest[], options?: {
16
+ chunkSize?: number;
17
+ concurrency?: number;
18
+ address?: string;
19
+ blockTag?: number | string;
20
+ }): Promise<Array<unknown[] | null>>;
21
+ //# sourceMappingURL=multicall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAEpE,iGAAiG;AACjG,eAAO,MAAM,kBAAkB,+CAA+C,CAAC;AAM/E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,GACvG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAoDlC"}
@@ -0,0 +1,73 @@
1
+ import { Contract } from 'ethers';
2
+ /** Canonical Multicall3 deployment (same address on Base, Base Sepolia, and most EVM chains). */
3
+ export const MULTICALL3_ADDRESS = '0xcA11bde05977b3631167028862bE2a173976CA11';
4
+ const MULTICALL3_ABI = [
5
+ 'function aggregate3(tuple(address target, bool allowFailure, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)',
6
+ ];
7
+ /**
8
+ * Batch many read calls into a few `eth_call`s via Multicall3 (`allowFailure`
9
+ * per call: a reverting read yields `null` instead of failing the batch).
10
+ * Falls back to individual calls when the chain has no Multicall3.
11
+ */
12
+ export async function multicallRead(provider, requests, options = {}) {
13
+ if (requests.length === 0)
14
+ return [];
15
+ const chunkSize = options.chunkSize ?? 80;
16
+ const concurrency = Math.max(1, options.concurrency ?? 4);
17
+ const multicall = new Contract(options.address ?? MULTICALL3_ADDRESS, MULTICALL3_ABI, provider);
18
+ const results = new Array(requests.length).fill(null);
19
+ const code = await provider.getCode(options.address ?? MULTICALL3_ADDRESS).catch(() => '0x');
20
+ if (code === '0x') {
21
+ await Promise.all(requests.map(async (request, index) => {
22
+ try {
23
+ const data = await provider.call({ to: request.target, data: request.iface.encodeFunctionData(request.method, request.args ?? []), ...(options.blockTag !== undefined ? { blockTag: options.blockTag } : {}) });
24
+ results[index] = [...request.iface.decodeFunctionResult(request.method, data)];
25
+ }
26
+ catch {
27
+ results[index] = null;
28
+ }
29
+ }));
30
+ return results;
31
+ }
32
+ const overrides = options.blockTag !== undefined ? { blockTag: options.blockTag } : {};
33
+ // A chunk that fails as a whole (RPC timeout, gas cap) is split and retried;
34
+ // a single call that still fails yields null like a reverting read.
35
+ const run = async (offset, size) => {
36
+ const chunk = requests.slice(offset, offset + size);
37
+ if (chunk.length === 0)
38
+ return;
39
+ const calls = chunk.map((request) => ({ target: request.target, allowFailure: true, callData: request.iface.encodeFunctionData(request.method, request.args ?? []) }));
40
+ let returned;
41
+ try {
42
+ returned = await multicall.getFunction('aggregate3').staticCall(calls, overrides);
43
+ }
44
+ catch (error) {
45
+ if (chunk.length === 1)
46
+ return;
47
+ const half = Math.ceil(chunk.length / 2);
48
+ await run(offset, half);
49
+ await run(offset + half, chunk.length - half);
50
+ return;
51
+ }
52
+ returned.forEach((entry, index) => {
53
+ const request = chunk[index];
54
+ if (!entry.success || entry.returnData === '0x')
55
+ return;
56
+ try {
57
+ results[offset + index] = [...request.iface.decodeFunctionResult(request.method, entry.returnData)];
58
+ }
59
+ catch {
60
+ results[offset + index] = null;
61
+ }
62
+ });
63
+ };
64
+ // Chunks run a few at a time: sequential batches made a 3,000-read view
65
+ // take ~13 s through a public RPC, while a full fan-out trips rate limits.
66
+ const offsets = Array.from({ length: Math.ceil(requests.length / chunkSize) }, (_, index) => index * chunkSize);
67
+ await Promise.all(Array.from({ length: Math.min(concurrency, offsets.length) }, async () => {
68
+ for (let next = offsets.shift(); next !== undefined; next = offsets.shift())
69
+ await run(next, chunkSize);
70
+ }));
71
+ return results;
72
+ }
73
+ //# sourceMappingURL=multicall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multicall.js","sourceRoot":"","sources":["../../../src/payments/evm/multicall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { BaseEvmClient } from './base-evm-client.js';
2
+ export interface PointsPolicyRegistryClientConfig {
3
+ rpcUrl: string;
4
+ fallbackRpcUrls?: string[];
5
+ contractAddress: string;
6
+ evmChainId?: number;
7
+ }
8
+ export declare class PointsPolicyRegistryClient extends BaseEvmClient {
9
+ constructor(config: PointsPolicyRegistryClientConfig);
10
+ private contract;
11
+ policyCount(): Promise<number>;
12
+ policyAt(index: number): Promise<string>;
13
+ isPolicyRegistered(policy: string): Promise<boolean>;
14
+ maxPolicies(): Promise<number>;
15
+ owner(): Promise<string>;
16
+ /** Registered modifiers in evaluation order. */
17
+ policies(): Promise<string[]>;
18
+ /** The wash-trading registry a policy pins, or null when the policy has no such pointer. */
19
+ washTradingRegistryOf(policy: string): Promise<string | null>;
20
+ }
21
+ //# sourceMappingURL=points-policy-registry-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"points-policy-registry-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/points-policy-registry-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,gCAAgC;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAAE;AAY/I,qBAAa,0BAA2B,SAAQ,aAAa;gBAC/C,MAAM,EAAE,gCAAgC;IACpD,OAAO,CAAC,QAAQ;IAEV,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACxC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IACpC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IACxB,gDAAgD;IAC1C,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAInC,4FAA4F;IACtF,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAOpE"}