dexe-mcp 0.9.0 → 0.11.1
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/CHANGELOG.md +109 -20
- package/README.md +6 -6
- package/dist/config.d.ts +22 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +30 -0
- package/dist/config.js.map +1 -1
- package/dist/env/schema.d.ts +21 -0
- package/dist/env/schema.d.ts.map +1 -1
- package/dist/env/schema.js +21 -0
- package/dist/env/schema.js.map +1 -1
- package/dist/lib/controllingVoters.d.ts +44 -0
- package/dist/lib/controllingVoters.d.ts.map +1 -0
- package/dist/lib/controllingVoters.js +152 -0
- package/dist/lib/controllingVoters.js.map +1 -0
- package/dist/lib/dangerousSelectors.d.ts +1 -1
- package/dist/lib/dangerousSelectors.d.ts.map +1 -1
- package/dist/lib/dangerousSelectors.js +12 -22
- package/dist/lib/dangerousSelectors.js.map +1 -1
- package/dist/lib/decoders.d.ts +4 -4
- package/dist/lib/decoders.d.ts.map +1 -1
- package/dist/lib/decoders.js +2 -2
- package/dist/lib/govProposalView.d.ts +37 -0
- package/dist/lib/govProposalView.d.ts.map +1 -0
- package/dist/lib/govProposalView.js +42 -0
- package/dist/lib/govProposalView.js.map +1 -0
- package/dist/lib/protocolAdvisories.d.ts +12 -13
- package/dist/lib/protocolAdvisories.d.ts.map +1 -1
- package/dist/lib/protocolAdvisories.js +23 -16
- package/dist/lib/protocolAdvisories.js.map +1 -1
- package/dist/lib/quorumRisk.d.ts +92 -0
- package/dist/lib/quorumRisk.d.ts.map +1 -0
- package/dist/lib/quorumRisk.js +159 -0
- package/dist/lib/quorumRisk.js.map +1 -0
- package/dist/lib/time.d.ts +16 -0
- package/dist/lib/time.d.ts.map +1 -0
- package/dist/lib/time.js +24 -0
- package/dist/lib/time.js.map +1 -0
- package/dist/tools/daoDeploy.d.ts.map +1 -1
- package/dist/tools/daoDeploy.js +32 -0
- package/dist/tools/daoDeploy.js.map +1 -1
- package/dist/tools/flow.d.ts.map +1 -1
- package/dist/tools/flow.js +90 -1
- package/dist/tools/flow.js.map +1 -1
- package/dist/tools/gov.js +2 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/otc.d.ts +20 -0
- package/dist/tools/otc.d.ts.map +1 -1
- package/dist/tools/otc.js +191 -58
- package/dist/tools/otc.js.map +1 -1
- package/dist/tools/proposalBuild.d.ts.map +1 -1
- package/dist/tools/proposalBuild.js +19 -5
- package/dist/tools/proposalBuild.js.map +1 -1
- package/dist/tools/proposalBuildComplex.d.ts.map +1 -1
- package/dist/tools/proposalBuildComplex.js +12 -1
- package/dist/tools/proposalBuildComplex.js.map +1 -1
- package/dist/tools/proposalBuildMore.d.ts.map +1 -1
- package/dist/tools/proposalBuildMore.js +8 -5
- package/dist/tools/proposalBuildMore.js.map +1 -1
- package/dist/tools/risk.d.ts +4 -0
- package/dist/tools/risk.d.ts.map +1 -0
- package/dist/tools/risk.js +255 -0
- package/dist/tools/risk.js.map +1 -0
- package/dist/tools/subgraph.d.ts.map +1 -1
- package/dist/tools/subgraph.js +22 -15
- package/dist/tools/subgraph.js.map +1 -1
- package/dist/tools/voteBuild.d.ts.map +1 -1
- package/dist/tools/voteBuild.js +16 -4
- package/dist/tools/voteBuild.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/gov.js
CHANGED
|
@@ -199,9 +199,9 @@ const PROPOSAL_STATE_NAMES = [
|
|
|
199
199
|
];
|
|
200
200
|
/**
|
|
201
201
|
* Render a decoded call as indented text, printing its decoded args, a
|
|
202
|
-
* ⚠ PRIVILEGED marker for
|
|
202
|
+
* ⚠ PRIVILEGED marker for privileged-class selectors, and recursively unwrapping any
|
|
203
203
|
* nested calls (e.g. the inner calls of a `multicall`) so a reviewer reading
|
|
204
|
-
* the text sees hidden privileged actions, not just the wrapper
|
|
204
|
+
* the text sees hidden privileged actions, not just the wrapper.
|
|
205
205
|
*/
|
|
206
206
|
function renderDecodedCall(call, indent) {
|
|
207
207
|
const flag = call.privileged ? " ⚠ PRIVILEGED SELECTOR" : "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAqC/C;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CA0CvE"}
|
package/dist/tools/index.js
CHANGED
|
@@ -28,6 +28,7 @@ import { registerSafeTools } from "./safe.js";
|
|
|
28
28
|
import { registerSimulateTools } from "./simulate.js";
|
|
29
29
|
import { registerInboxTools } from "./inbox.js";
|
|
30
30
|
import { registerPredictTools } from "./predict.js";
|
|
31
|
+
import { registerRiskTools } from "./risk.js";
|
|
31
32
|
import { SignerManager } from "../lib/signer.js";
|
|
32
33
|
import { WalletConnectManager } from "../lib/walletconnect.js";
|
|
33
34
|
import { registerGovernorTools } from "../governor/index.js";
|
|
@@ -60,6 +61,7 @@ export function registerAll(server, config) {
|
|
|
60
61
|
registerMerkleTools(server, ctx);
|
|
61
62
|
registerInboxTools(server, ctx);
|
|
62
63
|
registerPredictTools(server, ctx);
|
|
64
|
+
registerRiskTools(server, ctx);
|
|
63
65
|
const signer = new SignerManager(config);
|
|
64
66
|
const wc = new WalletConnectManager(config);
|
|
65
67
|
registerTxTools(server, config, signer, wc);
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAiB,EAAE,MAAkB;IAC/D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAElE,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,8BAA8B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,iCAAiC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,kCAAkC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,kCAAkC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5C,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,0EAA0E;IAC1E,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACvD,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACtC,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAE3C,0EAA0E;IAC1E,sDAAsD;IACtD,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC"}
|
package/dist/tools/otc.d.ts
CHANGED
|
@@ -2,6 +2,26 @@ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import type { ToolContext } from "./context.js";
|
|
3
3
|
import { SignerManager } from "../lib/signer.js";
|
|
4
4
|
import type { TxPayload } from "../lib/calldata.js";
|
|
5
|
+
/**
|
|
6
|
+
* Exact mirror of `ITokenSaleProposal.TierView` — a NESTED struct of
|
|
7
|
+
* `{ tierInitParams, tierInfo, tierAdditionalInfo }`. The previous flat shape
|
|
8
|
+
* (saleTokenAddress before claimLockDuration, reversed VestingSettings) was
|
|
9
|
+
* the pre-Bug-#25 field order and decoded garbage against live tiers.
|
|
10
|
+
* Field order verified against
|
|
11
|
+
* `DeXe-Protocol/contracts/interfaces/gov/proposals/ITokenSaleProposal.sol`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const TIER_VIEW_TUPLE: string;
|
|
14
|
+
export declare const GET_TIER_VIEWS_FRAGMENT = "function getTierViews(uint256 offset, uint256 limit) view returns (tuple(tuple(tuple(string name, string description) metadata, uint256 totalTokenProvided, uint64 saleStartTime, uint64 saleEndTime, uint64 claimLockDuration, address saleTokenAddress, address[] purchaseTokenAddresses, uint256[] exchangeRates, uint256 minAllocationPerUser, uint256 maxAllocationPerUser, tuple(uint256 vestingPercentage, uint64 vestingDuration, uint64 cliffPeriod, uint64 unlockStep) vestingSettings, tuple(uint8 participationType, bytes data)[] participationDetails) tierInitParams, tuple(bool isOff, uint256 totalSold, string uri, tuple(uint64 vestingStartTime, uint64 vestingEndTime) vestingTierInfo) tierInfo, tuple(bytes32 merkleRoot, string merkleUri, uint256 lastModified) tierAdditionalInfo)[] tierViews)";
|
|
15
|
+
/**
|
|
16
|
+
* Protocol-wide native-coin sentinel (`Globals.sol::ETHEREUM_ADDRESS`).
|
|
17
|
+
* `TokenSaleProposalBuy` keys exchange rates by this address and checks
|
|
18
|
+
* `tokenToBuyWith != ETHEREUM_ADDRESS` for the native path — passing the
|
|
19
|
+
* zero address on-chain reverts with "TSP: incorrect token". We accept the
|
|
20
|
+
* zero address as caller input for convenience, but calldata must always
|
|
21
|
+
* carry ETHEREUM_ADDRESS.
|
|
22
|
+
*/
|
|
23
|
+
export declare const ETHEREUM_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
24
|
+
export declare function isNativeSentinel(addr: string): boolean;
|
|
5
25
|
/**
|
|
6
26
|
* W29: exact-scope ERC20 approval for an OTC purchase.
|
|
7
27
|
*
|
package/dist/tools/otc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otc.d.ts","sourceRoot":"","sources":["../../src/tools/otc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"otc.d.ts","sourceRoot":"","sources":["../../src/tools/otc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA8BpD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,QAKvB,CAAC;AAEN,eAAO,MAAM,uBAAuB,8xBAAuG,CAAC;AAoC5I;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,+CAA+C,CAAC;AAE7E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,SAAS,CAQX;AA8DD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CA2pBN"}
|
package/dist/tools/otc.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { Interface, ZeroAddress, isAddress, getAddress } from "ethers";
|
|
2
|
+
import { Interface, ZeroAddress, ZeroHash, isAddress, getAddress } from "ethers";
|
|
3
3
|
import { RpcProvider } from "../rpc.js";
|
|
4
4
|
import { multicall } from "../lib/multicall.js";
|
|
5
5
|
import { runProposalCreate, sendOrCollect } from "./flow.js";
|
|
6
6
|
import { resolveChain } from "../config.js";
|
|
7
7
|
import { buildTokenSaleMultiActions, tierSchema, } from "./proposalBuildComplex.js";
|
|
8
|
+
import { PinataClient } from "../lib/ipfs.js";
|
|
8
9
|
import { buildAddressMerkleTree, computeLeafHash, verifyProof, } from "../lib/merkleTree.js";
|
|
9
10
|
import { simulateCalldata } from "./simulate.js";
|
|
10
11
|
import { parseUintString } from "../lib/amount.js";
|
|
12
|
+
import { unixToUtc } from "../lib/time.js";
|
|
11
13
|
function errorResult(message) {
|
|
12
14
|
return { content: [{ type: "text", text: message }], isError: true };
|
|
13
15
|
}
|
|
@@ -17,9 +19,23 @@ const ERC20_ABI = new Interface([
|
|
|
17
19
|
"function allowance(address owner, address spender) view returns (uint256)",
|
|
18
20
|
"function approve(address spender, uint256 amount) returns (bool)",
|
|
19
21
|
]);
|
|
22
|
+
/**
|
|
23
|
+
* Exact mirror of `ITokenSaleProposal.TierView` — a NESTED struct of
|
|
24
|
+
* `{ tierInitParams, tierInfo, tierAdditionalInfo }`. The previous flat shape
|
|
25
|
+
* (saleTokenAddress before claimLockDuration, reversed VestingSettings) was
|
|
26
|
+
* the pre-Bug-#25 field order and decoded garbage against live tiers.
|
|
27
|
+
* Field order verified against
|
|
28
|
+
* `DeXe-Protocol/contracts/interfaces/gov/proposals/ITokenSaleProposal.sol`.
|
|
29
|
+
*/
|
|
30
|
+
export const TIER_VIEW_TUPLE = "tuple(" +
|
|
31
|
+
"tuple(tuple(string name, string description) metadata, uint256 totalTokenProvided, uint64 saleStartTime, uint64 saleEndTime, uint64 claimLockDuration, address saleTokenAddress, address[] purchaseTokenAddresses, uint256[] exchangeRates, uint256 minAllocationPerUser, uint256 maxAllocationPerUser, tuple(uint256 vestingPercentage, uint64 vestingDuration, uint64 cliffPeriod, uint64 unlockStep) vestingSettings, tuple(uint8 participationType, bytes data)[] participationDetails) tierInitParams, " +
|
|
32
|
+
"tuple(bool isOff, uint256 totalSold, string uri, tuple(uint64 vestingStartTime, uint64 vestingEndTime) vestingTierInfo) tierInfo, " +
|
|
33
|
+
"tuple(bytes32 merkleRoot, string merkleUri, uint256 lastModified) tierAdditionalInfo" +
|
|
34
|
+
")";
|
|
35
|
+
export const GET_TIER_VIEWS_FRAGMENT = `function getTierViews(uint256 offset, uint256 limit) view returns (${TIER_VIEW_TUPLE}[] tierViews)`;
|
|
20
36
|
const TOKEN_SALE_ABI = new Interface([
|
|
21
37
|
"function latestTierId() view returns (uint256)",
|
|
22
|
-
|
|
38
|
+
GET_TIER_VIEWS_FRAGMENT,
|
|
23
39
|
"function getUserViews(address user, uint256[] tierIds, bytes32[][] proofs) view returns (tuple(bool canParticipate, tuple(bool isClaimed, bool canClaim, uint64 claimUnlockTime, uint256 claimTotalAmount, uint256 boughtTotalAmount, address[] lockedTokenAddresses, uint256[] lockedTokenAmounts, address[] lockedNftAddresses, uint256[][] lockedNftIds, address[] purchaseTokenAddresses, uint256[] purchaseTokenAmounts) purchaseView, tuple(uint64 latestVestingWithdraw, uint64 nextUnlockTime, uint256 nextUnlockAmount, uint256 vestingTotalAmount, uint256 vestingWithdrawnAmount, uint256 amountToWithdraw, uint256 lockedAmount) vestingUserView)[] userViews)",
|
|
24
40
|
"function buy(uint256 tierId, address tokenToBuyWith, uint256 amount, bytes32[] proof) payable",
|
|
25
41
|
"function claim(uint256[] tierIds)",
|
|
@@ -45,8 +61,18 @@ function ok(data) {
|
|
|
45
61
|
function bigintReplacer(_k, v) {
|
|
46
62
|
return typeof v === "bigint" ? v.toString() : v;
|
|
47
63
|
}
|
|
48
|
-
|
|
49
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Protocol-wide native-coin sentinel (`Globals.sol::ETHEREUM_ADDRESS`).
|
|
66
|
+
* `TokenSaleProposalBuy` keys exchange rates by this address and checks
|
|
67
|
+
* `tokenToBuyWith != ETHEREUM_ADDRESS` for the native path — passing the
|
|
68
|
+
* zero address on-chain reverts with "TSP: incorrect token". We accept the
|
|
69
|
+
* zero address as caller input for convenience, but calldata must always
|
|
70
|
+
* carry ETHEREUM_ADDRESS.
|
|
71
|
+
*/
|
|
72
|
+
export const ETHEREUM_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
73
|
+
export function isNativeSentinel(addr) {
|
|
74
|
+
const a = addr.toLowerCase();
|
|
75
|
+
return a === ZeroAddress || a === ETHEREUM_ADDRESS.toLowerCase();
|
|
50
76
|
}
|
|
51
77
|
/**
|
|
52
78
|
* W29: exact-scope ERC20 approval for an OTC purchase.
|
|
@@ -67,6 +93,50 @@ export function buildExactApproval(paymentToken, tokenSaleProposal, amount, chai
|
|
|
67
93
|
description: `ERC20.approve(${tokenSaleProposal}, ${amount})`,
|
|
68
94
|
};
|
|
69
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Frontend-compat (app.dexe.io): the buyer UI regenerates merkle proofs from
|
|
98
|
+
* the IPFS `{ list: [...] }` JSON referenced by the tier's MerkleWhitelist
|
|
99
|
+
* uri (`useTokenSaleWhiteListProofFetcher`). A merkle tier created with an
|
|
100
|
+
* empty uri is unbuyable through the frontend — nobody can fetch the list to
|
|
101
|
+
* derive a proof. So before encoding, upload the whitelist and inject
|
|
102
|
+
* `ipfs://<cid>` into the participation spec (matches the frontend's
|
|
103
|
+
* `IpfsEntity.path` format; addresses lowercased like the frontend does).
|
|
104
|
+
*/
|
|
105
|
+
async function resolveMerkleUris(tiers, pinataJwt) {
|
|
106
|
+
const uploaded = [];
|
|
107
|
+
const warnings = [];
|
|
108
|
+
const out = [];
|
|
109
|
+
for (const tier of tiers) {
|
|
110
|
+
const parts = tier.participation ?? [];
|
|
111
|
+
const needsUpload = parts.some((p) => p.type === "MerkleWhitelist" && !p.uri && (p.users?.length ?? 0) > 0);
|
|
112
|
+
if (!needsUpload) {
|
|
113
|
+
out.push(tier);
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (!pinataJwt) {
|
|
117
|
+
warnings.push(`Tier "${tier.name}": MerkleWhitelist uri left empty (DEXE_PINATA_JWT unset) — ` +
|
|
118
|
+
`app.dexe.io buyers cannot regenerate proofs for this tier; distribute the whitelist out-of-band.`);
|
|
119
|
+
out.push(tier);
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
const pinata = new PinataClient(pinataJwt);
|
|
123
|
+
const newParts = [];
|
|
124
|
+
for (const p of parts) {
|
|
125
|
+
if (p.type === "MerkleWhitelist" && !p.uri && (p.users?.length ?? 0) > 0) {
|
|
126
|
+
const list = p.users.map((u) => u.toLowerCase());
|
|
127
|
+
const res = await pinata.pinJson({ list }, { name: `otc-whitelist:${tier.name.slice(0, 24)}` });
|
|
128
|
+
const uri = `ipfs://${res.cid}`;
|
|
129
|
+
uploaded.push({ tierName: tier.name, uri });
|
|
130
|
+
newParts.push({ ...p, uri });
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
newParts.push(p);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
out.push({ ...tier, participation: newParts });
|
|
137
|
+
}
|
|
138
|
+
return { tiers: out, uploaded, warnings };
|
|
139
|
+
}
|
|
70
140
|
// ---------- register ----------
|
|
71
141
|
export function registerOtcTools(server, ctx, signer) {
|
|
72
142
|
const rpc = new RpcProvider(ctx.config);
|
|
@@ -75,7 +145,8 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
75
145
|
// =============================================
|
|
76
146
|
server.tool("dexe_otc_dao_open_sale", "OTC composite — propose to open a multi-tier token sale on a deployed OTC DAO. " +
|
|
77
147
|
"Builds the multi-tier `createTiers` envelope (deduped/summed approves, auto-merkle, " +
|
|
78
|
-
"auto-addToWhitelist for plain Whitelist tiers
|
|
148
|
+
"auto-addToWhitelist for plain Whitelist tiers, auto-upload of merkle whitelists to " +
|
|
149
|
+
"IPFS so app.dexe.io buyers can regenerate proofs), then runs the full proposal_create " +
|
|
79
150
|
"flow: balance + threshold check, ERC20 approve to UserKeeper if needed, deposit, " +
|
|
80
151
|
"IPFS proposal-metadata upload, `createProposalAndVote`. " +
|
|
81
152
|
"When DEXE_PRIVATE_KEY is set, signs and broadcasts each tx; otherwise returns " +
|
|
@@ -100,9 +171,21 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
100
171
|
buildOnly: z.boolean().default(false).describe("If true, return just the envelope (actions + metadata + merkle roots) without running the proposal_create flow. Skips IPFS upload and DAO state reads."),
|
|
101
172
|
}, async (input) => {
|
|
102
173
|
try {
|
|
174
|
+
// Frontend-compat: merkle tiers must reference their whitelist on
|
|
175
|
+
// IPFS or app.dexe.io buyers cannot derive proofs. buildOnly skips
|
|
176
|
+
// uploads by design — the caller owns IPFS there.
|
|
177
|
+
let tiers = input.tiers;
|
|
178
|
+
let whitelistUploads = [];
|
|
179
|
+
let whitelistWarnings = [];
|
|
180
|
+
if (!input.buildOnly) {
|
|
181
|
+
const resolved = await resolveMerkleUris(input.tiers, ctx.config.pinataJwt);
|
|
182
|
+
tiers = resolved.tiers;
|
|
183
|
+
whitelistUploads = resolved.uploaded;
|
|
184
|
+
whitelistWarnings = resolved.warnings;
|
|
185
|
+
}
|
|
103
186
|
const built = buildTokenSaleMultiActions({
|
|
104
187
|
tokenSaleProposal: input.tokenSaleProposal,
|
|
105
|
-
tiers
|
|
188
|
+
tiers,
|
|
106
189
|
latestTierId: input.latestTierId,
|
|
107
190
|
proposalName: input.proposalName,
|
|
108
191
|
proposalDescription: input.proposalDescription,
|
|
@@ -164,6 +247,8 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
164
247
|
tierNames: built.tierNames,
|
|
165
248
|
derivedMerkleRoots: built.derivedMerkleRoots,
|
|
166
249
|
whitelistRequests: built.whitelistRequests,
|
|
250
|
+
merkleWhitelistUploads: whitelistUploads,
|
|
251
|
+
...(whitelistWarnings.length > 0 ? { warnings: whitelistWarnings } : {}),
|
|
167
252
|
tierIdsAfterExecute: input.tiers.map((_, i) => (parseUintString(input.latestTierId, "latestTierId") + 1n + BigInt(i)).toString()),
|
|
168
253
|
},
|
|
169
254
|
});
|
|
@@ -177,8 +262,9 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
177
262
|
// =============================================
|
|
178
263
|
server.tool("dexe_otc_buyer_status", "OTC buyer aggregator — reads tier params + user state across N tiers and returns a " +
|
|
179
264
|
"render-ready summary (purchasable status, claimable amount, vesting withdrawable, " +
|
|
180
|
-
"lockup ETA). When `
|
|
181
|
-
"
|
|
265
|
+
"lockup ETA, totalSold, on-chain merkle root). When `whitelists` is supplied per tier, " +
|
|
266
|
+
"computes the user's merkle proof against that list AND passes it into getUserViews — " +
|
|
267
|
+
"so `canParticipate` is accurate for merkle-gated tiers. Read-only.", {
|
|
182
268
|
tokenSaleProposal: z.string(),
|
|
183
269
|
tierIds: z.array(z.string()).min(1),
|
|
184
270
|
user: z.string(),
|
|
@@ -207,23 +293,52 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
207
293
|
const maxTier = tierIdNums.reduce((a, b) => (a > b ? a : b));
|
|
208
294
|
const offset = (minTier - 1n).toString();
|
|
209
295
|
const limit = (maxTier - minTier + 1n).toString();
|
|
210
|
-
const calls = [
|
|
211
|
-
{
|
|
212
|
-
target: tokenSaleProposal,
|
|
213
|
-
iface: TOKEN_SALE_ABI,
|
|
214
|
-
method: "getTierViews",
|
|
215
|
-
args: [BigInt(offset), BigInt(limit)],
|
|
216
|
-
allowFailure: true,
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
target: tokenSaleProposal,
|
|
220
|
-
iface: TOKEN_SALE_ABI,
|
|
221
|
-
method: "getUserViews",
|
|
222
|
-
args: [userAddr, tierIdNums, tierIdNums.map(() => [])],
|
|
223
|
-
allowFailure: true,
|
|
224
|
-
},
|
|
225
|
-
];
|
|
226
296
|
try {
|
|
297
|
+
// Pre-compute merkle proofs per tier BEFORE the reads — the contract's
|
|
298
|
+
// getUserViews takes bytes32[][] proofs, and canParticipate for
|
|
299
|
+
// MerkleWhitelist tiers is proof-dependent (empty proofs => false even
|
|
300
|
+
// for included users). Mirrors the frontend's useFetchMergedTierViews.
|
|
301
|
+
const whitelistByTier = new Map(whitelists.map((w) => [w.tierId, w.users]));
|
|
302
|
+
const merkleByTier = new Map();
|
|
303
|
+
for (const [tierId, wlUsers] of whitelistByTier) {
|
|
304
|
+
if (!wlUsers || wlUsers.length === 0)
|
|
305
|
+
continue;
|
|
306
|
+
const checksummed = wlUsers.map((u) => {
|
|
307
|
+
if (!isAddress(u))
|
|
308
|
+
throw new Error(`whitelist user invalid: ${u}`);
|
|
309
|
+
return getAddress(u);
|
|
310
|
+
});
|
|
311
|
+
const tree = buildAddressMerkleTree(checksummed);
|
|
312
|
+
const idx = checksummed.findIndex((a) => a.toLowerCase() === userAddr.toLowerCase());
|
|
313
|
+
if (idx >= 0) {
|
|
314
|
+
const leaf = computeLeafHash([userAddr], ["address"]);
|
|
315
|
+
const proof = tree.proofs[idx];
|
|
316
|
+
merkleByTier.set(tierId, {
|
|
317
|
+
root: tree.root,
|
|
318
|
+
proof,
|
|
319
|
+
included: verifyProof(proof, tree.root, leaf),
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
merkleByTier.set(tierId, { root: tree.root, proof: [], included: false });
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
const calls = [
|
|
327
|
+
{
|
|
328
|
+
target: tokenSaleProposal,
|
|
329
|
+
iface: TOKEN_SALE_ABI,
|
|
330
|
+
method: "getTierViews",
|
|
331
|
+
args: [BigInt(offset), BigInt(limit)],
|
|
332
|
+
allowFailure: true,
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
target: tokenSaleProposal,
|
|
336
|
+
iface: TOKEN_SALE_ABI,
|
|
337
|
+
method: "getUserViews",
|
|
338
|
+
args: [userAddr, tierIdNums, tierIds.map((id) => merkleByTier.get(id)?.proof ?? [])],
|
|
339
|
+
allowFailure: true,
|
|
340
|
+
},
|
|
341
|
+
];
|
|
227
342
|
const res = await multicall(provider, calls);
|
|
228
343
|
if (!res[0].success)
|
|
229
344
|
return err(`getTierViews failed: ${res[0].error}`);
|
|
@@ -231,55 +346,66 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
231
346
|
return err(`getUserViews failed: ${res[1].error}`);
|
|
232
347
|
const tierViewsRange = res[0].value;
|
|
233
348
|
const userViews = res[1].value;
|
|
234
|
-
const whitelistByTier = new Map(whitelists.map((w) => [w.tierId, w.users]));
|
|
235
349
|
const summaries = tierIds.map((tierIdStr, i) => {
|
|
236
350
|
const tierIdx = Number(BigInt(tierIdStr) - minTier);
|
|
237
|
-
|
|
238
|
-
|
|
351
|
+
// Contract returns nested TierView { tierInitParams, tierInfo,
|
|
352
|
+
// tierAdditionalInfo } — see TIER_VIEW_TUPLE.
|
|
353
|
+
const tv = tierViewsRange[tierIdx];
|
|
354
|
+
if (!tv) {
|
|
239
355
|
return { tierId: tierIdStr, error: "tier not found in range" };
|
|
240
356
|
}
|
|
357
|
+
const tier = tv.tierInitParams;
|
|
241
358
|
const uv = userViews[i];
|
|
242
359
|
if (!uv) {
|
|
243
360
|
return { tierId: tierIdStr, error: "user view missing" };
|
|
244
361
|
}
|
|
245
|
-
// Surface participation requirements
|
|
246
|
-
//
|
|
362
|
+
// Surface participation requirements; the merkle proof (if a
|
|
363
|
+
// whitelist was supplied) was already computed pre-read.
|
|
247
364
|
const participation = tier.participationDetails.map((p) => ({
|
|
248
|
-
type: PARTICIPATION_TYPE_NAMES[p.participationType] ??
|
|
365
|
+
type: PARTICIPATION_TYPE_NAMES[Number(p.participationType)] ??
|
|
366
|
+
`Unknown(${p.participationType})`,
|
|
249
367
|
data: p.data,
|
|
250
368
|
}));
|
|
251
|
-
const
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
merkle = { root: tree.root, proof, included: verifyProof(proof, tree.root, leaf) };
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
merkle = { root: tree.root, proof: [], included: false };
|
|
369
|
+
const onchainMerkleRoot = tv.tierAdditionalInfo.merkleRoot === ZeroHash
|
|
370
|
+
? null
|
|
371
|
+
: tv.tierAdditionalInfo.merkleRoot;
|
|
372
|
+
const merkleLocal = merkleByTier.get(tierIdStr);
|
|
373
|
+
const merkle = merkleLocal
|
|
374
|
+
? {
|
|
375
|
+
...merkleLocal,
|
|
376
|
+
onchainRoot: onchainMerkleRoot,
|
|
377
|
+
// Guards against a stale/foreign whitelist: the proof only
|
|
378
|
+
// works on-chain when the roots match.
|
|
379
|
+
rootMatchesOnchain: onchainMerkleRoot === null
|
|
380
|
+
? null
|
|
381
|
+
: merkleLocal.root.toLowerCase() === onchainMerkleRoot.toLowerCase(),
|
|
268
382
|
}
|
|
269
|
-
|
|
383
|
+
: undefined;
|
|
270
384
|
return {
|
|
271
385
|
tierId: tierIdStr,
|
|
272
|
-
metadata: tier.metadata,
|
|
386
|
+
metadata: { name: tier.metadata.name, description: tier.metadata.description },
|
|
273
387
|
saleTokenAddress: tier.saleTokenAddress,
|
|
274
388
|
saleStartTime: tier.saleStartTime,
|
|
275
389
|
saleEndTime: tier.saleEndTime,
|
|
390
|
+
saleStartTimeUTC: unixToUtc(tier.saleStartTime),
|
|
391
|
+
saleEndTimeUTC: unixToUtc(tier.saleEndTime),
|
|
276
392
|
totalTokenProvided: tier.totalTokenProvided,
|
|
277
|
-
|
|
278
|
-
|
|
393
|
+
totalSold: tv.tierInfo.totalSold,
|
|
394
|
+
isOff: tv.tierInfo.isOff,
|
|
395
|
+
tierUri: tv.tierInfo.uri || null,
|
|
396
|
+
onchainMerkleRoot,
|
|
397
|
+
merkleUri: tv.tierAdditionalInfo.merkleUri || null,
|
|
398
|
+
purchaseTokenAddresses: [...tier.purchaseTokenAddresses],
|
|
399
|
+
exchangeRates: [...tier.exchangeRates],
|
|
279
400
|
minAllocationPerUser: tier.minAllocationPerUser,
|
|
280
401
|
maxAllocationPerUser: tier.maxAllocationPerUser,
|
|
281
402
|
claimLockDuration: tier.claimLockDuration,
|
|
282
|
-
vestingSettings:
|
|
403
|
+
vestingSettings: {
|
|
404
|
+
vestingPercentage: tier.vestingSettings.vestingPercentage,
|
|
405
|
+
vestingDuration: tier.vestingSettings.vestingDuration,
|
|
406
|
+
cliffPeriod: tier.vestingSettings.cliffPeriod,
|
|
407
|
+
unlockStep: tier.vestingSettings.unlockStep,
|
|
408
|
+
},
|
|
283
409
|
participation,
|
|
284
410
|
user: {
|
|
285
411
|
canParticipate: uv.canParticipate,
|
|
@@ -316,7 +442,10 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
316
442
|
.optional()
|
|
317
443
|
.describe("Target chain id. Defaults to the MCP's default chain."),
|
|
318
444
|
tierId: z.string(),
|
|
319
|
-
tokenToBuyWith: z
|
|
445
|
+
tokenToBuyWith: z
|
|
446
|
+
.string()
|
|
447
|
+
.describe("Payment token; for native BNB pass 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE (protocol ETHEREUM_ADDRESS). " +
|
|
448
|
+
"The zero address is accepted as an alias, but calldata always carries ETHEREUM_ADDRESS — the contract keys exchange rates by it."),
|
|
320
449
|
amount: z
|
|
321
450
|
.string()
|
|
322
451
|
.describe("Amount to spend, as an 18-decimal-normalized quantity. On-chain buy() converts it via from18Safe(token) to the payment token's native decimals: for an 18-decimal token this equals raw wei; for a token with d<18 decimals pass rawAmount * 10^(18-d). Passing raw native wei for a non-18-decimal token under-pays by 10^(18-d)."),
|
|
@@ -340,6 +469,10 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
340
469
|
const tierIdBn = parseUintString(input.tierId, "tierId");
|
|
341
470
|
const amountBn = parseUintString(input.amount, "amount");
|
|
342
471
|
const native = isNativeSentinel(input.tokenToBuyWith);
|
|
472
|
+
// Contract-canonical payment token: native buys MUST carry
|
|
473
|
+
// ETHEREUM_ADDRESS (0xEeee…EEeE) — the zero address reverts on-chain
|
|
474
|
+
// with "TSP: incorrect token".
|
|
475
|
+
const tokenArg = native ? ETHEREUM_ADDRESS : getAddress(input.tokenToBuyWith);
|
|
343
476
|
// Compute proof from whitelistUsers if needed.
|
|
344
477
|
let proof = input.proof;
|
|
345
478
|
if (proof.length === 0 && input.whitelistUsers.length > 0) {
|
|
@@ -369,14 +502,14 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
369
502
|
if (!native) {
|
|
370
503
|
const calls = [
|
|
371
504
|
{
|
|
372
|
-
target:
|
|
505
|
+
target: tokenArg,
|
|
373
506
|
iface: ERC20_ABI,
|
|
374
507
|
method: "balanceOf",
|
|
375
508
|
args: [userAddr],
|
|
376
509
|
allowFailure: true,
|
|
377
510
|
},
|
|
378
511
|
{
|
|
379
|
-
target:
|
|
512
|
+
target: tokenArg,
|
|
380
513
|
iface: ERC20_ABI,
|
|
381
514
|
method: "allowance",
|
|
382
515
|
args: [userAddr, input.tokenSaleProposal],
|
|
@@ -390,7 +523,7 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
390
523
|
return err(`Insufficient ${input.tokenToBuyWith} balance: have ${balance}, need ${amountBn}.`);
|
|
391
524
|
}
|
|
392
525
|
if (allowance < amountBn) {
|
|
393
|
-
payloads.push(buildExactApproval(
|
|
526
|
+
payloads.push(buildExactApproval(tokenArg, input.tokenSaleProposal, amountBn, chainId));
|
|
394
527
|
}
|
|
395
528
|
else {
|
|
396
529
|
skipped.push({ label: "ERC20.approve", reason: "Allowance sufficient" });
|
|
@@ -399,7 +532,7 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
399
532
|
// buy()
|
|
400
533
|
const buyData = TOKEN_SALE_ABI.encodeFunctionData("buy", [
|
|
401
534
|
tierIdBn,
|
|
402
|
-
|
|
535
|
+
tokenArg,
|
|
403
536
|
amountBn,
|
|
404
537
|
proof,
|
|
405
538
|
]);
|
|
@@ -408,7 +541,7 @@ export function registerOtcTools(server, ctx, signer) {
|
|
|
408
541
|
data: buyData,
|
|
409
542
|
value: native ? amountBn.toString() : "0",
|
|
410
543
|
chainId,
|
|
411
|
-
description: `TokenSaleProposal.buy(tier=${tierIdBn}, ${native ?
|
|
544
|
+
description: `TokenSaleProposal.buy(tier=${tierIdBn}, ${native ? `native (${ETHEREUM_ADDRESS})` : tokenArg}, ${amountBn})`,
|
|
412
545
|
});
|
|
413
546
|
// Optional simulation gate: preflight the buy() against live state before
|
|
414
547
|
// we ever touch the broadcast path. Skipped on dryRun since dryRun
|