@bananapus/nana-sdk-core 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/actions/JBSuckerAbi.js +4 -1
- package/dist/cjs/actions/JBSuckerAbi.js.map +1 -1
- package/dist/cjs/actions/dataHook.js +26 -22
- package/dist/cjs/actions/dataHook.js.map +1 -1
- package/dist/cjs/actions/projectMetadata.js +12 -8
- package/dist/cjs/actions/projectMetadata.js.map +1 -1
- package/dist/cjs/actions/suckerPairs.js +21 -17
- package/dist/cjs/actions/suckerPairs.js.map +1 -1
- package/dist/cjs/constants.d.ts +8 -2
- package/dist/cjs/constants.d.ts.map +1 -1
- package/dist/cjs/constants.js +97 -85
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/contracts.js +22 -19
- package/dist/cjs/contracts.js.map +1 -1
- package/dist/cjs/generated/juicebox.d.ts +36 -0
- package/dist/cjs/generated/juicebox.d.ts.map +1 -1
- package/dist/cjs/generated/juicebox.js +130 -90
- package/dist/cjs/generated/juicebox.js.map +1 -1
- package/dist/cjs/index.js +24 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/types.js +15 -4
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/contracts.js +19 -14
- package/dist/cjs/utils/contracts.js.map +1 -1
- package/dist/cjs/utils/data.js +23 -13
- package/dist/cjs/utils/data.js.map +1 -1
- package/dist/cjs/utils/data.test.js +19 -17
- package/dist/cjs/utils/data.test.js.map +1 -1
- package/dist/cjs/utils/debug.js +4 -1
- package/dist/cjs/utils/debug.js.map +1 -1
- package/dist/cjs/utils/deploy.d.ts +17 -0
- package/dist/cjs/utils/deploy.d.ts.map +1 -1
- package/dist/cjs/utils/deploy.js +63 -27
- package/dist/cjs/utils/deploy.js.map +1 -1
- package/dist/cjs/utils/deploy.test.js +56 -13
- package/dist/cjs/utils/deploy.test.js.map +1 -1
- package/dist/cjs/utils/fee.js +6 -3
- package/dist/cjs/utils/fee.js.map +1 -1
- package/dist/cjs/utils/fee.test.js +8 -6
- package/dist/cjs/utils/fee.test.js.map +1 -1
- package/dist/cjs/utils/format.js +11 -6
- package/dist/cjs/utils/format.js.map +1 -1
- package/dist/cjs/utils/format.test.js +11 -9
- package/dist/cjs/utils/format.test.js.map +1 -1
- package/dist/cjs/utils/hook.js +9 -6
- package/dist/cjs/utils/hook.js.map +1 -1
- package/dist/cjs/utils/index.js +28 -12
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/ipfs.js +14 -6
- package/dist/cjs/utils/ipfs.js.map +1 -1
- package/dist/cjs/utils/ipfs.test.js +23 -18
- package/dist/cjs/utils/ipfs.test.js.map +1 -1
- package/dist/cjs/utils/revnet.js +9 -5
- package/dist/cjs/utils/revnet.js.map +1 -1
- package/dist/cjs/utils/revnet.test.js +9 -7
- package/dist/cjs/utils/revnet.test.js.map +1 -1
- package/dist/cjs/utils/ruleset.js +11 -7
- package/dist/cjs/utils/ruleset.js.map +1 -1
- package/dist/cjs/utils/ruleset.test.js +9 -7
- package/dist/cjs/utils/ruleset.test.js.map +1 -1
- package/dist/cjs/utils/token.js +26 -19
- package/dist/cjs/utils/token.js.map +1 -1
- package/dist/cjs/utils/token.test.js +25 -23
- package/dist/cjs/utils/token.test.js.map +1 -1
- package/dist/cjs/utils/tx.js +6 -3
- package/dist/cjs/utils/tx.js.map +1 -1
- package/dist/cjs/utils/urn.js +9 -5
- package/dist/cjs/utils/urn.js.map +1 -1
- package/dist/cjs/utils/urn.test.js +71 -69
- package/dist/cjs/utils/urn.test.js.map +1 -1
- package/dist/cjs/v6/cashOut.d.ts +5 -0
- package/dist/cjs/v6/cashOut.d.ts.map +1 -1
- package/dist/cjs/v6/cashOut.js +19 -10
- package/dist/cjs/v6/cashOut.js.map +1 -1
- package/dist/cjs/v6/cashOut.test.js +42 -40
- package/dist/cjs/v6/cashOut.test.js.map +1 -1
- package/dist/cjs/v6/currency.js +8 -4
- package/dist/cjs/v6/currency.js.map +1 -1
- package/dist/cjs/v6/currency.test.js +18 -16
- package/dist/cjs/v6/currency.test.js.map +1 -1
- package/dist/cjs/v6/fees.js +11 -6
- package/dist/cjs/v6/fees.js.map +1 -1
- package/dist/cjs/v6/fees.test.js +29 -27
- package/dist/cjs/v6/fees.test.js.map +1 -1
- package/dist/cjs/v6/index.js +31 -15
- package/dist/cjs/v6/index.js.map +1 -1
- package/dist/cjs/v6/launch.js +31 -23
- package/dist/cjs/v6/launch.js.map +1 -1
- package/dist/cjs/v6/launch.test.js +85 -83
- package/dist/cjs/v6/launch.test.js.map +1 -1
- package/dist/cjs/v6/loans.js +26 -19
- package/dist/cjs/v6/loans.js.map +1 -1
- package/dist/cjs/v6/loans.test.js +52 -50
- package/dist/cjs/v6/loans.test.js.map +1 -1
- package/dist/cjs/v6/omnichain.d.ts +6 -1
- package/dist/cjs/v6/omnichain.d.ts.map +1 -1
- package/dist/cjs/v6/omnichain.js +20 -12
- package/dist/cjs/v6/omnichain.js.map +1 -1
- package/dist/cjs/v6/omnichain.test.js +63 -61
- package/dist/cjs/v6/omnichain.test.js.map +1 -1
- package/dist/cjs/v6/pay.js +20 -15
- package/dist/cjs/v6/pay.js.map +1 -1
- package/dist/cjs/v6/pay.test.js +49 -47
- package/dist/cjs/v6/pay.test.js.map +1 -1
- package/dist/cjs/v6/permissions.js +14 -9
- package/dist/cjs/v6/permissions.js.map +1 -1
- package/dist/cjs/v6/permissions.test.js +47 -45
- package/dist/cjs/v6/permissions.test.js.map +1 -1
- package/dist/cjs/v6/revnets.d.ts +5 -3
- package/dist/cjs/v6/revnets.d.ts.map +1 -1
- package/dist/cjs/v6/revnets.js +43 -26
- package/dist/cjs/v6/revnets.js.map +1 -1
- package/dist/cjs/v6/revnets.test.js +80 -78
- package/dist/cjs/v6/revnets.test.js.map +1 -1
- package/dist/cjs/v6/rulesets.js +20 -14
- package/dist/cjs/v6/rulesets.js.map +1 -1
- package/dist/cjs/v6/rulesets.test.js +50 -48
- package/dist/cjs/v6/rulesets.test.js.map +1 -1
- package/dist/cjs/v6/splits.d.ts +3 -2
- package/dist/cjs/v6/splits.d.ts.map +1 -1
- package/dist/cjs/v6/splits.js +29 -18
- package/dist/cjs/v6/splits.js.map +1 -1
- package/dist/cjs/v6/splits.test.js +84 -80
- package/dist/cjs/v6/splits.test.js.map +1 -1
- package/dist/cjs/v6/suckers.js +22 -15
- package/dist/cjs/v6/suckers.js.map +1 -1
- package/dist/cjs/v6/suckers.test.js +57 -55
- package/dist/cjs/v6/suckers.test.js.map +1 -1
- package/dist/cjs/v6/terminals.js +15 -11
- package/dist/cjs/v6/terminals.js.map +1 -1
- package/dist/cjs/v6/terminals.test.js +30 -28
- package/dist/cjs/v6/terminals.test.js.map +1 -1
- package/dist/cjs/v6/tokens.js +34 -25
- package/dist/cjs/v6/tokens.js.map +1 -1
- package/dist/cjs/v6/tokens.test.js +66 -64
- package/dist/cjs/v6/tokens.test.js.map +1 -1
- package/dist/cjs/v6/types.js +6 -3
- package/dist/cjs/v6/types.js.map +1 -1
- package/dist/esm/constants.d.ts +8 -2
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +9 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/generated/juicebox.d.ts +36 -0
- package/dist/esm/generated/juicebox.d.ts.map +1 -1
- package/dist/esm/generated/juicebox.js +36 -0
- package/dist/esm/generated/juicebox.js.map +1 -1
- package/dist/esm/utils/deploy.d.ts +17 -0
- package/dist/esm/utils/deploy.d.ts.map +1 -1
- package/dist/esm/utils/deploy.js +50 -18
- package/dist/esm/utils/deploy.js.map +1 -1
- package/dist/esm/utils/deploy.test.js +41 -0
- package/dist/esm/utils/deploy.test.js.map +1 -1
- package/dist/esm/v6/cashOut.d.ts +5 -0
- package/dist/esm/v6/cashOut.d.ts.map +1 -1
- package/dist/esm/v6/cashOut.js +5 -0
- package/dist/esm/v6/cashOut.js.map +1 -1
- package/dist/esm/v6/omnichain.d.ts +6 -1
- package/dist/esm/v6/omnichain.d.ts.map +1 -1
- package/dist/esm/v6/omnichain.js +6 -2
- package/dist/esm/v6/omnichain.js.map +1 -1
- package/dist/esm/v6/revnets.d.ts +5 -3
- package/dist/esm/v6/revnets.d.ts.map +1 -1
- package/dist/esm/v6/revnets.js +12 -4
- package/dist/esm/v6/revnets.js.map +1 -1
- package/dist/esm/v6/splits.d.ts +3 -2
- package/dist/esm/v6/splits.d.ts.map +1 -1
- package/dist/esm/v6/splits.js +9 -5
- package/dist/esm/v6/splits.js.map +1 -1
- package/dist/esm/v6/splits.test.js +8 -6
- package/dist/esm/v6/splits.test.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/dist/cjs/index.js
CHANGED
|
@@ -1,9 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./actions/dataHook.js"), exports);
|
|
18
|
+
__exportStar(require("./actions/projectMetadata.js"), exports);
|
|
19
|
+
__exportStar(require("./actions/suckerPairs.js"), exports);
|
|
20
|
+
__exportStar(require("./constants.js"), exports);
|
|
21
|
+
__exportStar(require("./contracts.js"), exports);
|
|
22
|
+
__exportStar(require("./generated/juicebox.js"), exports);
|
|
23
|
+
__exportStar(require("./types.js"), exports);
|
|
24
|
+
__exportStar(require("./utils/index.js"), exports);
|
|
9
25
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,+DAA6C;AAC7C,2DAAyC;AACzC,iDAA+B;AAC/B,iDAA+B;AAC/B,0DAAwC;AACxC,6CAA2B;AAC3B,mDAAiC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
package/dist/cjs/types.js
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SplitGroup = exports.projectTagOptions = exports.JBSwapTerminalContracts = exports.JBSuckerContracts = exports.JBRouterTerminalContracts = exports.JBOmnichainDeployerContracts = exports.JBCoreContracts = exports.JBBuybackHookContracts = exports.JBAddressRegistryContracts = exports.JB721HookContracts = void 0;
|
|
4
|
+
var contracts_js_1 = require("./contracts.js");
|
|
5
|
+
Object.defineProperty(exports, "JB721HookContracts", { enumerable: true, get: function () { return contracts_js_1.JB721HookContracts; } });
|
|
6
|
+
Object.defineProperty(exports, "JBAddressRegistryContracts", { enumerable: true, get: function () { return contracts_js_1.JBAddressRegistryContracts; } });
|
|
7
|
+
Object.defineProperty(exports, "JBBuybackHookContracts", { enumerable: true, get: function () { return contracts_js_1.JBBuybackHookContracts; } });
|
|
8
|
+
Object.defineProperty(exports, "JBCoreContracts", { enumerable: true, get: function () { return contracts_js_1.JBCoreContracts; } });
|
|
9
|
+
Object.defineProperty(exports, "JBOmnichainDeployerContracts", { enumerable: true, get: function () { return contracts_js_1.JBOmnichainDeployerContracts; } });
|
|
10
|
+
Object.defineProperty(exports, "JBRouterTerminalContracts", { enumerable: true, get: function () { return contracts_js_1.JBRouterTerminalContracts; } });
|
|
11
|
+
Object.defineProperty(exports, "JBSuckerContracts", { enumerable: true, get: function () { return contracts_js_1.JBSuckerContracts; } });
|
|
12
|
+
Object.defineProperty(exports, "JBSwapTerminalContracts", { enumerable: true, get: function () { return contracts_js_1.JBSwapTerminalContracts; } });
|
|
13
|
+
exports.projectTagOptions = [
|
|
3
14
|
"art",
|
|
4
15
|
"business",
|
|
5
16
|
"charity",
|
|
@@ -17,7 +28,7 @@ export const projectTagOptions = [
|
|
|
17
28
|
/**
|
|
18
29
|
* The type of split.
|
|
19
30
|
*/
|
|
20
|
-
|
|
31
|
+
var SplitGroup;
|
|
21
32
|
(function (SplitGroup) {
|
|
22
33
|
/**
|
|
23
34
|
* Splits that are paid out in ETH.
|
|
@@ -27,5 +38,5 @@ export var SplitGroup;
|
|
|
27
38
|
* Splits that are reserved for a project's token.
|
|
28
39
|
*/
|
|
29
40
|
SplitGroup[SplitGroup["ReservedTokens"] = 2] = "ReservedTokens";
|
|
30
|
-
})(SplitGroup || (SplitGroup = {}));
|
|
41
|
+
})(SplitGroup || (exports.SplitGroup = SplitGroup = {}));
|
|
31
42
|
//# sourceMappingURL=types.js.map
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAUA,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAUA,+CAUwB;AATtB,kHAAA,kBAAkB,OAAA;AAClB,0HAAA,0BAA0B,OAAA;AAC1B,sHAAA,sBAAsB,OAAA;AACtB,+GAAA,eAAe,OAAA;AACf,4HAAA,4BAA4B,OAAA;AAC5B,yHAAA,yBAAyB,OAAA;AACzB,iHAAA,iBAAiB,OAAA;AACjB,uHAAA,uBAAuB,OAAA;AAMZ,QAAA,iBAAiB,GAAG;IAC/B,KAAK;IACL,UAAU;IACV,SAAS;IACT,KAAK;IACL,MAAM;IACN,WAAW;IACX,QAAQ;IACR,aAAa;IACb,OAAO;IACP,OAAO;IACP,MAAM;IACN,QAAQ;IACR,UAAU;CACF,CAAC;AAyEX;;GAEG;AACH,IAAY,UASX;AATD,WAAY,UAAU;IACpB;;OAEG;IACH,qDAAa,CAAA;IACb;;OAEG;IACH,+DAAkB,CAAA;AACpB,CAAC,EATW,UAAU,0BAAV,UAAU,QASrB"}
|
|
@@ -1,28 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getJBContractAddress = getJBContractAddress;
|
|
4
|
+
exports.getProjectTerminalStore = getProjectTerminalStore;
|
|
5
|
+
exports.getPrimaryNativeTerminal = getPrimaryNativeTerminal;
|
|
6
|
+
const viem_1 = require("viem");
|
|
7
|
+
const constants_js_1 = require("../constants.js");
|
|
8
|
+
const contracts_js_1 = require("../contracts.js");
|
|
9
|
+
const juicebox_js_1 = require("../generated/juicebox.js");
|
|
10
|
+
function getJBContractAddress(contract, version, chainId) {
|
|
6
11
|
const versionKey = version.toString();
|
|
7
12
|
const chainKey = chainId.toString();
|
|
8
|
-
return jbContractAddress[versionKey]?.[contract]?.[chainKey];
|
|
13
|
+
return juicebox_js_1.jbContractAddress[versionKey]?.[contract]?.[chainKey];
|
|
9
14
|
}
|
|
10
|
-
|
|
11
|
-
return getJBContractAddress(JBCoreContracts.JBTerminalStore, version, chainId);
|
|
15
|
+
function getProjectTerminalStore(chainId, version) {
|
|
16
|
+
return getJBContractAddress(contracts_js_1.JBCoreContracts.JBTerminalStore, version, chainId);
|
|
12
17
|
}
|
|
13
|
-
|
|
18
|
+
async function getPrimaryNativeTerminal(config, chainId, projectId, version) {
|
|
14
19
|
const client = config.getClient({ chainId: Number(chainId) });
|
|
15
|
-
const address = getJBContractAddress(JBCoreContracts.JBDirectory, version, chainId);
|
|
16
|
-
const directory = getContract({ address, abi: jbDirectoryAbi, client });
|
|
20
|
+
const address = getJBContractAddress(contracts_js_1.JBCoreContracts.JBDirectory, version, chainId);
|
|
21
|
+
const directory = (0, viem_1.getContract)({ address, abi: juicebox_js_1.jbDirectoryAbi, client });
|
|
17
22
|
const primaryNativeTerminal = await directory.read.primaryTerminalOf([
|
|
18
23
|
projectId,
|
|
19
|
-
NATIVE_TOKEN,
|
|
24
|
+
constants_js_1.NATIVE_TOKEN,
|
|
20
25
|
]);
|
|
21
|
-
if (primaryNativeTerminal !== zeroAddress)
|
|
26
|
+
if (primaryNativeTerminal !== viem_1.zeroAddress)
|
|
22
27
|
return primaryNativeTerminal;
|
|
23
28
|
return await directory.read.primaryTerminalOf([
|
|
24
29
|
projectId,
|
|
25
|
-
USDC_ADDRESSES[chainId],
|
|
30
|
+
constants_js_1.USDC_ADDRESSES[chainId],
|
|
26
31
|
]);
|
|
27
32
|
}
|
|
28
33
|
//# sourceMappingURL=contracts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/utils/contracts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/utils/contracts.ts"],"names":[],"mappings":";;AAgBA,oDASC;AAED,0DASC;AAED,4DAyBC;AA/DD,+BAAuE;AAEvE,kDAA+D;AAC/D,kDAA6D;AAC7D,0DAA6E;AAY7E,SAAgB,oBAAoB,CAClC,QAAgC,EAChC,OAAU,EACV,OAAkB;IAElB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAoC,CAAC;IACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEpC,OAAQ,+BAAiB,CAAC,UAAU,CAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACxE,CAAC;AAED,SAAgB,uBAAuB,CACrC,OAAkB,EAClB,OAAkB;IAElB,OAAO,oBAAoB,CACzB,8BAAe,CAAC,eAAe,EAC/B,OAAO,EACP,OAAO,CACR,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,MAAoC,EACpC,OAAkB,EAClB,SAAiB,EACjB,OAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAiB,CAAC;IAE9E,MAAM,OAAO,GAAG,oBAAoB,CAClC,8BAAe,CAAC,WAAW,EAC3B,OAAO,EACP,OAAO,CACR,CAAC;IACF,MAAM,SAAS,GAAG,IAAA,kBAAW,EAAC,EAAE,OAAO,EAAE,GAAG,EAAE,4BAAc,EAAE,MAAM,EAAE,CAAC,CAAC;IAExE,MAAM,qBAAqB,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACnE,SAAS;QACT,2BAAY;KACb,CAAC,CAAC;IACH,IAAI,qBAAqB,KAAK,kBAAW;QAAE,OAAO,qBAAqB,CAAC;IAExE,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC5C,SAAS;QACT,6BAAc,CAAC,OAAO,CAAC;KACxB,CAAC,CAAC;AACL,CAAC"}
|
package/dist/cjs/utils/data.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RulesetWeight = exports.JBProjectToken = exports.Ether = exports.SplitPortion = exports.WeightCutPercent = exports.CashOutTaxRate = exports.ReservedPercent = void 0;
|
|
4
|
+
const fpnum_1 = require("fpnum");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
3
6
|
/**
|
|
4
7
|
* Reserved rate for a ruleset.
|
|
5
8
|
*
|
|
@@ -7,11 +10,12 @@ import { MAX_WEIGHT_CUT_PERCENT, MAX_CASH_OUT_TAX_RATE, MAX_RESERVED_PERCENT, SP
|
|
|
7
10
|
*
|
|
8
11
|
* @extends FixedPortion
|
|
9
12
|
*/
|
|
10
|
-
|
|
13
|
+
class ReservedPercent extends fpnum_1.FixedPortion {
|
|
11
14
|
constructor(value) {
|
|
12
|
-
super(BigInt(value), 4, BigInt(MAX_RESERVED_PERCENT));
|
|
15
|
+
super(BigInt(value), 4, BigInt(constants_js_1.MAX_RESERVED_PERCENT));
|
|
13
16
|
}
|
|
14
17
|
}
|
|
18
|
+
exports.ReservedPercent = ReservedPercent;
|
|
15
19
|
/**
|
|
16
20
|
* Cash Out Tax Rate for a ruleset.
|
|
17
21
|
*
|
|
@@ -19,11 +23,12 @@ export class ReservedPercent extends FixedPortion {
|
|
|
19
23
|
|
|
20
24
|
* @extends FixedPortion
|
|
21
25
|
*/
|
|
22
|
-
|
|
26
|
+
class CashOutTaxRate extends fpnum_1.FixedPortion {
|
|
23
27
|
constructor(value) {
|
|
24
|
-
super(BigInt(value), 4, BigInt(MAX_CASH_OUT_TAX_RATE));
|
|
28
|
+
super(BigInt(value), 4, BigInt(constants_js_1.MAX_CASH_OUT_TAX_RATE));
|
|
25
29
|
}
|
|
26
30
|
}
|
|
31
|
+
exports.CashOutTaxRate = CashOutTaxRate;
|
|
27
32
|
/**
|
|
28
33
|
* Decay rate for a ruleset.
|
|
29
34
|
*
|
|
@@ -31,16 +36,18 @@ export class CashOutTaxRate extends FixedPortion {
|
|
|
31
36
|
|
|
32
37
|
* @extends FixedPortion
|
|
33
38
|
*/
|
|
34
|
-
|
|
39
|
+
class WeightCutPercent extends fpnum_1.FixedPortion {
|
|
35
40
|
constructor(value) {
|
|
36
|
-
super(BigInt(value), 9, BigInt(MAX_WEIGHT_CUT_PERCENT));
|
|
41
|
+
super(BigInt(value), 9, BigInt(constants_js_1.MAX_WEIGHT_CUT_PERCENT));
|
|
37
42
|
}
|
|
38
43
|
}
|
|
39
|
-
|
|
44
|
+
exports.WeightCutPercent = WeightCutPercent;
|
|
45
|
+
class SplitPortion extends fpnum_1.FixedPortion {
|
|
40
46
|
constructor(value) {
|
|
41
|
-
super(BigInt(value), 9, BigInt(SPLITS_TOTAL_PERCENT));
|
|
47
|
+
super(BigInt(value), 9, BigInt(constants_js_1.SPLITS_TOTAL_PERCENT));
|
|
42
48
|
}
|
|
43
49
|
}
|
|
50
|
+
exports.SplitPortion = SplitPortion;
|
|
44
51
|
/**
|
|
45
52
|
* Ether value.
|
|
46
53
|
*
|
|
@@ -48,11 +55,12 @@ export class SplitPortion extends FixedPortion {
|
|
|
48
55
|
*
|
|
49
56
|
* @extends FixedInt
|
|
50
57
|
*/
|
|
51
|
-
|
|
58
|
+
class Ether extends fpnum_1.FixedInt {
|
|
52
59
|
constructor(value) {
|
|
53
60
|
super(value, 18);
|
|
54
61
|
}
|
|
55
62
|
}
|
|
63
|
+
exports.Ether = Ether;
|
|
56
64
|
/**
|
|
57
65
|
* A JB project's token.
|
|
58
66
|
*
|
|
@@ -60,11 +68,12 @@ export class Ether extends FixedInt {
|
|
|
60
68
|
*
|
|
61
69
|
* @extends FixedInt
|
|
62
70
|
*/
|
|
63
|
-
|
|
71
|
+
class JBProjectToken extends fpnum_1.FixedInt {
|
|
64
72
|
constructor(value) {
|
|
65
73
|
super(value, 18);
|
|
66
74
|
}
|
|
67
75
|
}
|
|
76
|
+
exports.JBProjectToken = JBProjectToken;
|
|
68
77
|
/**
|
|
69
78
|
* ruleset weight.
|
|
70
79
|
*
|
|
@@ -72,9 +81,10 @@ export class JBProjectToken extends FixedInt {
|
|
|
72
81
|
*
|
|
73
82
|
* @extends FixedInt
|
|
74
83
|
*/
|
|
75
|
-
|
|
84
|
+
class RulesetWeight extends fpnum_1.FixedInt {
|
|
76
85
|
constructor(value) {
|
|
77
86
|
super(value, 18);
|
|
78
87
|
}
|
|
79
88
|
}
|
|
89
|
+
exports.RulesetWeight = RulesetWeight;
|
|
80
90
|
//# sourceMappingURL=data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/utils/data.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/utils/data.ts"],"names":[],"mappings":";;;AAAA,iCAA+C;AAC/C,kDAKyB;AAEzB;;;;;;GAMG;AACH,MAAa,eAAgB,SAAQ,oBAAe;IAClD,YAAY,KAAa;QACvB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,mCAAoB,CAAC,CAAC,CAAC;IACxD,CAAC;CACF;AAJD,0CAIC;AAED;;;;;;GAMG;AACH,MAAa,cAAe,SAAQ,oBAAe;IACjD,YAAY,KAAa;QACvB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,oCAAqB,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAJD,wCAIC;AAED;;;;;;GAMG;AACH,MAAa,gBAAiB,SAAQ,oBAAe;IACnD,YAAY,KAAa;QACvB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,qCAAsB,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF;AAJD,4CAIC;AAED,MAAa,YAAa,SAAQ,oBAAe;IAC/C,YAAY,KAAa;QACvB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,mCAAoB,CAAC,CAAC,CAAC;IACxD,CAAC;CACF;AAJD,oCAIC;AAED;;;;;;GAMG;AACH,MAAa,KAAM,SAAQ,gBAAY;IACrC,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,CAAC;CACF;AAJD,sBAIC;AAED;;;;;;GAMG;AACH,MAAa,cAAe,SAAQ,gBAAY;IAC9C,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,CAAC;CACF;AAJD,wCAIC;AAED;;;;;;GAMG;AACH,MAAa,aAAc,SAAQ,gBAAY;IAC7C,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,CAAC;CACF;AAJD,sCAIC"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const data_js_1 = require("./data.js");
|
|
5
|
+
(0, vitest_1.describe)("jb", () => {
|
|
6
|
+
(0, vitest_1.test)("reserved rate", () => {
|
|
5
7
|
const reservedPercentRaw = 2_345; // 23.45%
|
|
6
|
-
const reservedPercent = new ReservedPercent(reservedPercentRaw);
|
|
7
|
-
expect(reservedPercent.format()).toEqual("0.2345");
|
|
8
|
-
expect(reservedPercent.toFloat()).toEqual(0.2345);
|
|
8
|
+
const reservedPercent = new data_js_1.ReservedPercent(reservedPercentRaw);
|
|
9
|
+
(0, vitest_1.expect)(reservedPercent.format()).toEqual("0.2345");
|
|
10
|
+
(0, vitest_1.expect)(reservedPercent.toFloat()).toEqual(0.2345);
|
|
9
11
|
reservedPercent.setPercentage(0.5);
|
|
10
|
-
expect(reservedPercent.format()).toEqual("0.5");
|
|
11
|
-
expect(reservedPercent.formatPercentage()).toEqual(50);
|
|
12
|
-
expect(reservedPercent.value).toEqual(5000n);
|
|
12
|
+
(0, vitest_1.expect)(reservedPercent.format()).toEqual("0.5");
|
|
13
|
+
(0, vitest_1.expect)(reservedPercent.formatPercentage()).toEqual(50);
|
|
14
|
+
(0, vitest_1.expect)(reservedPercent.value).toEqual(5000n);
|
|
13
15
|
});
|
|
14
|
-
test("decay rate", () => {
|
|
16
|
+
(0, vitest_1.test)("decay rate", () => {
|
|
15
17
|
const weightCutPercentRaw = 200_000_000; // 20%
|
|
16
|
-
const weightCutPercent = new WeightCutPercent(weightCutPercentRaw);
|
|
17
|
-
expect(weightCutPercent.format()).toEqual("0.2");
|
|
18
|
-
expect(weightCutPercent.toFloat()).toEqual(0.2);
|
|
18
|
+
const weightCutPercent = new data_js_1.WeightCutPercent(weightCutPercentRaw);
|
|
19
|
+
(0, vitest_1.expect)(weightCutPercent.format()).toEqual("0.2");
|
|
20
|
+
(0, vitest_1.expect)(weightCutPercent.toFloat()).toEqual(0.2);
|
|
19
21
|
weightCutPercent.setPercentage(0.5123);
|
|
20
|
-
expect(weightCutPercent.format()).toEqual("0.5123");
|
|
21
|
-
expect(weightCutPercent.formatPercentage()).toEqual(51.23);
|
|
22
|
-
expect(weightCutPercent.value).toEqual(512300000n);
|
|
22
|
+
(0, vitest_1.expect)(weightCutPercent.format()).toEqual("0.5123");
|
|
23
|
+
(0, vitest_1.expect)(weightCutPercent.formatPercentage()).toEqual(51.23);
|
|
24
|
+
(0, vitest_1.expect)(weightCutPercent.value).toEqual(512300000n);
|
|
23
25
|
});
|
|
24
26
|
});
|
|
25
27
|
//# sourceMappingURL=data.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../../src/utils/data.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../../src/utils/data.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAChD,uCAA8D;AAE9D,IAAA,iBAAQ,EAAC,IAAI,EAAE,GAAG,EAAE;IAClB,IAAA,aAAI,EAAC,eAAe,EAAE,GAAG,EAAE;QACzB,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,SAAS;QAC3C,MAAM,eAAe,GAAoB,IAAI,yBAAe,CAAC,kBAAkB,CAAC,CAAC;QACjF,IAAA,eAAM,EAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAA,eAAM,EAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAElD,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACnC,IAAA,eAAM,EAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvD,IAAA,eAAM,EAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,YAAY,EAAE,GAAG,EAAE;QACtB,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,MAAM;QAC/C,MAAM,gBAAgB,GAAG,IAAI,0BAAgB,CAAC,mBAAmB,CAAC,CAAC;QACnE,IAAA,eAAM,EAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjD,IAAA,eAAM,EAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEhD,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAA,eAAM,EAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAA,eAAM,EAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAY,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cjs/utils/debug.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.debug = debug;
|
|
1
4
|
const DEBUG_ENV_VARS = [
|
|
2
5
|
"JUICE_SDK_DEBUG",
|
|
3
6
|
"REACT_APP_JUICE_SDK_DEBUG",
|
|
4
7
|
"NEXT_PUBLIC_JUICE_SDK_DEBUG",
|
|
5
8
|
];
|
|
6
|
-
|
|
9
|
+
function debug(...args) {
|
|
7
10
|
if (DEBUG_ENV_VARS.some((envVar) => process.env[envVar] === "true")) {
|
|
8
11
|
console.debug("🧃", ...args);
|
|
9
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utils/debug.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utils/debug.ts"],"names":[],"mappings":";;AAMA,sBAIC;AAVD,MAAM,cAAc,GAAG;IACrB,iBAAiB;IACjB,2BAA2B;IAC3B,6BAA6B;CAC9B,CAAC;AAEF,SAAgB,KAAK,CAAC,GAAG,IAAW;IAClC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
|
|
@@ -3,12 +3,29 @@ export declare enum MappableAsset {
|
|
|
3
3
|
NATIVE = 0,
|
|
4
4
|
USDC = 1
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* The bridge infrastructure to deploy v6 suckers on:
|
|
8
|
+
*
|
|
9
|
+
* - `"ccip"`: Chainlink CCIP suckers. Connect any pair of supported chains and can map
|
|
10
|
+
* any supported asset (USDC bridges as canonical USDC via CCTP).
|
|
11
|
+
* - `"native"`: OP/Base/Arbitrum standard-bridge suckers. Strongest trust guarantees, but
|
|
12
|
+
* only connect Ethereum with an L2 (never L2<->L2), only map the native token, and
|
|
13
|
+
* L2->L1 exits wait out the bridge's ~7-day challenge period.
|
|
14
|
+
* - `"both"`: one native sucker AND one CCIP sucker per pair, for redundancy. Pairs or
|
|
15
|
+
* assets native bridges can't serve are covered by the CCIP sucker alone.
|
|
16
|
+
*/
|
|
17
|
+
export type JBSuckerBridge = "ccip" | "native" | "both";
|
|
6
18
|
export declare function parseSuckerDeployerConfig(targetChainId: JBChainId, chains: JBChainId[], assets?: MappableAsset[], opts?: {
|
|
7
19
|
salt?: `0x${string}`;
|
|
8
20
|
/**
|
|
9
21
|
* The JB protocol version being deployed. Defaults to 5, which is also used for v4 deployments.
|
|
10
22
|
*/
|
|
11
23
|
version?: JBVersion;
|
|
24
|
+
/**
|
|
25
|
+
* The bridge infrastructure to deploy suckers on. Defaults to "ccip".
|
|
26
|
+
* "native" and "both" are v6-only.
|
|
27
|
+
*/
|
|
28
|
+
bridge?: JBSuckerBridge;
|
|
12
29
|
}): {
|
|
13
30
|
deployerConfigurations: {
|
|
14
31
|
deployer: `0x${string}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/utils/deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/utils/deploy.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQnD,oBAAY,aAAa;IACvB,MAAM,IAAA;IACN,IAAI,IAAA;CACL;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExD,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,SAAS,EAAE,EACnB,MAAM,GAAE,aAAa,EAA2B,EAChD,IAAI,GAAE;IACJ,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;CACpB;;;;;;;;;;;;;;;;;;;EA+FP"}
|
package/dist/cjs/utils/deploy.js
CHANGED
|
@@ -1,20 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MappableAsset = void 0;
|
|
4
|
+
exports.parseSuckerDeployerConfig = parseSuckerDeployerConfig;
|
|
5
|
+
const viem_1 = require("viem");
|
|
6
|
+
const constants_js_1 = require("../constants.js");
|
|
7
|
+
const tx_js_1 = require("./tx.js");
|
|
4
8
|
// NOTE: A default of `0` is safe as long as we are deploying CCIP suckers, this is not a safe default for non-ccip suckers.
|
|
5
|
-
//
|
|
9
|
+
// v4/v5 deployments (which take a min bridge amount) are CCIP-only, so this is a safe default.
|
|
6
10
|
const DEFAULT_MIN_BRIDGE_AMOUNT = BigInt(0);
|
|
7
11
|
// Assets that the SDK has built-in support for mapping.
|
|
8
|
-
|
|
12
|
+
var MappableAsset;
|
|
9
13
|
(function (MappableAsset) {
|
|
10
14
|
MappableAsset[MappableAsset["NATIVE"] = 0] = "NATIVE";
|
|
11
15
|
MappableAsset[MappableAsset["USDC"] = 1] = "USDC";
|
|
12
|
-
})(MappableAsset || (MappableAsset = {}));
|
|
13
|
-
|
|
14
|
-
const
|
|
16
|
+
})(MappableAsset || (exports.MappableAsset = MappableAsset = {}));
|
|
17
|
+
function parseSuckerDeployerConfig(targetChainId, chains, assets = [MappableAsset.NATIVE], opts = {}) {
|
|
18
|
+
const bridge = opts.bridge ?? "ccip";
|
|
19
|
+
if (bridge !== "ccip" && opts.version !== 6) {
|
|
20
|
+
throw new Error(`Native-bridge suckers are only supported for v6 deployments`);
|
|
21
|
+
}
|
|
22
|
+
const ccipDeployers = constants_js_1.CCIP_SUCKER_DEPLOYER_ADDRESSES[opts.version === 6 ? 6 : 5];
|
|
15
23
|
const suckerChains = chains.filter((chainId) => chainId !== targetChainId);
|
|
16
|
-
const
|
|
17
|
-
const deployer =
|
|
24
|
+
const getCcipDeployer = (chainId) => {
|
|
25
|
+
const deployer = ccipDeployers[targetChainId]?.[chainId];
|
|
18
26
|
if (!deployer) {
|
|
19
27
|
throw new Error(`No deployer found for ${targetChainId} -> ${chainId}`);
|
|
20
28
|
}
|
|
@@ -23,31 +31,59 @@ export function parseSuckerDeployerConfig(targetChainId, chains, assets = [Mappa
|
|
|
23
31
|
const getTokens = (asset, chainId) => {
|
|
24
32
|
switch (asset) {
|
|
25
33
|
case MappableAsset.NATIVE:
|
|
26
|
-
return { localToken: NATIVE_TOKEN, remoteToken: NATIVE_TOKEN };
|
|
34
|
+
return { localToken: constants_js_1.NATIVE_TOKEN, remoteToken: constants_js_1.NATIVE_TOKEN };
|
|
27
35
|
case MappableAsset.USDC:
|
|
28
36
|
return {
|
|
29
|
-
localToken: USDC_ADDRESSES[targetChainId],
|
|
30
|
-
remoteToken: USDC_ADDRESSES[chainId],
|
|
37
|
+
localToken: constants_js_1.USDC_ADDRESSES[targetChainId],
|
|
38
|
+
remoteToken: constants_js_1.USDC_ADDRESSES[chainId],
|
|
31
39
|
};
|
|
32
40
|
}
|
|
33
41
|
};
|
|
42
|
+
// v6 mappings identify remote tokens as bytes32 and no longer take a min bridge amount.
|
|
43
|
+
const toV6Mapping = (asset, chainId) => {
|
|
44
|
+
const { localToken, remoteToken } = getTokens(asset, chainId);
|
|
45
|
+
return {
|
|
46
|
+
localToken,
|
|
47
|
+
minGas: 200_000,
|
|
48
|
+
remoteToken: (0, viem_1.pad)(remoteToken),
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
// The native-bridge sucker config for one (local -> remote) pair, or undefined when
|
|
52
|
+
// the pair/assets can't go native but the CCIP sucker covers them (bridge "both").
|
|
53
|
+
const v6NativeConfigFor = (chainId) => {
|
|
54
|
+
const deployer = constants_js_1.NATIVE_SUCKER_DEPLOYER_ADDRESSES[6][targetChainId]?.[chainId];
|
|
55
|
+
// Standard bridges deliver bridge-wrapped tokens (USDC.e, never canonical USDC),
|
|
56
|
+
// which would strand funds on the remote sucker — only map the native token.
|
|
57
|
+
const nativeAssets = assets.filter((asset) => asset === MappableAsset.NATIVE);
|
|
58
|
+
if (deployer && nativeAssets.length > 0) {
|
|
59
|
+
return {
|
|
60
|
+
deployer,
|
|
61
|
+
peer: viem_1.zeroHash,
|
|
62
|
+
mappings: nativeAssets.map((asset) => toV6Mapping(asset, chainId)),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (bridge === "both")
|
|
66
|
+
return undefined;
|
|
67
|
+
throw new Error(deployer
|
|
68
|
+
? `Only the native token can bridge over native bridges (they deliver bridge-wrapped tokens like USDC.e); use bridge "ccip" or "both" to map other assets`
|
|
69
|
+
: `No native bridge between ${targetChainId} and ${chainId} (native bridges only connect Ethereum with an L2); use bridge "ccip" or "both"`);
|
|
70
|
+
};
|
|
34
71
|
// v6 configs identify remote tokens/peers as bytes32 (a zero peer means the default
|
|
35
|
-
// same-address deterministic peer)
|
|
72
|
+
// same-address deterministic peer). One config per (remote chain, bridge kind) pair.
|
|
36
73
|
const deployerConfigurations = opts.version === 6
|
|
37
|
-
? suckerChains.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
remoteToken: pad(remoteToken),
|
|
74
|
+
? suckerChains.flatMap((chainId) => {
|
|
75
|
+
const native = bridge === "ccip" ? undefined : v6NativeConfigFor(chainId);
|
|
76
|
+
const ccip = bridge === "native"
|
|
77
|
+
? undefined
|
|
78
|
+
: {
|
|
79
|
+
deployer: getCcipDeployer(chainId),
|
|
80
|
+
peer: viem_1.zeroHash,
|
|
81
|
+
mappings: assets.map((asset) => toV6Mapping(asset, chainId)),
|
|
46
82
|
};
|
|
47
|
-
|
|
48
|
-
})
|
|
83
|
+
return [...(native ? [native] : []), ...(ccip ? [ccip] : [])];
|
|
84
|
+
})
|
|
49
85
|
: suckerChains.map((chainId) => ({
|
|
50
|
-
deployer:
|
|
86
|
+
deployer: getCcipDeployer(chainId),
|
|
51
87
|
mappings: assets.map((asset) => ({
|
|
52
88
|
...getTokens(asset, chainId),
|
|
53
89
|
minGas: 200_000,
|
|
@@ -56,7 +92,7 @@ export function parseSuckerDeployerConfig(targetChainId, chains, assets = [Mappa
|
|
|
56
92
|
}));
|
|
57
93
|
return {
|
|
58
94
|
deployerConfigurations,
|
|
59
|
-
salt: opts.salt ?? createSalt(),
|
|
95
|
+
salt: opts.salt ?? (0, tx_js_1.createSalt)(),
|
|
60
96
|
};
|
|
61
97
|
}
|
|
62
98
|
//# sourceMappingURL=deploy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/utils/deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/utils/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const deploy_js_1 = require("./deploy.js");
|
|
5
|
+
const chains_1 = require("viem/chains");
|
|
6
|
+
const tx_js_1 = require("./tx.js");
|
|
7
|
+
(0, vitest_1.describe)("sucker parsing", () => {
|
|
8
|
+
(0, vitest_1.test)("ouputs correct amount of sucker configurations and mappings", () => {
|
|
9
|
+
const result = (0, deploy_js_1.parseSuckerDeployerConfig)(chains_1.mainnet.id, [chains_1.optimism.id, chains_1.arbitrum.id, chains_1.base.id], [deploy_js_1.MappableAsset.USDC, deploy_js_1.MappableAsset.NATIVE]);
|
|
8
10
|
// Should be 3 deployer configurations, one for each chain that is being connected to mainnet.
|
|
9
|
-
expect(result.deployerConfigurations.length).toBe(3);
|
|
11
|
+
(0, vitest_1.expect)(result.deployerConfigurations.length).toBe(3);
|
|
10
12
|
// Each configuration should have 2 mappings, one for USDC and one for NATIVE.
|
|
11
13
|
result.deployerConfigurations.map((conf) => {
|
|
12
|
-
expect(conf.mappings.length).toBe(2);
|
|
14
|
+
(0, vitest_1.expect)(conf.mappings.length).toBe(2);
|
|
13
15
|
});
|
|
14
16
|
});
|
|
15
|
-
test("keeps salt if passed in explicitly", () => {
|
|
16
|
-
const salt = createSalt();
|
|
17
|
-
const result = parseSuckerDeployerConfig(mainnet.id, [optimism.id, arbitrum.id, base.id], [MappableAsset.NATIVE], { salt: salt });
|
|
17
|
+
(0, vitest_1.test)("keeps salt if passed in explicitly", () => {
|
|
18
|
+
const salt = (0, tx_js_1.createSalt)();
|
|
19
|
+
const result = (0, deploy_js_1.parseSuckerDeployerConfig)(chains_1.mainnet.id, [chains_1.optimism.id, chains_1.arbitrum.id, chains_1.base.id], [deploy_js_1.MappableAsset.NATIVE], { salt: salt });
|
|
18
20
|
// Salt should be the same as the one we passed in.
|
|
19
|
-
expect(result.salt).toBe(salt);
|
|
21
|
+
(0, vitest_1.expect)(result.salt).toBe(salt);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.describe)("v6 bridge selection", () => {
|
|
25
|
+
(0, vitest_1.test)("native bridges from mainnet to each L2", () => {
|
|
26
|
+
const result = (0, deploy_js_1.parseSuckerDeployerConfig)(chains_1.mainnet.id, [chains_1.optimism.id, chains_1.arbitrum.id, chains_1.base.id], [deploy_js_1.MappableAsset.NATIVE], { version: 6, bridge: "native" });
|
|
27
|
+
(0, vitest_1.expect)(result.deployerConfigurations.length).toBe(3);
|
|
28
|
+
(0, vitest_1.expect)(result.deployerConfigurations[0].deployer).toBe("0x298a775c030adcedb641a89d9047ec9972674e1a");
|
|
29
|
+
});
|
|
30
|
+
(0, vitest_1.test)("both deploys a native and a CCIP sucker per L1<->L2 pair", () => {
|
|
31
|
+
const result = (0, deploy_js_1.parseSuckerDeployerConfig)(chains_1.mainnet.id, [chains_1.optimism.id], [deploy_js_1.MappableAsset.NATIVE], { version: 6, bridge: "both" });
|
|
32
|
+
(0, vitest_1.expect)(result.deployerConfigurations.length).toBe(2);
|
|
33
|
+
const [native, ccip] = result.deployerConfigurations;
|
|
34
|
+
(0, vitest_1.expect)(native.deployer).not.toBe(ccip.deployer);
|
|
35
|
+
});
|
|
36
|
+
(0, vitest_1.test)("both falls back to CCIP alone for L2<->L2 pairs", () => {
|
|
37
|
+
const result = (0, deploy_js_1.parseSuckerDeployerConfig)(chains_1.optimism.id, [chains_1.base.id], [deploy_js_1.MappableAsset.NATIVE], { version: 6, bridge: "both" });
|
|
38
|
+
(0, vitest_1.expect)(result.deployerConfigurations.length).toBe(1);
|
|
39
|
+
});
|
|
40
|
+
(0, vitest_1.test)("native throws for L2<->L2 pairs", () => {
|
|
41
|
+
(0, vitest_1.expect)(() => (0, deploy_js_1.parseSuckerDeployerConfig)(chains_1.optimism.id, [chains_1.base.id], [deploy_js_1.MappableAsset.NATIVE], {
|
|
42
|
+
version: 6,
|
|
43
|
+
bridge: "native",
|
|
44
|
+
})).toThrow(/native bridges only connect Ethereum with an L2/);
|
|
45
|
+
});
|
|
46
|
+
(0, vitest_1.test)("native throws for USDC (bridge-wrapped USDC.e trap)", () => {
|
|
47
|
+
(0, vitest_1.expect)(() => (0, deploy_js_1.parseSuckerDeployerConfig)(chains_1.mainnet.id, [chains_1.optimism.id], [deploy_js_1.MappableAsset.USDC], {
|
|
48
|
+
version: 6,
|
|
49
|
+
bridge: "native",
|
|
50
|
+
})).toThrow(/USDC\.e/);
|
|
51
|
+
});
|
|
52
|
+
(0, vitest_1.test)("both keeps USDC on the CCIP sucker only", () => {
|
|
53
|
+
const result = (0, deploy_js_1.parseSuckerDeployerConfig)(chains_1.mainnet.id, [chains_1.optimism.id], [deploy_js_1.MappableAsset.NATIVE, deploy_js_1.MappableAsset.USDC], { version: 6, bridge: "both" });
|
|
54
|
+
(0, vitest_1.expect)(result.deployerConfigurations.length).toBe(2);
|
|
55
|
+
const [native, ccip] = result.deployerConfigurations;
|
|
56
|
+
(0, vitest_1.expect)(native.mappings.length).toBe(1); // native token only
|
|
57
|
+
(0, vitest_1.expect)(ccip.mappings.length).toBe(2); // native + USDC
|
|
58
|
+
});
|
|
59
|
+
(0, vitest_1.test)("native is rejected for pre-v6 deployments", () => {
|
|
60
|
+
(0, vitest_1.expect)(() => (0, deploy_js_1.parseSuckerDeployerConfig)(chains_1.mainnet.id, [chains_1.optimism.id], [deploy_js_1.MappableAsset.NATIVE], {
|
|
61
|
+
bridge: "native",
|
|
62
|
+
})).toThrow(/only supported for v6/);
|
|
20
63
|
});
|
|
21
64
|
});
|
|
22
65
|
//# sourceMappingURL=deploy.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.test.js","sourceRoot":"","sources":["../../../src/utils/deploy.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"deploy.test.js","sourceRoot":"","sources":["../../../src/utils/deploy.test.ts"],"names":[],"mappings":"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"}
|