@ninsei-labs/sdk 0.46.0 → 0.46.2
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 +23 -0
- package/engine/core/config.js +16 -13
- package/engine/evm/factory.js +7 -6
- package/package.json +2 -1
- package/src/version.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
## 0.46.2 — 2026-10-21
|
|
2
|
+
|
|
3
|
+
THE TESTNET CONFIG NAMES THE CLAIMTIP DEPLOYMENT.
|
|
4
|
+
|
|
5
|
+
- `arbitrum-sepolia` now points at factory `0x3eE25f12758ec28e5b3045d16132D89Cd0bf341F`, cashier
|
|
6
|
+
`0x1123A3875775Da25FA181Af0d91EB278E94a5dfb` and implementation code hash
|
|
7
|
+
`0xf97af2b4eed8c646d82bce001e52ff03c065d43127073f8ee52271b65c35d659` (release
|
|
8
|
+
`contracts-testnet-2026.10.21`). The old factory did not know `claimTip`.
|
|
9
|
+
- A deployment through the release workflow does not create a maker registry (`DEPLOY_REGISTRY=false`); the node
|
|
10
|
+
keeps naming an existing registry in `RFQ_REGISTRY_ADDRESS` until a fresh one is deployed and its keys are
|
|
11
|
+
registered.
|
|
12
|
+
|
|
13
|
+
## 0.46.1 — 2026-10-21
|
|
14
|
+
|
|
15
|
+
THE FACTORY SELECTORS FOLLOW THE 20-FIELD QUOTE.
|
|
16
|
+
|
|
17
|
+
- `FACTORY_METHODS.predict` is `0x3e949279` and `createOrderAndFund` is `0x3a504547` (the 19-field values were
|
|
18
|
+
`0x0824d205` and `0x4703a9d3`). With the old selectors the node's calldata reverted at the factory on the first
|
|
19
|
+
call, so no order could be created even though the quote itself was correct.
|
|
20
|
+
- `tools/check-factory-selectors.mjs` derives both selectors from `QUOTE_FIELDS` and the ABI types, and a
|
|
21
|
+
breaking run mutates a copy of the module to prove the check reddens. The pair can no longer go stale in
|
|
22
|
+
silence when a field joins the signed tuple.
|
|
23
|
+
|
|
1
24
|
## 0.46.0 — 2026-10-21
|
|
2
25
|
|
|
3
26
|
THE QUOTE CARRIES THE CLAIM TIP, AND THE CLAIM PAYS IT.
|
package/engine/core/config.js
CHANGED
|
@@ -363,19 +363,22 @@ export const CHAINS = [
|
|
|
363
363
|
explorerName: "arbiscan (sepolia)",
|
|
364
364
|
gasUsd: 0.01,
|
|
365
365
|
routeType: "atomic",
|
|
366
|
-
// THE DEMO'S MAIN NETWORK: the Ninsei escrow factory
|
|
367
|
-
//
|
|
368
|
-
//
|
|
369
|
-
//
|
|
370
|
-
//
|
|
366
|
+
// THE DEMO'S MAIN NETWORK: the Ninsei escrow factory and the interface's fee cashier live here; the
|
|
367
|
+
// ArrakisFeeRouter is gone. The factory is a FACT, not an intention:
|
|
368
|
+
// 0x3eE25f12758ec28e5b3045d16132D89Cd0bf341F (height 321430239, transaction
|
|
369
|
+
// 0x61da6d34c77dee1e1ada04dbbe9cbb1c86e5297acbc5a5b08320df20a2cf3ef6, code 2049 bytes, keccak256
|
|
370
|
+
// 0xf490764213ae9569f9ef19a174e237f4a22c3ff6613756852571672ae7dea2a8); every order is an EIP-1167 clone and
|
|
371
371
|
// the factory carries the pair (implementation(), implementationCodeHash()). The fee cashier is the second CREATE
|
|
372
|
-
// of the same pass -
|
|
373
|
-
//
|
|
374
|
-
//
|
|
375
|
-
//
|
|
376
|
-
// `npm run check:deployed -- --address=
|
|
377
|
-
// PREVIOUS (the
|
|
378
|
-
//
|
|
372
|
+
// of the same pass - 0x1123A3875775Da25FA181Af0d91EB278E94a5dfb (height 321430248, code 582 bytes, keccak256
|
|
373
|
+
// 0xf5cb00c7974e6fab3f04dbd2cdc24976249dc4d55de2fa31524bce60205a1877). This release did NOT deploy a maker
|
|
374
|
+
// registry (DEPLOY_REGISTRY=false): the registry is a separate contract, and the node must name an existing one
|
|
375
|
+
// in RFQ_REGISTRY_ADDRESS until a fresh one is deployed and its keys are registered.
|
|
376
|
+
// `npm run check:deployed -- --address=0x3eE25f12758ec28e5b3045d16132D89Cd0bf341F`).
|
|
377
|
+
// PREVIOUS (the factory before claimTip): 0x1029D6bC53f6b9919F8ec6Ac922327F7e5A3DdF2 (height 318033203,
|
|
378
|
+
// transaction 0x0f82c556f056f2dcaba5c12da75a749c257dfb1ccbf0eb6962a4e7f0119d166d, code 4226 bytes, keccak256
|
|
379
|
+
// 0x4b515f600c641bffde054b3a98f4e26bd43d2dd2b2d8e60e8cfe36ee03686dd9). PREVIOUS (the ArrakisFeeRouter of
|
|
380
|
+
// the previous rules, now removed): 0xaEB1c0455C76551dcEb2E6B1245B65F0458b0aE8 (height 314323871, code 8223
|
|
381
|
+
// bytes, keccak256 0x90f26f641b48a2a630463195d4429b0818d29187563e09711a40811fcf08a0ba).
|
|
379
382
|
// PREVIOUS (ceiling 3%, no early refund): 0xEa619bDC78989627093B7830990367B2ECE52CE5 (height 314309038,
|
|
380
383
|
// code 8143 bytes). PREVIOUS live (router with a 10% ceiling): 0x9f856cd9c14fd9493961473b804039b09a4012ef
|
|
381
384
|
// (height 313597131, code 8723 bytes). PREVIOUS before it (factory without a fee):
|
|
@@ -386,7 +389,7 @@ export const CHAINS = [
|
|
|
386
389
|
// half is not sent but revealed by presentation. Switching back to "simulated" is one edit, to show a demo with
|
|
387
390
|
// no money movement. cashier: the INTERFACE's fee cashier, named in quotes and now deployed (the second CREATE of
|
|
388
391
|
// the same pass). implementationCodeHash: the escrow implementation the factory carries, checked against the chain.
|
|
389
|
-
escrow: { address: "
|
|
392
|
+
escrow: { address: "0x3eE25f12758ec28e5b3045d16132D89Cd0bf341F", mode: "live", cashier: "0x1123A3875775Da25FA181Af0d91EB278E94a5dfb", implementationCodeHash: "0xf97af2b4eed8c646d82bce001e52ff03c065d43127073f8ee52271b65c35d659" },
|
|
390
393
|
tokens: [
|
|
391
394
|
// Test USDC (Circle): decimals 6 and symbol "USDC" verified on chain by the same node.
|
|
392
395
|
{ symbol: "USDC", address: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d", decimals: 6, usd: 1, cls: "ar-token-usdc" },
|
package/engine/evm/factory.js
CHANGED
|
@@ -10,15 +10,16 @@
|
|
|
10
10
|
// feeFor() (the router was removed), so there is nothing to ask. All arguments are static, so calldata is a
|
|
11
11
|
// selector plus 32-byte words, built here in one place and checked mechanically.
|
|
12
12
|
//
|
|
13
|
-
// cast sig "predict((address,address,address,address,address,address,uint256,uint64,uint64,bytes32,bytes32,bytes32,uint256,uint256,uint256,address,uint64,uint256,uint256),bytes32,bytes32,uint8,bytes32,bytes32,bytes32)" ->
|
|
14
|
-
// cast sig "createOrderAndFund(<same tuple>,...)" ->
|
|
13
|
+
// cast sig "predict((address,address,address,address,address,address,uint256,uint64,uint64,bytes32,bytes32,bytes32,uint256,uint256,uint256,address,uint64,uint256,uint256,uint256),bytes32,bytes32,uint8,bytes32,bytes32,bytes32)" -> 0x3e949279
|
|
14
|
+
// cast sig "createOrderAndFund(<same tuple>,...)" -> 0x3a504547
|
|
15
15
|
|
|
16
16
|
export const FACTORY_METHODS = {
|
|
17
|
-
// THE
|
|
18
|
-
//
|
|
19
|
-
|
|
17
|
+
// THE SELECTORS FOLLOW THE 20-FIELD QUOTE. claimTip is the last field of the tuple, so both selectors changed when
|
|
18
|
+
// it joined the signed set; the old 19-field values (0x0824d205 / 0x4703a9d3) address a function this factory no
|
|
19
|
+
// longer has.
|
|
20
|
+
predict: "0x3e949279",
|
|
20
21
|
// create the escrow AND deposit funds in ONE transaction (a value transfer with the call).
|
|
21
|
-
createOrderAndFund: "
|
|
22
|
+
createOrderAndFund: "0x3a504547",
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
// The OrderCreated event topic. It grew the registry address, the provider and the signing key:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ninsei-labs/sdk",
|
|
3
|
-
"version": "0.46.
|
|
3
|
+
"version": "0.46.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"check:arrival-read": "node tools/check-arrival-read.mjs",
|
|
40
40
|
"check:daemon-address": "node tools/check-daemon-address.mjs",
|
|
41
41
|
"check:ci-scripts": "node tools/check-ci-scripts.mjs",
|
|
42
|
+
"check:factory-selectors": "node tools/check-factory-selectors.mjs",
|
|
42
43
|
"check:fee-estimate": "node tools/check-fee-estimate.mjs",
|
|
43
44
|
"check:deadline-scale": "node tools/check-deadline-scale.mjs",
|
|
44
45
|
"check:node-probe": "node tools/check-node-probe.mjs"
|
package/src/version.mjs
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
// tools/sync-version.mjs. Do not edit it by hand - set the version in package.json and run `npm run sync:version`.
|
|
7
7
|
// The `version` check in tools/check.mjs refuses a mismatch, and refuses a runtime read of package.json here.
|
|
8
8
|
|
|
9
|
-
export const SDK_VERSION = "0.46.
|
|
9
|
+
export const SDK_VERSION = "0.46.2";
|