@towns-labs/contracts 2.0.2 → 2.0.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/dist/addresses.json +28 -28
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -11
- package/dist/index.js.map +1 -1
- package/package.json +7 -5
package/dist/addresses.json
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
"prod": {
|
|
3
|
+
"8453": {
|
|
4
|
+
"addresses": {
|
|
5
|
+
"accountProxy": "0x3Be52867f8Dca2911f81076B37921c334dE29551",
|
|
6
|
+
"escrow": "0x05f9597eed844410b7c0746A1C584188d0644730",
|
|
7
|
+
"multiSigSigner": "0xa3972FEebd6E1f973eD19cC586D79B3F61f892A3",
|
|
8
|
+
"orchestrator": "0xcf96B5228f656f26f83B8f1240fAD544C17ac7a8",
|
|
9
|
+
"simpleFunder": "0x41D23D227C6D0F732D41eE5c203C48d96292A48B",
|
|
10
|
+
"simpleSettler": "0x5386d1026e1598177e03eA52cbF1a0994ADF5eaE",
|
|
11
|
+
"simulator": "0xDAD7c34d0c41698B227D3C5ee3d6d88A78c63a65",
|
|
12
|
+
"townsAccount": "0x2eEBFfcFABEB8cE3AC016effFeC37dBBAccCff2a"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"stage": {
|
|
17
|
+
"84532": {
|
|
18
|
+
"addresses": {
|
|
19
|
+
"accountProxy": "0x0e0F0B93B20692a26671bc6084D8EecAB5689cbb",
|
|
20
|
+
"escrow": "0x05f9597eed844410b7c0746A1C584188d0644730",
|
|
21
|
+
"multiSigSigner": "0xa3972FEebd6E1f973eD19cC586D79B3F61f892A3",
|
|
22
|
+
"orchestrator": "0xcf96B5228f656f26f83B8f1240fAD544C17ac7a8",
|
|
23
|
+
"simpleFunder": "0x288C9db8aa7eD8b465d4Ec7791ac6F9C53A55744",
|
|
24
|
+
"simpleSettler": "0x90cacD85C1dc93af2D2D3e6c380162bBe07bb329",
|
|
25
|
+
"simulator": "0xDAD7c34d0c41698B227D3C5ee3d6d88A78c63a65",
|
|
26
|
+
"townsAccount": "0x2eEBFfcFABEB8cE3AC016effFeC37dBBAccCff2a"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
14
29
|
}
|
|
15
|
-
|
|
16
|
-
"stage": {
|
|
17
|
-
"84532": {
|
|
18
|
-
"addresses": {
|
|
19
|
-
"accountProxy": "0x0e0F0B93B20692a26671bc6084D8EecAB5689cbb",
|
|
20
|
-
"escrow": "0x05f9597eed844410b7c0746A1C584188d0644730",
|
|
21
|
-
"multiSigSigner": "0xa3972FEebd6E1f973eD19cC586D79B3F61f892A3",
|
|
22
|
-
"orchestrator": "0xcf96B5228f656f26f83B8f1240fAD544C17ac7a8",
|
|
23
|
-
"simpleFunder": "0x288C9db8aa7eD8b465d4Ec7791ac6F9C53A55744",
|
|
24
|
-
"simpleSettler": "0x90cacD85C1dc93af2D2D3e6c380162bBe07bb329",
|
|
25
|
-
"simulator": "0xDAD7c34d0c41698B227D3C5ee3d6d88A78c63a65",
|
|
26
|
-
"townsAccount": "0x2eEBFfcFABEB8cE3AC016effFeC37dBBAccCff2a"
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
30
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import deployments from './addresses.json';
|
|
2
|
-
|
|
2
|
+
import { type Address } from 'viem';
|
|
3
3
|
export type ChainDeployment = {
|
|
4
4
|
chainId: number;
|
|
5
5
|
addresses: Record<string, Address>;
|
|
@@ -12,6 +12,9 @@ export interface ContractAddresses {
|
|
|
12
12
|
simulator: Address;
|
|
13
13
|
townsAccount: Address;
|
|
14
14
|
accountProxy: Address;
|
|
15
|
+
simpleSettler: Address;
|
|
16
|
+
escrow: Address;
|
|
17
|
+
multiSigSigner: Address;
|
|
15
18
|
}
|
|
16
19
|
export { deployments };
|
|
17
20
|
export declare function getDeployment(context: string, chainId: number): ChainDeployment | undefined;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../deployments/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../deployments/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAEhE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;AAE5D,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,OAAO,CAAA;IACf,cAAc,EAAE,OAAO,CAAA;CACxB;AAsBD,OAAO,EAAE,WAAW,EAAE,CAAA;AAGtB,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,eAAe,GAAG,SAAS,CAE7B;AAGD,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,GAAG,SAAS,CAErB;AAGD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,iBAAiB,GAAG,SAAS,CAmB/B;AAGD,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAGrD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvE;AAcD,MAAM,WAAW,OAAO;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CACzC;AAGD,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAqBjF;AAGD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,GACb,iBAAiB,GAAG,SAAS,CAoB/B"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import deployments from './addresses.json';
|
|
2
|
+
const requiredAddressKeys = [
|
|
3
|
+
'orchestrator',
|
|
4
|
+
'simpleFunder',
|
|
5
|
+
'simulator',
|
|
6
|
+
'townsAccount',
|
|
7
|
+
'accountProxy',
|
|
8
|
+
'simpleSettler',
|
|
9
|
+
'escrow',
|
|
10
|
+
'multiSigSigner',
|
|
11
|
+
];
|
|
12
|
+
function hasRequiredAddresses(addresses) {
|
|
13
|
+
return requiredAddressKeys.every((key) => Boolean(addresses[key]));
|
|
14
|
+
}
|
|
2
15
|
// Re-export raw JSON
|
|
3
16
|
export { deployments };
|
|
4
17
|
// Type-safe accessor
|
|
@@ -15,12 +28,19 @@ export function getAddresses(context, chainId) {
|
|
|
15
28
|
if (!deployment) {
|
|
16
29
|
return undefined;
|
|
17
30
|
}
|
|
31
|
+
const addresses = deployment.addresses;
|
|
32
|
+
if (!hasRequiredAddresses(addresses)) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
18
35
|
return {
|
|
19
|
-
orchestrator:
|
|
20
|
-
simpleFunder:
|
|
21
|
-
simulator:
|
|
22
|
-
townsAccount:
|
|
23
|
-
accountProxy:
|
|
36
|
+
orchestrator: addresses.orchestrator,
|
|
37
|
+
simpleFunder: addresses.simpleFunder,
|
|
38
|
+
simulator: addresses.simulator,
|
|
39
|
+
townsAccount: addresses.townsAccount,
|
|
40
|
+
accountProxy: addresses.accountProxy,
|
|
41
|
+
simpleSettler: addresses.simpleSettler,
|
|
42
|
+
escrow: addresses.escrow,
|
|
43
|
+
multiSigSigner: addresses.multiSigSigner,
|
|
24
44
|
};
|
|
25
45
|
}
|
|
26
46
|
// List available contexts
|
|
@@ -44,22 +64,27 @@ const envKeys = {
|
|
|
44
64
|
townsAccount: 'TOWNS_ACCOUNT',
|
|
45
65
|
accountProxy: 'ACCOUNT_PROXY',
|
|
46
66
|
escrow: 'ESCROW',
|
|
67
|
+
multiSigSigner: 'MULTI_SIG_SIGNER',
|
|
47
68
|
};
|
|
48
69
|
// Get addresses from env vars (for local dev)
|
|
49
70
|
export function getAddressesFromEnv(opts) {
|
|
50
71
|
const prefix = opts?.keyPrefix ?? '';
|
|
51
72
|
const envObj = opts?.env ?? (typeof process !== 'undefined' ? process.env : {});
|
|
52
73
|
const get = (key) => envObj[`${prefix}${key}`];
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
return undefined;
|
|
56
|
-
return {
|
|
57
|
-
orchestrator,
|
|
74
|
+
const addresses = {
|
|
75
|
+
orchestrator: get(envKeys.orchestrator),
|
|
58
76
|
simpleFunder: get(envKeys.simpleFunder),
|
|
59
77
|
simulator: get(envKeys.simulator),
|
|
60
78
|
townsAccount: get(envKeys.townsAccount),
|
|
61
79
|
accountProxy: get(envKeys.accountProxy),
|
|
80
|
+
simpleSettler: get(envKeys.simpleSettler),
|
|
81
|
+
escrow: get(envKeys.escrow),
|
|
82
|
+
multiSigSigner: get(envKeys.multiSigSigner),
|
|
62
83
|
};
|
|
84
|
+
if (!hasRequiredAddresses(addresses)) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
return addresses;
|
|
63
88
|
}
|
|
64
89
|
// Get addresses with env var fallback for local contexts
|
|
65
90
|
export function getAddressesWithFallback(context, chainId, opts) {
|
|
@@ -68,7 +93,16 @@ export function getAddressesWithFallback(context, chainId, opts) {
|
|
|
68
93
|
if (fromJson)
|
|
69
94
|
return fromJson;
|
|
70
95
|
// Fallback to env vars for local contexts
|
|
71
|
-
if (context.startsWith('local') || chainId === 31337) {
|
|
96
|
+
if (context.startsWith('local') || chainId === 31337 || chainId === 31338) {
|
|
97
|
+
// Try chain-specific prefix first (e.g., 31338_ORCHESTRATOR)
|
|
98
|
+
const chainPrefix = `${chainId}_`;
|
|
99
|
+
const chainSpecific = getAddressesFromEnv({
|
|
100
|
+
...opts,
|
|
101
|
+
keyPrefix: `${chainPrefix}${opts?.keyPrefix ?? ''}`,
|
|
102
|
+
});
|
|
103
|
+
if (chainSpecific)
|
|
104
|
+
return chainSpecific;
|
|
105
|
+
// Fall back to non-prefixed env vars (backwards compatible for primary chain)
|
|
72
106
|
return getAddressesFromEnv(opts);
|
|
73
107
|
}
|
|
74
108
|
return undefined;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../deployments/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../deployments/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@towns-labs/contracts",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"coverage": "forge coverage --report summary",
|
|
28
28
|
"fmt": "forge fmt",
|
|
29
29
|
"lint": "forge fmt --check",
|
|
30
|
-
"deploy:local": "./scripts/sh/deploy.sh local
|
|
30
|
+
"deploy:local": "./scripts/sh/deploy.sh local",
|
|
31
|
+
"deploy:local-arb": "./scripts/sh/deploy.sh local-arb --contracts SimpleSettler,Escrow,SimpleFunder",
|
|
31
32
|
"deploy:stage": "./scripts/sh/deploy.sh stage",
|
|
32
33
|
"deploy:prod": "./scripts/sh/deploy.sh prod",
|
|
33
34
|
"make-config": "node ./deployments/make-config.js"
|
|
@@ -52,11 +53,12 @@
|
|
|
52
53
|
},
|
|
53
54
|
"dependencies": {
|
|
54
55
|
"@axelar-network/axelar-gmp-sdk-solidity": "^6.0.6",
|
|
55
|
-
"solady": "^0.1.26",
|
|
56
|
-
"@towns-protocol/diamond": "^0.7.0",
|
|
57
56
|
"@layerzerolabs/lz-evm-protocol-v2": "^3.0.156",
|
|
58
57
|
"@layerzerolabs/oapp-evm": "^0.4.1",
|
|
59
58
|
"@openzeppelin/contracts": "^5.0.0",
|
|
60
|
-
"
|
|
59
|
+
"@towns-protocol/diamond": "^0.7.0",
|
|
60
|
+
"murky": "github:dmfxyz/murky",
|
|
61
|
+
"solady": "^0.1.26",
|
|
62
|
+
"viem": "^2.29.3"
|
|
61
63
|
}
|
|
62
64
|
}
|