epistery 1.5.3 → 1.5.4

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/cli/epistery.mjs CHANGED
@@ -313,7 +313,7 @@ async function initializeDomain(domain) {
313
313
  config.setPath(`/${domain}`);
314
314
  config.load();
315
315
 
316
- const contractAddress = config.data?.agent_contract_address;
316
+ const contractAddress = config.data?.contract_address;
317
317
 
318
318
  if (
319
319
  contractAddress &&
@@ -17,7 +17,9 @@ export interface ChainFeeData {
17
17
  export interface ChainPolicy {
18
18
  minPriorityFeeGwei?: number;
19
19
  maxFeeMultiplier?: number;
20
+ maxFeePerGasGwei?: number;
20
21
  minGasPriceGwei?: number;
22
+ maxGasPriceGwei?: number;
21
23
  gasLimitMultiplier?: number;
22
24
  }
23
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../src/chains/Chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,KAAK;IAChB;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAE3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,OAAO,CAAC,SAAS,CAAiD;gBAEtD,MAAM,EAAE,WAAW;IAgB/B;;;;;OAKG;IACH,IAAI,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,eAAe,CAQ/C;IAED,2EAA2E;IAC3E,eAAe,IAAI,OAAO;IAI1B;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAczC;;;;;;OAMG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB,GAC7C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAQ5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;IAmChF;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO;IAgBzC,wCAAwC;IACxC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS;CAG5C"}
1
+ {"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../src/chains/Chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAI1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,KAAK;IAChB;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAE3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,OAAO,CAAC,SAAS,CAAiD;gBAEtD,MAAM,EAAE,WAAW;IAgB/B;;;;;OAKG;IACH,IAAI,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,eAAe,CAQ/C;IAED,2EAA2E;IAC3E,eAAe,IAAI,OAAO;IAI1B;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAczC;;;;;;OAMG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB,GAC7C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAQ5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;IAmChF;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO;IAgBzC,wCAAwC;IACxC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS;CAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../src/chains/Chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../src/chains/Chain.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"JapanOpenChain.d.ts","sourceRoot":"","sources":["../../src/chains/JapanOpenChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG9C;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAC,OAAO,SAAM;IACpB,MAAM,CAAC,QAAQ;;;;;;MAMb;IAEF,eAAe,IAAI,OAAO;IAI1B,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS;IAInC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;CAO1C"}
1
+ {"version":3,"file":"JapanOpenChain.d.ts","sourceRoot":"","sources":["../../src/chains/JapanOpenChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG9C;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAC,OAAO,SAAM;IACpB,MAAM,CAAC,QAAQ;;;;;;MAMb;IAEF,eAAe,IAAI,OAAO;IAI1B,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS;IAInC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;CAmB1C"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JapanOpenChain = void 0;
4
+ const ethers_1 = require("ethers");
4
5
  const Chain_1 = require("./Chain");
5
6
  const registry_1 = require("./registry");
6
7
  /**
@@ -27,6 +28,14 @@ class JapanOpenChain extends Chain_1.Chain {
27
28
  const floor = this.minGasPrice();
28
29
  const networkPrice = fd.gasPrice ?? floor;
29
30
  const gasPrice = networkPrice.gt(floor) ? networkPrice : floor;
31
+ // Hard ceiling matching PolygonChain — refuse to send if the chain
32
+ // wants more than the operator is willing to pay. Default 200 gwei.
33
+ const ceiling = this.gwei(this.policy.maxGasPriceGwei ?? 500);
34
+ if (gasPrice.gt(ceiling)) {
35
+ throw new Error(`JOC gas price ${ethers_1.ethers.utils.formatUnits(gasPrice, 'gwei')} gwei exceeds ` +
36
+ `cap ${ethers_1.ethers.utils.formatUnits(ceiling, 'gwei')} gwei. ` +
37
+ `Raise policy.maxGasPriceGwei in config.ini if intentional.`);
38
+ }
30
39
  return { gasPrice };
31
40
  }
32
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"JapanOpenChain.js","sourceRoot":"","sources":["../../src/chains/JapanOpenChain.ts"],"names":[],"mappings":";;;AACA,mCAA8C;AAC9C,yCAA2C;AAE3C;;;;;;;;;;;GAWG;AACH,MAAa,cAAe,SAAQ,aAAK;IAUvC,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAES,WAAW;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/D,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;;AAxBH,wCAyBC;AAxBQ,sBAAO,GAAG,EAAE,CAAC;AACb,uBAAQ,GAAG;IAChB,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,uCAAuC;IAC5C,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,EAAE;CAC3B,CAAC;AAmBJ,IAAA,wBAAa,EAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"JapanOpenChain.js","sourceRoot":"","sources":["../../src/chains/JapanOpenChain.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,mCAA8C;AAC9C,yCAA2C;AAE3C;;;;;;;;;;;GAWG;AACH,MAAa,cAAe,SAAQ,aAAK;IAUvC,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAES,WAAW;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;QAE/D,mEAAmE;QACnE,oEAAoE;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,GAAG,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,iBAAiB,eAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,gBAAgB;gBAC3E,OAAO,eAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS;gBACzD,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;;AApCH,wCAqCC;AApCQ,sBAAO,GAAG,EAAE,CAAC;AACb,uBAAQ,GAAG;IAChB,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,uCAAuC;IAC5C,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,EAAE;CAC3B,CAAC;AA+BJ,IAAA,wBAAa,EAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PolygonChain.d.ts","sourceRoot":"","sources":["../../src/chains/PolygonChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG9C;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,MAAM,CAAC,OAAO,SAAO;IACrB,MAAM,CAAC,QAAQ;;;;;;MAMb;IAEF,SAAS,CAAC,cAAc,IAAI,MAAM,CAAC,SAAS;IAItC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;CAc1C;AAED;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,MAAM,CAAC,OAAO,SAAS;IACvB,MAAM,CAAC,QAAQ;;;;;;MAMb;CACH"}
1
+ {"version":3,"file":"PolygonChain.d.ts","sourceRoot":"","sources":["../../src/chains/PolygonChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG9C;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,MAAM,CAAC,OAAO,SAAO;IACrB,MAAM,CAAC,QAAQ;;;;;;MAMb;IAEF,SAAS,CAAC,cAAc,IAAI,MAAM,CAAC,SAAS;IAItC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;CA0B1C;AAED;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,MAAM,CAAC,OAAO,SAAS;IACvB,MAAM,CAAC,QAAQ;;;;;;MAMb;CACH"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AmoyChain = exports.PolygonChain = void 0;
4
+ const ethers_1 = require("ethers");
4
5
  const Chain_1 = require("./Chain");
5
6
  const registry_1 = require("./registry");
6
7
  /**
@@ -29,6 +30,16 @@ class PolygonChain extends Chain_1.Chain {
29
30
  const minMaxFee = maxPriorityFeePerGas.mul(multiplier);
30
31
  const networkMax = fd.maxFeePerGas ?? minMaxFee;
31
32
  const maxFeePerGas = networkMax.gt(minMaxFee) ? networkMax : minMaxFee;
33
+ // Hard ceiling: refuse to send if the chain wants more than the operator
34
+ // is willing to pay. Default 500 gwei is high enough for normal Polygon
35
+ // congestion but catches anomalies that would drain a wallet on a single
36
+ // contract deploy. Override via policy.maxFeePerGasGwei in config.ini.
37
+ const ceiling = this.gwei(this.policy.maxFeePerGasGwei ?? 500);
38
+ if (maxFeePerGas.gt(ceiling)) {
39
+ throw new Error(`Polygon fee ${ethers_1.ethers.utils.formatUnits(maxFeePerGas, 'gwei')} gwei exceeds ` +
40
+ `cap ${ethers_1.ethers.utils.formatUnits(ceiling, 'gwei')} gwei. ` +
41
+ `Raise policy.maxFeePerGasGwei in config.ini if intentional.`);
42
+ }
32
43
  return { maxPriorityFeePerGas, maxFeePerGas };
33
44
  }
34
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PolygonChain.js","sourceRoot":"","sources":["../../src/chains/PolygonChain.ts"],"names":[],"mappings":";;;AACA,mCAA8C;AAC9C,yCAA2C;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAa,YAAa,SAAQ,aAAK;IAU3B,cAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,MAAM,eAAe,GAAG,EAAE,CAAC,oBAAoB,IAAI,KAAK,CAAC;QACzD,MAAM,oBAAoB,GAAG,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;QAEjF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,IAAI,SAAS,CAAC;QAChD,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;IAChD,CAAC;;AA3BH,oCA4BC;AA3BQ,oBAAO,GAAG,GAAG,CAAC;AACd,qBAAQ,GAAG;IAChB,IAAI,EAAE,iBAAiB;IACvB,GAAG,EAAE,wCAAwC;IAC7C,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,EAAE;CAC3B,CAAC;AAsBJ;;;;;;GAMG;AACH,MAAa,SAAU,SAAQ,YAAY;;AAA3C,8BASC;AARQ,iBAAO,GAAG,KAAK,CAAC;AAChB,kBAAQ,GAAG;IAChB,IAAI,EAAE,sBAAsB;IAC5B,GAAG,EAAE,qCAAqC;IAC1C,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,EAAE;CAC3B,CAAC;AAGJ,IAAA,wBAAa,EAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAClD,IAAA,wBAAa,EAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"PolygonChain.js","sourceRoot":"","sources":["../../src/chains/PolygonChain.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,mCAA8C;AAC9C,yCAA2C;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAa,YAAa,SAAQ,aAAK;IAU3B,cAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,MAAM,eAAe,GAAG,EAAE,CAAC,oBAAoB,IAAI,KAAK,CAAC;QACzD,MAAM,oBAAoB,GAAG,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;QAEjF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,IAAI,SAAS,CAAC;QAChD,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvE,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,GAAG,CAAC,CAAC;QAC/D,IAAI,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,eAAe,eAAM,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,gBAAgB;gBAC7E,OAAO,eAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS;gBACzD,6DAA6D,CAC9D,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;IAChD,CAAC;;AAvCH,oCAwCC;AAvCQ,oBAAO,GAAG,GAAG,CAAC;AACd,qBAAQ,GAAG;IAChB,IAAI,EAAE,iBAAiB;IACvB,GAAG,EAAE,wCAAwC;IAC7C,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,EAAE;CAC3B,CAAC;AAkCJ;;;;;;GAMG;AACH,MAAa,SAAU,SAAQ,YAAY;;AAA3C,8BASC;AARQ,iBAAO,GAAG,KAAK,CAAC;AAChB,kBAAQ,GAAG;IAChB,IAAI,EAAE,sBAAsB;IAC5B,GAAG,EAAE,qCAAqC;IAC1C,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,EAAE;CAC3B,CAAC;AAGJ,IAAA,wBAAa,EAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAClD,IAAA,wBAAa,EAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC"}
@@ -195,5 +195,14 @@ nativeCurrencyDecimals=18
195
195
  ; nativeCurrencyName=Japan Open Chain Token
196
196
  ; nativeCurrencySymbol=JOC
197
197
  ; nativeCurrencyDecimals=18
198
+ ;
199
+ ; Per-chain fee policy (optional). Bump these only after a market move
200
+ ; legitimately pushes the network past the cap; the default is meant to
201
+ ; be a circuit-breaker, not a normal operating point.
202
+ ; [default.rpc.137.policy]
203
+ ; maxFeePerGasGwei=500 ; refuse to send if Polygon wants more
204
+ ; minPriorityFeeGwei=25 ; Polygon RPC floor (don't lower)
205
+ ; [default.rpc.81.policy]
206
+ ; maxGasPriceGwei=500 ; legacy-chain analogue (JOC)
198
207
  `;
199
208
  //# sourceMappingURL=Config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/utils/Config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/utils/Config.ts"],"names":[],"mappings":"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"}
package/index.mjs CHANGED
@@ -215,7 +215,7 @@ class EpisteryAttach {
215
215
  // Get contract address from domain config
216
216
  this.config.setPath(`/${this.domainName}`);
217
217
  const contractAddress =
218
- this.config.data?.agent_contract_address ||
218
+ this.config.data?.contract_address ||
219
219
  process.env.AGENT_CONTRACT_ADDRESS;
220
220
  if (!contractAddress) {
221
221
  throw new Error("Agent contract address not configured for domain");
@@ -257,7 +257,7 @@ class EpisteryAttach {
257
257
  // Get contract address from domain config
258
258
  this.config.setPath(`/${this.domainName}`);
259
259
  const contractAddress =
260
- this.config.data?.agent_contract_address ||
260
+ this.config.data?.contract_address ||
261
261
  process.env.AGENT_CONTRACT_ADDRESS;
262
262
  if (!contractAddress) {
263
263
  throw new Error("Agent contract address not configured for domain");
@@ -299,7 +299,7 @@ class EpisteryAttach {
299
299
  // Get contract address from domain config
300
300
  this.config.setPath(`/${this.domainName}`);
301
301
  const contractAddress =
302
- this.config.data?.agent_contract_address ||
302
+ this.config.data?.contract_address ||
303
303
  process.env.AGENT_CONTRACT_ADDRESS;
304
304
  if (!contractAddress) {
305
305
  throw new Error("Agent contract address not configured for domain");
@@ -340,7 +340,7 @@ class EpisteryAttach {
340
340
 
341
341
  this.config.setPath(`/${this.domainName}`);
342
342
  const contractAddress =
343
- this.config.data?.agent_contract_address ||
343
+ this.config.data?.contract_address ||
344
344
  process.env.AGENT_CONTRACT_ADDRESS;
345
345
  if (!contractAddress) {
346
346
  throw new Error("Agent contract address not configured for domain");
@@ -380,7 +380,7 @@ class EpisteryAttach {
380
380
 
381
381
  this.config.setPath(`/${this.domainName}`);
382
382
  const contractAddress =
383
- this.config.data?.agent_contract_address ||
383
+ this.config.data?.contract_address ||
384
384
  process.env.AGENT_CONTRACT_ADDRESS;
385
385
  if (!contractAddress) {
386
386
  throw new Error("Agent contract address not configured for domain");
@@ -410,7 +410,7 @@ class EpisteryAttach {
410
410
  // Get contract address from domain config
411
411
  this.config.setPath(`/${this.domainName}`);
412
412
  const contractAddress =
413
- this.config.data?.agent_contract_address ||
413
+ this.config.data?.contract_address ||
414
414
  process.env.AGENT_CONTRACT_ADDRESS;
415
415
  if (!contractAddress) {
416
416
  throw new Error("Agent contract address not configured for domain");
@@ -472,7 +472,7 @@ class EpisteryAttach {
472
472
  // Get contract address from domain config
473
473
  this.config.setPath(`/${this.domainName}`);
474
474
  const contractAddress =
475
- this.config.data?.agent_contract_address ||
475
+ this.config.data?.contract_address ||
476
476
  process.env.AGENT_CONTRACT_ADDRESS;
477
477
  if (!contractAddress) {
478
478
  throw new Error("Agent contract address not configured for domain");
@@ -515,7 +515,7 @@ class EpisteryAttach {
515
515
  // Get contract address from domain config
516
516
  this.config.setPath(`/${this.domainName}`);
517
517
  const contractAddress =
518
- this.config.data?.agent_contract_address ||
518
+ this.config.data?.contract_address ||
519
519
  process.env.AGENT_CONTRACT_ADDRESS;
520
520
  if (!contractAddress) {
521
521
  throw new Error("Agent contract address not configured for domain");
@@ -545,7 +545,7 @@ class EpisteryAttach {
545
545
  // Get contract address from domain config - reload from disk to get latest
546
546
  this.config.setPath(`/${this.domainName}`);
547
547
  this.config.load(); // Force reload from disk
548
- const agentContractAddress = this.config.data?.agent_contract_address;
548
+ const agentContractAddress = this.config.data?.contract_address;
549
549
  const upgradeNotes = this.config.data?.contract_upgrade_notes;
550
550
 
551
551
  if (
@@ -636,7 +636,7 @@ class EpisteryAttach {
636
636
  // Get contract address from domain config
637
637
  this.config.setPath(`/${this.domainName}`);
638
638
  const agentContractAddress =
639
- this.config.data?.agent_contract_address ||
639
+ this.config.data?.contract_address ||
640
640
  process.env.AGENT_CONTRACT_ADDRESS;
641
641
  if (
642
642
  !agentContractAddress ||
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "epistery",
3
- "version": "1.5.3",
3
+ "version": "1.5.4",
4
4
  "description": "Epistery brings blockchain capabilities to mundane web tasks like engagement metrics, authentication and commerce of all sorts.",
5
5
  "author": "Rootz Corp.",
6
6
  "license": "MIT",
@@ -1,6 +1,50 @@
1
1
  const hre = require("hardhat");
2
2
  const fs = require("fs");
3
3
  const path = require("path");
4
+ const ini = require("ini");
5
+ const os = require("os");
6
+
7
+ /**
8
+ * Read per-chain policy from ~/.epistery/config.ini under
9
+ * [default.rpc.<chainId>.policy]. Returns {} if no overrides set.
10
+ */
11
+ function loadChainPolicy(chainId) {
12
+ const configPath = path.join(os.homedir(), ".epistery", "config.ini");
13
+ if (!fs.existsSync(configPath)) return {};
14
+ const data = ini.decode(fs.readFileSync(configPath, "utf8"));
15
+ return data?.default?.rpc?.[String(chainId)]?.policy || {};
16
+ }
17
+
18
+ /**
19
+ * Build EIP-1559 overrides for Polygon (137) and Amoy (80002): apply the
20
+ * 25 gwei priority floor, then enforce a configurable ceiling so a base-fee
21
+ * spike or RPC misreport can't drain the wallet on a single deploy.
22
+ */
23
+ async function polygonDeployOverrides(provider, policy) {
24
+ const fd = await provider.getFeeData();
25
+ const minPriority = hre.ethers.utils.parseUnits(
26
+ String(policy.minPriorityFeeGwei ?? 25), "gwei"
27
+ );
28
+ const networkPriority = fd.maxPriorityFeePerGas || minPriority;
29
+ const maxPriorityFeePerGas = networkPriority.gt(minPriority) ? networkPriority : minPriority;
30
+
31
+ const multiplier = policy.maxFeeMultiplier ?? 2;
32
+ const minMaxFee = maxPriorityFeePerGas.mul(multiplier);
33
+ const networkMax = fd.maxFeePerGas || minMaxFee;
34
+ const maxFeePerGas = networkMax.gt(minMaxFee) ? networkMax : minMaxFee;
35
+
36
+ const ceiling = hre.ethers.utils.parseUnits(
37
+ String(policy.maxFeePerGasGwei ?? 500), "gwei"
38
+ );
39
+ if (maxFeePerGas.gt(ceiling)) {
40
+ throw new Error(
41
+ `Aborting deploy: network fee ${hre.ethers.utils.formatUnits(maxFeePerGas, "gwei")} gwei ` +
42
+ `exceeds cap ${hre.ethers.utils.formatUnits(ceiling, "gwei")} gwei. ` +
43
+ `Raise [default.rpc.<chainId>.policy] maxFeePerGasGwei in ~/.epistery/config.ini if intentional.`
44
+ );
45
+ }
46
+ return { maxFeePerGas, maxPriorityFeePerGas };
47
+ }
4
48
 
5
49
  /**
6
50
  * Deploy Agent contract script
@@ -40,7 +84,23 @@ async function main() {
40
84
  // Deploy the Agent contract with constructor parameters
41
85
  console.log("\nDeploying Agent contract...");
42
86
  const Agent = await hre.ethers.getContractFactory("Agent");
43
- const agent = await Agent.deploy(domain, sponsor);
87
+
88
+ // Apply fee cap on Polygon family — protects against base-fee spikes or
89
+ // RPC misreports that would otherwise drain the deployer wallet.
90
+ const chainId = hre.network.config.chainId;
91
+ let overrides = {};
92
+ if (chainId === 137 || chainId === 80002) {
93
+ const policy = loadChainPolicy(chainId);
94
+ overrides = await polygonDeployOverrides(deployer.provider, policy);
95
+ console.log(
96
+ "Gas overrides: maxFeePerGas=" +
97
+ hre.ethers.utils.formatUnits(overrides.maxFeePerGas, "gwei") + " gwei, " +
98
+ "maxPriorityFeePerGas=" +
99
+ hre.ethers.utils.formatUnits(overrides.maxPriorityFeePerGas, "gwei") + " gwei"
100
+ );
101
+ }
102
+
103
+ const agent = await Agent.deploy(domain, sponsor, overrides);
44
104
 
45
105
  await agent.deployed();
46
106
  const contractAddress = agent.address;
@@ -70,7 +130,7 @@ async function main() {
70
130
  }
71
131
 
72
132
  // Update contract address for this domain
73
- config[domain].agent_contract_address = contractAddress;
133
+ config[domain].contract_address = contractAddress;
74
134
  config[domain].updated_at = new Date().toISOString();
75
135
 
76
136
  // Save config
@@ -78,7 +138,7 @@ async function main() {
78
138
  fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
79
139
 
80
140
  console.log("\n✅ Updated config.json:");
81
- console.log(` ${domain}.agent_contract_address = ${contractAddress}`);
141
+ console.log(` ${domain}.contract_address = ${contractAddress}`);
82
142
  } catch (error) {
83
143
  console.error("\n⚠️ Failed to update config.json:", error.message);
84
144
  console.log("You will need to manually update the configuration.");
@@ -20,8 +20,13 @@ export interface ChainPolicy {
20
20
  // EIP-1559 floors (in gwei)
21
21
  minPriorityFeeGwei?: number;
22
22
  maxFeeMultiplier?: number; // applied to max(networkMax, minPriority * 2)
23
+ // EIP-1559 ceiling (in gwei) — refuse to send if the chain reports a
24
+ // base fee above this. Bumping the cap is a manual config change so a
25
+ // legitimate market spike can't silently drain a wallet.
26
+ maxFeePerGasGwei?: number;
23
27
  // Legacy gas
24
28
  minGasPriceGwei?: number;
29
+ maxGasPriceGwei?: number; // legacy-chain analogue of maxFeePerGasGwei
25
30
  // Gas limit estimation safety
26
31
  gasLimitMultiplier?: number; // applied to estimateGas result
27
32
  }
@@ -37,6 +37,18 @@ export class JapanOpenChain extends Chain {
37
37
  const floor = this.minGasPrice();
38
38
  const networkPrice = fd.gasPrice ?? floor;
39
39
  const gasPrice = networkPrice.gt(floor) ? networkPrice : floor;
40
+
41
+ // Hard ceiling matching PolygonChain — refuse to send if the chain
42
+ // wants more than the operator is willing to pay. Default 200 gwei.
43
+ const ceiling = this.gwei(this.policy.maxGasPriceGwei ?? 500);
44
+ if (gasPrice.gt(ceiling)) {
45
+ throw new Error(
46
+ `JOC gas price ${ethers.utils.formatUnits(gasPrice, 'gwei')} gwei exceeds ` +
47
+ `cap ${ethers.utils.formatUnits(ceiling, 'gwei')} gwei. ` +
48
+ `Raise policy.maxGasPriceGwei in config.ini if intentional.`
49
+ );
50
+ }
51
+
40
52
  return { gasPrice };
41
53
  }
42
54
  }
@@ -41,6 +41,18 @@ export class PolygonChain extends Chain {
41
41
  const networkMax = fd.maxFeePerGas ?? minMaxFee;
42
42
  const maxFeePerGas = networkMax.gt(minMaxFee) ? networkMax : minMaxFee;
43
43
 
44
+ // Hard ceiling: refuse to send if the chain wants more than the operator
45
+ // is willing to pay. Default 500 gwei is high enough for normal Polygon
46
+ // congestion but catches anomalies that would drain a wallet on a single
47
+ // contract deploy. Override via policy.maxFeePerGasGwei in config.ini.
48
+ const ceiling = this.gwei(this.policy.maxFeePerGasGwei ?? 500);
49
+ if (maxFeePerGas.gt(ceiling)) {
50
+ throw new Error(
51
+ `Polygon fee ${ethers.utils.formatUnits(maxFeePerGas, 'gwei')} gwei exceeds ` +
52
+ `cap ${ethers.utils.formatUnits(ceiling, 'gwei')} gwei. ` +
53
+ `Raise policy.maxFeePerGasGwei in config.ini if intentional.`
54
+ );
55
+ }
44
56
  return { maxPriorityFeePerGas, maxFeePerGas };
45
57
  }
46
58
  }
@@ -215,4 +215,13 @@ nativeCurrencyDecimals=18
215
215
  ; nativeCurrencyName=Japan Open Chain Token
216
216
  ; nativeCurrencySymbol=JOC
217
217
  ; nativeCurrencyDecimals=18
218
+ ;
219
+ ; Per-chain fee policy (optional). Bump these only after a market move
220
+ ; legitimately pushes the network past the cap; the default is meant to
221
+ ; be a circuit-breaker, not a normal operating point.
222
+ ; [default.rpc.137.policy]
223
+ ; maxFeePerGasGwei=500 ; refuse to send if Polygon wants more
224
+ ; minPriorityFeeGwei=25 ; Polygon RPC floor (don't lower)
225
+ ; [default.rpc.81.policy]
226
+ ; maxGasPriceGwei=500 ; legacy-chain analogue (JOC)
218
227
  `
package/test/setup.ts CHANGED
@@ -76,7 +76,7 @@ default_domain=localhost
76
76
 
77
77
  // Write localhost domain config
78
78
  const localhostConfig = `domain=localhost
79
- agent_contract_address=${TEST_CONTRACT_ADDRESS || ''}
79
+ contract_address=${TEST_CONTRACT_ADDRESS || ''}
80
80
 
81
81
  [wallet]
82
82
  address=${TEST_WALLETS.server.address}