@reserve-protocol/dtf-sdk 0.1.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/README.md +134 -0
- package/dist/abi/deployer.d.ts +281 -0
- package/dist/abi/deployer.d.ts.map +1 -0
- package/dist/abi/deployer.js +178 -0
- package/dist/abi/deployer.js.map +1 -0
- package/dist/abi/erc20.d.ts +73 -0
- package/dist/abi/erc20.d.ts.map +1 -0
- package/dist/abi/erc20.js +58 -0
- package/dist/abi/erc20.js.map +1 -0
- package/dist/abi/folio.d.ts +1950 -0
- package/dist/abi/folio.d.ts.map +1 -0
- package/dist/abi/folio.js +1430 -0
- package/dist/abi/folio.js.map +1 -0
- package/dist/abi/governance-deployer.d.ts +130 -0
- package/dist/abi/governance-deployer.d.ts.map +1 -0
- package/dist/abi/governance-deployer.js +77 -0
- package/dist/abi/governance-deployer.js.map +1 -0
- package/dist/abi/governor.d.ts +1276 -0
- package/dist/abi/governor.d.ts.map +1 -0
- package/dist/abi/governor.js +1661 -0
- package/dist/abi/governor.js.map +1 -0
- package/dist/abi/proxy-admin.d.ts +49 -0
- package/dist/abi/proxy-admin.d.ts.map +1 -0
- package/dist/abi/proxy-admin.js +42 -0
- package/dist/abi/proxy-admin.js.map +1 -0
- package/dist/abi/spells.d.ts +67 -0
- package/dist/abi/spells.d.ts.map +1 -0
- package/dist/abi/spells.js +61 -0
- package/dist/abi/spells.js.map +1 -0
- package/dist/abi/timelock.d.ts +673 -0
- package/dist/abi/timelock.d.ts.map +1 -0
- package/dist/abi/timelock.js +469 -0
- package/dist/abi/timelock.js.map +1 -0
- package/dist/abi/vote-lock.d.ts +164 -0
- package/dist/abi/vote-lock.d.ts.map +1 -0
- package/dist/abi/vote-lock.js +116 -0
- package/dist/abi/vote-lock.js.map +1 -0
- package/dist/clients/chains.d.ts +5 -0
- package/dist/clients/chains.d.ts.map +1 -0
- package/dist/clients/chains.js +23 -0
- package/dist/clients/chains.js.map +1 -0
- package/dist/clients/create-clients.d.ts +14 -0
- package/dist/clients/create-clients.d.ts.map +1 -0
- package/dist/clients/create-clients.js +32 -0
- package/dist/clients/create-clients.js.map +1 -0
- package/dist/clients/create-price-client.d.ts +7 -0
- package/dist/clients/create-price-client.d.ts.map +1 -0
- package/dist/clients/create-price-client.js +15 -0
- package/dist/clients/create-price-client.js.map +1 -0
- package/dist/constants.d.ts +35 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +100 -0
- package/dist/constants.js.map +1 -0
- package/dist/deploy/build-deploy.d.ts +7 -0
- package/dist/deploy/build-deploy.d.ts.map +1 -0
- package/dist/deploy/build-deploy.js +84 -0
- package/dist/deploy/build-deploy.js.map +1 -0
- package/dist/deploy/extract-deployed-address.d.ts +8 -0
- package/dist/deploy/extract-deployed-address.d.ts.map +1 -0
- package/dist/deploy/extract-deployed-address.js +36 -0
- package/dist/deploy/extract-deployed-address.js.map +1 -0
- package/dist/deploy/permissionless-defaults.d.ts +35 -0
- package/dist/deploy/permissionless-defaults.d.ts.map +1 -0
- package/dist/deploy/permissionless-defaults.js +76 -0
- package/dist/deploy/permissionless-defaults.js.map +1 -0
- package/dist/deploy/token-registry.d.ts +9 -0
- package/dist/deploy/token-registry.d.ts.map +1 -0
- package/dist/deploy/token-registry.js +68 -0
- package/dist/deploy/token-registry.js.map +1 -0
- package/dist/deploy/zap-deploy.d.ts +4 -0
- package/dist/deploy/zap-deploy.d.ts.map +1 -0
- package/dist/deploy/zap-deploy.js +50 -0
- package/dist/deploy/zap-deploy.js.map +1 -0
- package/dist/dtf/fees.d.ts +10 -0
- package/dist/dtf/fees.d.ts.map +1 -0
- package/dist/dtf/fees.js +103 -0
- package/dist/dtf/fees.js.map +1 -0
- package/dist/dtf/fetch-analytics.d.ts +27 -0
- package/dist/dtf/fetch-analytics.d.ts.map +1 -0
- package/dist/dtf/fetch-analytics.js +63 -0
- package/dist/dtf/fetch-analytics.js.map +1 -0
- package/dist/dtf/fetch-basket.d.ts +16 -0
- package/dist/dtf/fetch-basket.d.ts.map +1 -0
- package/dist/dtf/fetch-basket.js +32 -0
- package/dist/dtf/fetch-basket.js.map +1 -0
- package/dist/dtf/fetch-discover.d.ts +10 -0
- package/dist/dtf/fetch-discover.d.ts.map +1 -0
- package/dist/dtf/fetch-discover.js +17 -0
- package/dist/dtf/fetch-discover.js.map +1 -0
- package/dist/dtf/fetch-dtf.d.ts +25 -0
- package/dist/dtf/fetch-dtf.d.ts.map +1 -0
- package/dist/dtf/fetch-dtf.js +39 -0
- package/dist/dtf/fetch-dtf.js.map +1 -0
- package/dist/dtf/mint.d.ts +9 -0
- package/dist/dtf/mint.d.ts.map +1 -0
- package/dist/dtf/mint.js +82 -0
- package/dist/dtf/mint.js.map +1 -0
- package/dist/dtf/read-basket.d.ts +4 -0
- package/dist/dtf/read-basket.d.ts.map +1 -0
- package/dist/dtf/read-basket.js +20 -0
- package/dist/dtf/read-basket.js.map +1 -0
- package/dist/dtf/read-config.d.ts +4 -0
- package/dist/dtf/read-config.d.ts.map +1 -0
- package/dist/dtf/read-config.js +80 -0
- package/dist/dtf/read-config.js.map +1 -0
- package/dist/dtf/read-dtf.d.ts +6 -0
- package/dist/dtf/read-dtf.d.ts.map +1 -0
- package/dist/dtf/read-dtf.js +32 -0
- package/dist/dtf/read-dtf.js.map +1 -0
- package/dist/dtf/read-rebalance-control.d.ts +4 -0
- package/dist/dtf/read-rebalance-control.d.ts.map +1 -0
- package/dist/dtf/read-rebalance-control.js +14 -0
- package/dist/dtf/read-rebalance-control.js.map +1 -0
- package/dist/dtf/read-roles.d.ts +4 -0
- package/dist/dtf/read-roles.d.ts.map +1 -0
- package/dist/dtf/read-roles.js +29 -0
- package/dist/dtf/read-roles.js.map +1 -0
- package/dist/dtf/read-version.d.ts +3 -0
- package/dist/dtf/read-version.d.ts.map +1 -0
- package/dist/dtf/read-version.js +9 -0
- package/dist/dtf/read-version.js.map +1 -0
- package/dist/dtf/redeem.d.ts +5 -0
- package/dist/dtf/redeem.d.ts.map +1 -0
- package/dist/dtf/redeem.js +27 -0
- package/dist/dtf/redeem.js.map +1 -0
- package/dist/governance/build-proposal.d.ts +11 -0
- package/dist/governance/build-proposal.d.ts.map +1 -0
- package/dist/governance/build-proposal.js +78 -0
- package/dist/governance/build-proposal.js.map +1 -0
- package/dist/governance/build-settings-calldata.d.ts +39 -0
- package/dist/governance/build-settings-calldata.d.ts.map +1 -0
- package/dist/governance/build-settings-calldata.js +145 -0
- package/dist/governance/build-settings-calldata.js.map +1 -0
- package/dist/governance/compute-proposal-state.d.ts +18 -0
- package/dist/governance/compute-proposal-state.d.ts.map +1 -0
- package/dist/governance/compute-proposal-state.js +87 -0
- package/dist/governance/compute-proposal-state.js.map +1 -0
- package/dist/governance/decode-proposal.d.ts +22 -0
- package/dist/governance/decode-proposal.d.ts.map +1 -0
- package/dist/governance/decode-proposal.js +164 -0
- package/dist/governance/decode-proposal.js.map +1 -0
- package/dist/governance/fetch-proposals.d.ts +41 -0
- package/dist/governance/fetch-proposals.d.ts.map +1 -0
- package/dist/governance/fetch-proposals.js +173 -0
- package/dist/governance/fetch-proposals.js.map +1 -0
- package/dist/governance/read-governance.d.ts +7 -0
- package/dist/governance/read-governance.d.ts.map +1 -0
- package/dist/governance/read-governance.js +97 -0
- package/dist/governance/read-governance.js.map +1 -0
- package/dist/governance/read-proposals.d.ts +11 -0
- package/dist/governance/read-proposals.d.ts.map +1 -0
- package/dist/governance/read-proposals.js +104 -0
- package/dist/governance/read-proposals.js.map +1 -0
- package/dist/governance/read-voting-power.d.ts +8 -0
- package/dist/governance/read-voting-power.d.ts.map +1 -0
- package/dist/governance/read-voting-power.js +25 -0
- package/dist/governance/read-voting-power.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/prices/chainlink.d.ts +8 -0
- package/dist/prices/chainlink.d.ts.map +1 -0
- package/dist/prices/chainlink.js +116 -0
- package/dist/prices/chainlink.js.map +1 -0
- package/dist/prices/reserve-api.d.ts +7 -0
- package/dist/prices/reserve-api.d.ts.map +1 -0
- package/dist/prices/reserve-api.js +47 -0
- package/dist/prices/reserve-api.js.map +1 -0
- package/dist/rebalance/build-auction.d.ts +25 -0
- package/dist/rebalance/build-auction.d.ts.map +1 -0
- package/dist/rebalance/build-auction.js +73 -0
- package/dist/rebalance/build-auction.js.map +1 -0
- package/dist/rebalance/build-rebalance.d.ts +22 -0
- package/dist/rebalance/build-rebalance.d.ts.map +1 -0
- package/dist/rebalance/build-rebalance.js +30 -0
- package/dist/rebalance/build-rebalance.js.map +1 -0
- package/dist/rebalance/read-auction.d.ts +4 -0
- package/dist/rebalance/read-auction.d.ts.map +1 -0
- package/dist/rebalance/read-auction.js +31 -0
- package/dist/rebalance/read-auction.js.map +1 -0
- package/dist/rebalance/read-rebalance.d.ts +4 -0
- package/dist/rebalance/read-rebalance.d.ts.map +1 -0
- package/dist/rebalance/read-rebalance.js +50 -0
- package/dist/rebalance/read-rebalance.js.map +1 -0
- package/dist/rebalance/transform.d.ts +22 -0
- package/dist/rebalance/transform.d.ts.map +1 -0
- package/dist/rebalance/transform.js +47 -0
- package/dist/rebalance/transform.js.map +1 -0
- package/dist/revenue/compute-revenue.d.ts +45 -0
- package/dist/revenue/compute-revenue.d.ts.map +1 -0
- package/dist/revenue/compute-revenue.js +216 -0
- package/dist/revenue/compute-revenue.js.map +1 -0
- package/dist/revenue/fetch-revenue.d.ts +8 -0
- package/dist/revenue/fetch-revenue.d.ts.map +1 -0
- package/dist/revenue/fetch-revenue.js +182 -0
- package/dist/revenue/fetch-revenue.js.map +1 -0
- package/dist/revenue/fetch-rsr-burns.d.ts +9 -0
- package/dist/revenue/fetch-rsr-burns.d.ts.map +1 -0
- package/dist/revenue/fetch-rsr-burns.js +106 -0
- package/dist/revenue/fetch-rsr-burns.js.map +1 -0
- package/dist/types.d.ts +546 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/assert.d.ts +2 -0
- package/dist/utils/assert.d.ts.map +1 -0
- package/dist/utils/assert.js +5 -0
- package/dist/utils/assert.js.map +1 -0
- package/dist/utils/fetch-token-metadata.d.ts +7 -0
- package/dist/utils/fetch-token-metadata.d.ts.map +1 -0
- package/dist/utils/fetch-token-metadata.js +29 -0
- package/dist/utils/fetch-token-metadata.js.map +1 -0
- package/dist/utils/fetch-with-retry.d.ts +7 -0
- package/dist/utils/fetch-with-retry.d.ts.map +1 -0
- package/dist/utils/fetch-with-retry.js +38 -0
- package/dist/utils/fetch-with-retry.js.map +1 -0
- package/dist/utils/query-subgraph.d.ts +7 -0
- package/dist/utils/query-subgraph.d.ts.map +1 -0
- package/dist/utils/query-subgraph.js +25 -0
- package/dist/utils/query-subgraph.js.map +1 -0
- package/dist/utils/validate-price-control.d.ts +3 -0
- package/dist/utils/validate-price-control.d.ts.map +1 -0
- package/dist/utils/validate-price-control.js +6 -0
- package/dist/utils/validate-price-control.js.map +1 -0
- package/dist/vote-lock/build-vote-lock.d.ts +10 -0
- package/dist/vote-lock/build-vote-lock.d.ts.map +1 -0
- package/dist/vote-lock/build-vote-lock.js +73 -0
- package/dist/vote-lock/build-vote-lock.js.map +1 -0
- package/dist/vote-lock/read-vote-lock.d.ts +7 -0
- package/dist/vote-lock/read-vote-lock.d.ts.map +1 -0
- package/dist/vote-lock/read-vote-lock.js +64 -0
- package/dist/vote-lock/read-vote-lock.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
const voteLockAbi = [
|
|
2
|
+
{
|
|
3
|
+
name: 'deposit',
|
|
4
|
+
type: 'function',
|
|
5
|
+
inputs: [
|
|
6
|
+
{ name: 'assets', type: 'uint256' },
|
|
7
|
+
{ name: 'receiver', type: 'address' },
|
|
8
|
+
],
|
|
9
|
+
outputs: [{ type: 'uint256' }],
|
|
10
|
+
stateMutability: 'nonpayable',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'depositAndDelegate',
|
|
14
|
+
type: 'function',
|
|
15
|
+
inputs: [{ name: 'assets', type: 'uint256' }],
|
|
16
|
+
outputs: [{ name: 'shares', type: 'uint256' }],
|
|
17
|
+
stateMutability: 'nonpayable',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: 'withdraw',
|
|
21
|
+
type: 'function',
|
|
22
|
+
inputs: [
|
|
23
|
+
{ name: 'assets', type: 'uint256' },
|
|
24
|
+
{ name: 'receiver', type: 'address' },
|
|
25
|
+
{ name: 'owner', type: 'address' },
|
|
26
|
+
],
|
|
27
|
+
outputs: [{ type: 'uint256' }],
|
|
28
|
+
stateMutability: 'nonpayable',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'delegate',
|
|
32
|
+
type: 'function',
|
|
33
|
+
inputs: [{ name: 'delegatee', type: 'address' }],
|
|
34
|
+
outputs: [],
|
|
35
|
+
stateMutability: 'nonpayable',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'delegates',
|
|
39
|
+
type: 'function',
|
|
40
|
+
inputs: [{ name: 'account', type: 'address' }],
|
|
41
|
+
outputs: [{ type: 'address' }],
|
|
42
|
+
stateMutability: 'view',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'balanceOf',
|
|
46
|
+
type: 'function',
|
|
47
|
+
inputs: [{ name: 'account', type: 'address' }],
|
|
48
|
+
outputs: [{ type: 'uint256' }],
|
|
49
|
+
stateMutability: 'view',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'getVotes',
|
|
53
|
+
type: 'function',
|
|
54
|
+
inputs: [{ name: 'account', type: 'address' }],
|
|
55
|
+
outputs: [{ type: 'uint256' }],
|
|
56
|
+
stateMutability: 'view',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'asset',
|
|
60
|
+
type: 'function',
|
|
61
|
+
inputs: [],
|
|
62
|
+
outputs: [{ type: 'address' }],
|
|
63
|
+
stateMutability: 'view',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'unstakingDelay',
|
|
67
|
+
type: 'function',
|
|
68
|
+
inputs: [],
|
|
69
|
+
outputs: [{ type: 'uint256' }],
|
|
70
|
+
stateMutability: 'view',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'claimRewards',
|
|
74
|
+
type: 'function',
|
|
75
|
+
inputs: [{ name: '_rewardTokens', type: 'address[]' }],
|
|
76
|
+
outputs: [{ name: 'claimableRewards', type: 'uint256[]' }],
|
|
77
|
+
stateMutability: 'nonpayable',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'maxWithdraw',
|
|
81
|
+
type: 'function',
|
|
82
|
+
inputs: [{ name: 'owner', type: 'address' }],
|
|
83
|
+
outputs: [{ type: 'uint256' }],
|
|
84
|
+
stateMutability: 'view',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'convertToAssets',
|
|
88
|
+
type: 'function',
|
|
89
|
+
inputs: [{ name: 'shares', type: 'uint256' }],
|
|
90
|
+
outputs: [{ type: 'uint256' }],
|
|
91
|
+
stateMutability: 'view',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'getAllRewardTokens',
|
|
95
|
+
type: 'function',
|
|
96
|
+
inputs: [],
|
|
97
|
+
outputs: [{ type: 'address[]' }],
|
|
98
|
+
stateMutability: 'view',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'addRewardToken',
|
|
102
|
+
type: 'function',
|
|
103
|
+
inputs: [{ name: 'token', type: 'address' }],
|
|
104
|
+
outputs: [],
|
|
105
|
+
stateMutability: 'nonpayable',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'removeRewardToken',
|
|
109
|
+
type: 'function',
|
|
110
|
+
inputs: [{ name: 'token', type: 'address' }],
|
|
111
|
+
outputs: [],
|
|
112
|
+
stateMutability: 'nonpayable',
|
|
113
|
+
},
|
|
114
|
+
];
|
|
115
|
+
export default voteLockAbi;
|
|
116
|
+
//# sourceMappingURL=vote-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vote-lock.js","sourceRoot":"","sources":["../../src/abi/vote-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/clients/chains.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAIlD,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAe3D,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { mainnet, base, bsc } from 'viem/chains';
|
|
2
|
+
export const CHAINS = {
|
|
3
|
+
[mainnet.id]: mainnet,
|
|
4
|
+
[bsc.id]: bsc,
|
|
5
|
+
[base.id]: base,
|
|
6
|
+
};
|
|
7
|
+
export const DEFAULT_RPCS = {
|
|
8
|
+
[mainnet.id]: [
|
|
9
|
+
'https://ethereum-rpc.publicnode.com/',
|
|
10
|
+
'https://mainnet.gateway.tenderly.co/',
|
|
11
|
+
],
|
|
12
|
+
[bsc.id]: [
|
|
13
|
+
'https://bsc-dataseed2.binance.org',
|
|
14
|
+
'https://bsc-dataseed3.ninicoin.io',
|
|
15
|
+
'https://bsc-dataseed4.defibit.io',
|
|
16
|
+
'https://bsc-rpc.publicnode.com',
|
|
17
|
+
],
|
|
18
|
+
[base.id]: [
|
|
19
|
+
'https://base-rpc.publicnode.com',
|
|
20
|
+
'https://base.gateway.tenderly.co',
|
|
21
|
+
],
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=chains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../../src/clients/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAIhD,MAAM,CAAC,MAAM,MAAM,GAAoC;IACrD,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO;IACrB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG;IACb,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI;CAChB,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAuC;IAC9D,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACZ,sCAAsC;QACtC,sCAAsC;KACvC;IACD,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QACR,mCAAmC;QACnC,mCAAmC;QACnC,kCAAkC;QAClC,gCAAgC;KACjC;IACD,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACT,iCAAiC;QACjC,kCAAkC;KACnC;CACF,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type PublicClient, type WalletClient, type Account, type Transport, type Chain } from 'viem';
|
|
2
|
+
import type { SupportedChainId } from '../types';
|
|
3
|
+
export type CreateClientsOptions = {
|
|
4
|
+
chainId: SupportedChainId;
|
|
5
|
+
rpc?: string | string[];
|
|
6
|
+
walletKey?: string;
|
|
7
|
+
};
|
|
8
|
+
export type DtfClients = {
|
|
9
|
+
publicClient: PublicClient<Transport, Chain>;
|
|
10
|
+
walletClient: WalletClient<Transport, Chain, Account> | null;
|
|
11
|
+
account: Account | null;
|
|
12
|
+
};
|
|
13
|
+
export declare function createDtfClients(opts: CreateClientsOptions): DtfClients;
|
|
14
|
+
//# sourceMappingURL=create-clients.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-clients.d.ts","sourceRoot":"","sources":["../../src/clients/create-clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,KAAK,EACX,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAGhD,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,gBAAgB,CAAA;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC5C,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC5D,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;CACxB,CAAA;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CAoBvE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createPublicClient, createWalletClient, fallback, http, } from 'viem';
|
|
2
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
|
3
|
+
import { CHAINS, DEFAULT_RPCS } from './chains';
|
|
4
|
+
const HTTP_OPTIONS = { retryCount: 2, timeout: 20_000 };
|
|
5
|
+
export function createDtfClients(opts) {
|
|
6
|
+
const chain = CHAINS[opts.chainId];
|
|
7
|
+
if (!chain)
|
|
8
|
+
throw new Error(`Unsupported chainId: ${opts.chainId}`);
|
|
9
|
+
const transport = buildTransport(opts.chainId, opts.rpc);
|
|
10
|
+
const publicClient = createPublicClient({ chain, transport });
|
|
11
|
+
let walletClient = null;
|
|
12
|
+
let account = null;
|
|
13
|
+
if (opts.walletKey) {
|
|
14
|
+
const key = opts.walletKey.startsWith('0x')
|
|
15
|
+
? opts.walletKey
|
|
16
|
+
: `0x${opts.walletKey}`;
|
|
17
|
+
account = privateKeyToAccount(key);
|
|
18
|
+
walletClient = createWalletClient({ account, chain, transport });
|
|
19
|
+
}
|
|
20
|
+
return { publicClient, walletClient, account };
|
|
21
|
+
}
|
|
22
|
+
function buildTransport(chainId, rpc) {
|
|
23
|
+
if (typeof rpc === 'string')
|
|
24
|
+
return http(rpc, HTTP_OPTIONS);
|
|
25
|
+
if (Array.isArray(rpc) && rpc.length > 0)
|
|
26
|
+
return fallback(rpc.map((r) => http(r, HTTP_OPTIONS)));
|
|
27
|
+
const defaults = DEFAULT_RPCS[chainId];
|
|
28
|
+
if (!defaults)
|
|
29
|
+
throw new Error(`No default RPCs for chainId: ${chainId}`);
|
|
30
|
+
return fallback(defaults.map((r) => http(r, HTTP_OPTIONS)));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=create-clients.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-clients.js","sourceRoot":"","sources":["../../src/clients/create-clients.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,IAAI,GAML,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAc/C,MAAM,YAAY,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAW,CAAA;AAEhE,MAAM,UAAU,gBAAgB,CAAC,IAA0B;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAEnE,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAExD,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAE7D,IAAI,YAAY,GAAmD,IAAI,CAAA;IACvE,IAAI,OAAO,GAAmB,IAAI,CAAA;IAElC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;YACzC,CAAC,CAAE,IAAI,CAAC,SAA2B;YACnC,CAAC,CAAE,KAAK,IAAI,CAAC,SAAS,EAAoB,CAAA;QAC5C,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAClC,YAAY,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,CAAA;AAChD,CAAC;AAED,SAAS,cAAc,CACrB,OAAyB,EACzB,GAAuB;IAEvB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IAExD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAA;IACzE,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type PublicClient } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Create a read-only client for ETH mainnet (Chainlink price feeds).
|
|
4
|
+
* Always ETH mainnet regardless of which chain the DTF is on.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createPriceClient(rpc?: string): PublicClient;
|
|
7
|
+
//# sourceMappingURL=create-price-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-price-client.d.ts","sourceRoot":"","sources":["../../src/clients/create-price-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AAM5E;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY,CAM5D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createPublicClient, fallback, http } from 'viem';
|
|
2
|
+
import { mainnet } from 'viem/chains';
|
|
3
|
+
import { DEFAULT_RPCS } from './chains';
|
|
4
|
+
const HTTP_OPTIONS = { retryCount: 2, timeout: 20_000 };
|
|
5
|
+
/**
|
|
6
|
+
* Create a read-only client for ETH mainnet (Chainlink price feeds).
|
|
7
|
+
* Always ETH mainnet regardless of which chain the DTF is on.
|
|
8
|
+
*/
|
|
9
|
+
export function createPriceClient(rpc) {
|
|
10
|
+
const transport = rpc
|
|
11
|
+
? http(rpc, HTTP_OPTIONS)
|
|
12
|
+
: fallback(DEFAULT_RPCS[mainnet.id].map((r) => http(r, HTTP_OPTIONS)));
|
|
13
|
+
return createPublicClient({ chain: mainnet, transport });
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=create-price-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-price-client.js","sourceRoot":"","sources":["../../src/clients/create-price-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,YAAY,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAW,CAAA;AAEhE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,MAAM,SAAS,GAAG,GAAG;QACnB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;QACzB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IAEzE,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;AAC1D,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
import type { ProposalState, SupportedChainId, Volatility } from './types';
|
|
3
|
+
export declare const SUBGRAPH_URLS: Record<SupportedChainId, string>;
|
|
4
|
+
export declare const SUPPORTED_CHAINS: SupportedChainId[];
|
|
5
|
+
export declare const CHAINLINK_BTC_USD: "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c";
|
|
6
|
+
export declare const CHAINLINK_RSR_USD: "0x759bBC1be8F90eE6457C44abc7d443842a976d02";
|
|
7
|
+
export declare const CHAINLINK_DECIMALS = 8;
|
|
8
|
+
export declare const STALE_PRICE_THRESHOLD_S = 7200;
|
|
9
|
+
export declare const RESERVE_API_BASE_URL = "https://api.reserve.org";
|
|
10
|
+
export declare const AUCTION_LAUNCHER_WINDOW = 86400n;
|
|
11
|
+
export declare const REBALANCE_TTL = 172800n;
|
|
12
|
+
export declare const PRICE_CONTROL: {
|
|
13
|
+
readonly NONE: 0;
|
|
14
|
+
readonly PARTIAL: 1;
|
|
15
|
+
readonly ATOMIC_SWAP: 2;
|
|
16
|
+
};
|
|
17
|
+
export declare const FOLIO_ROLES: {
|
|
18
|
+
readonly DEFAULT_ADMIN: "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
19
|
+
readonly REBALANCE_MANAGER: "0x4ff6ae4d6a29e79ca45c6441bdc89b93878ac6118485b33c8baa3749fc3cb130";
|
|
20
|
+
readonly AUCTION_LAUNCHER: "0x13ff1b2625181b311f257c723b5e6d366eb318b212d9dd694c48fcf227659df5";
|
|
21
|
+
readonly BRAND_MANAGER: "0x2d8e650da9bd8c373ab2450d770f2ed39549bfc28d3630025cecc51511bcd374";
|
|
22
|
+
};
|
|
23
|
+
export declare const VOLATILITY_TO_PRICE_ERROR: Record<Volatility, number>;
|
|
24
|
+
export declare const PROPOSAL_VOLATILITY_TO_PRICE_ERROR: Record<Volatility, number>;
|
|
25
|
+
export declare const D18: bigint;
|
|
26
|
+
export declare const SMALL_AUCTION_THRESHOLD_L1 = 1000;
|
|
27
|
+
export declare const SMALL_AUCTION_THRESHOLD_L2 = 100;
|
|
28
|
+
export declare const DEPLOYER_ADDRESS: Record<SupportedChainId, Address>;
|
|
29
|
+
export declare const GOVERNANCE_DEPLOYER_ADDRESS: Record<SupportedChainId, Address>;
|
|
30
|
+
export declare const V5_SPELL_ADDRESS: Partial<Record<SupportedChainId, Address>>;
|
|
31
|
+
export declare const V4_SPELL_ADDRESS: Partial<Record<SupportedChainId, Address>>;
|
|
32
|
+
export declare const GOVERNANCE_SPELL_ADDRESS: Partial<Record<SupportedChainId, Address>>;
|
|
33
|
+
export declare const ROLE_NAMES: Record<string, string>;
|
|
34
|
+
export declare const PROPOSAL_STATE_MAP: Record<number, ProposalState>;
|
|
35
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAI1E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAI1D,CAAA;AAID,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,EAAkB,CAAA;AAIjE,eAAO,MAAM,iBAAiB,EAC5B,4CAAqD,CAAA;AACvD,eAAO,MAAM,iBAAiB,EAC5B,4CAAqD,CAAA;AACvD,eAAO,MAAM,kBAAkB,IAAI,CAAA;AACnC,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAI3C,eAAO,MAAM,oBAAoB,4BAA4B,CAAA;AAI7D,eAAO,MAAM,uBAAuB,SAAS,CAAA;AAC7C,eAAO,MAAM,aAAa,UAAU,CAAA;AAIpC,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAIV,eAAO,MAAM,WAAW;;;;;CASd,CAAA;AAIV,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAKhE,CAAA;AAID,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAKzE,CAAA;AAID,eAAO,MAAM,GAAG,QAAa,CAAA;AAI7B,eAAO,MAAM,0BAA0B,OAAO,CAAA;AAC9C,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAI7C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAI9D,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAIzE,CAAA;AAID,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAIvE,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAGvE,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAG/E,CAAA;AAID,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAU7C,CAAA;AAID,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAS5D,CAAA"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// -- Subgraph URLs (Goldsky) --
|
|
2
|
+
export const SUBGRAPH_URLS = {
|
|
3
|
+
1: 'https://api.goldsky.com/api/public/project_cmgzim3e100095np2gjnbh6ry/subgraphs/dtf-index-mainnet/prod/gn',
|
|
4
|
+
56: 'https://api.goldsky.com/api/public/project_cmgzim3e100095np2gjnbh6ry/subgraphs/dtf-index-bsc/prod/gn',
|
|
5
|
+
8453: 'https://api.goldsky.com/api/public/project_cmgzim3e100095np2gjnbh6ry/subgraphs/dtf-index-base/prod/gn',
|
|
6
|
+
};
|
|
7
|
+
// -- Supported chains --
|
|
8
|
+
export const SUPPORTED_CHAINS = [1, 56, 8453];
|
|
9
|
+
// -- Chainlink --
|
|
10
|
+
export const CHAINLINK_BTC_USD = '0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c';
|
|
11
|
+
export const CHAINLINK_RSR_USD = '0x759bBC1be8F90eE6457C44abc7d443842a976d02';
|
|
12
|
+
export const CHAINLINK_DECIMALS = 8;
|
|
13
|
+
export const STALE_PRICE_THRESHOLD_S = 7200; // 2 hours
|
|
14
|
+
// -- Reserve API --
|
|
15
|
+
export const RESERVE_API_BASE_URL = 'https://api.reserve.org';
|
|
16
|
+
// -- Rebalance TTL --
|
|
17
|
+
export const AUCTION_LAUNCHER_WINDOW = 86400n; // 24h
|
|
18
|
+
export const REBALANCE_TTL = 172800n; // 48h
|
|
19
|
+
// -- PriceControl enum values --
|
|
20
|
+
export const PRICE_CONTROL = {
|
|
21
|
+
NONE: 0,
|
|
22
|
+
PARTIAL: 1,
|
|
23
|
+
ATOMIC_SWAP: 2,
|
|
24
|
+
};
|
|
25
|
+
// -- Folio roles (keccak256 hashes from Constants.sol) --
|
|
26
|
+
export const FOLIO_ROLES = {
|
|
27
|
+
DEFAULT_ADMIN: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
28
|
+
REBALANCE_MANAGER: '0x4ff6ae4d6a29e79ca45c6441bdc89b93878ac6118485b33c8baa3749fc3cb130',
|
|
29
|
+
AUCTION_LAUNCHER: '0x13ff1b2625181b311f257c723b5e6d366eb318b212d9dd694c48fcf227659df5',
|
|
30
|
+
BRAND_MANAGER: '0x2d8e650da9bd8c373ab2450d770f2ed39549bfc28d3630025cecc51511bcd374',
|
|
31
|
+
};
|
|
32
|
+
// -- Volatility → priceError (auction-time, tighter bands) --
|
|
33
|
+
export const VOLATILITY_TO_PRICE_ERROR = {
|
|
34
|
+
low: 0.02,
|
|
35
|
+
medium: 0.05,
|
|
36
|
+
high: 0.10,
|
|
37
|
+
degen: 0.50,
|
|
38
|
+
};
|
|
39
|
+
// WHY: Proposal-time volatility is WIDER than auction-time because prices
|
|
40
|
+
// may move significantly during the governance delay (voting + timelock).
|
|
41
|
+
export const PROPOSAL_VOLATILITY_TO_PRICE_ERROR = {
|
|
42
|
+
low: 0.25,
|
|
43
|
+
medium: 0.50,
|
|
44
|
+
high: 0.75,
|
|
45
|
+
degen: 0.90,
|
|
46
|
+
};
|
|
47
|
+
// -- D18 constant --
|
|
48
|
+
export const D18 = 10n ** 18n;
|
|
49
|
+
// -- Small auction thresholds (USD) --
|
|
50
|
+
export const SMALL_AUCTION_THRESHOLD_L1 = 1000;
|
|
51
|
+
export const SMALL_AUCTION_THRESHOLD_L2 = 100;
|
|
52
|
+
// -- Deployer addresses --
|
|
53
|
+
export const DEPLOYER_ADDRESS = {
|
|
54
|
+
1: '0x4D201a6e5BF975E2CEE9e5cbDfc803C0Ff122073',
|
|
55
|
+
8453: '0x3451fD177E9a8bB4Eb8271E627A804BD22A816F9',
|
|
56
|
+
56: '0x72f87239981159ed23673012EE3806Ca6114AB2A',
|
|
57
|
+
};
|
|
58
|
+
export const GOVERNANCE_DEPLOYER_ADDRESS = {
|
|
59
|
+
1: '0x72f87239981159ed23673012EE3806Ca6114AB2A',
|
|
60
|
+
8453: '0xECA52a5BDBAd98a5B4B6B944C4C9cc636D4D7461',
|
|
61
|
+
56: '0xA7BC1265C37A8D285cd2B10c842Efb8415A7bF9f',
|
|
62
|
+
};
|
|
63
|
+
// -- Spell addresses --
|
|
64
|
+
export const V5_SPELL_ADDRESS = {
|
|
65
|
+
1: '0x044B6F685FB8D0c3fd56D92FCBE5F0Ad947d2D53',
|
|
66
|
+
8453: '0x04B3eD311C68dfB0649D9faf695115F23DcbB540',
|
|
67
|
+
56: '0xe8e67a366e5166c442B6D376ADc772b93CdE7825',
|
|
68
|
+
};
|
|
69
|
+
export const V4_SPELL_ADDRESS = {
|
|
70
|
+
1: '0x7498c6aB0669A09DE7B9185ba72A98fa3Ca39cC9',
|
|
71
|
+
8453: '0x4720dbCAEEF5834AEf590781F93d70fD1e3AcADB',
|
|
72
|
+
};
|
|
73
|
+
export const GOVERNANCE_SPELL_ADDRESS = {
|
|
74
|
+
1: '0x4491b242f15f8dc9c6dfbb9a08edbbaae2623199',
|
|
75
|
+
8453: '0x587cefb69473ad467993c6dd3a8f202bf1ef5e2a',
|
|
76
|
+
};
|
|
77
|
+
// -- Role names (human-readable labels for role hashes) --
|
|
78
|
+
export const ROLE_NAMES = {
|
|
79
|
+
[FOLIO_ROLES.DEFAULT_ADMIN]: 'Default Admin',
|
|
80
|
+
[FOLIO_ROLES.REBALANCE_MANAGER]: 'Rebalance Manager',
|
|
81
|
+
[FOLIO_ROLES.AUCTION_LAUNCHER]: 'Auction Launcher',
|
|
82
|
+
[FOLIO_ROLES.BRAND_MANAGER]: 'Brand Manager',
|
|
83
|
+
// Timelock roles (OZ TimelockControllerUpgradeable)
|
|
84
|
+
'0xb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1': 'Proposer',
|
|
85
|
+
'0xd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63': 'Executor',
|
|
86
|
+
'0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783': 'Canceller',
|
|
87
|
+
'0x5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5': 'Timelock Admin',
|
|
88
|
+
};
|
|
89
|
+
// -- Governor state enum (OZ) --
|
|
90
|
+
export const PROPOSAL_STATE_MAP = {
|
|
91
|
+
0: 'PENDING',
|
|
92
|
+
1: 'ACTIVE',
|
|
93
|
+
2: 'CANCELED',
|
|
94
|
+
3: 'DEFEATED',
|
|
95
|
+
4: 'SUCCEEDED',
|
|
96
|
+
5: 'QUEUED',
|
|
97
|
+
6: 'EXPIRED',
|
|
98
|
+
7: 'EXECUTED',
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Address, type Hex } from 'viem';
|
|
2
|
+
import type { SupportedChainId, TransactionRequest, DeployBasicDetails, DeployAdditionalDetails, DeployFlags, DeployGovParams, DeployGovRoles } from '../types';
|
|
3
|
+
export declare function buildDeployDtfCalldata(chainId: SupportedChainId, basicDetails: DeployBasicDetails, additionalDetails: DeployAdditionalDetails, flags: DeployFlags, owner: Address, basketManagers: Address[], auctionLaunchers: Address[], brandManagers: Address[], deploymentNonce: Hex): TransactionRequest;
|
|
4
|
+
export declare function buildDeployGovernedDtfCalldata(chainId: SupportedChainId, stToken: Address, basicDetails: DeployBasicDetails, additionalDetails: DeployAdditionalDetails, flags: DeployFlags, ownerGovParams: DeployGovParams, tradingGovParams: DeployGovParams, govRoles: DeployGovRoles, deploymentNonce: Hex): TransactionRequest;
|
|
5
|
+
export declare function buildDeployStakingTokenCalldata(chainId: SupportedChainId, name: string, symbol: string, underlying: Address, govParams: DeployGovParams, deploymentNonce: Hex): TransactionRequest;
|
|
6
|
+
export declare function generateDeploymentNonce(): Hex;
|
|
7
|
+
//# sourceMappingURL=build-deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-deploy.d.ts","sourceRoot":"","sources":["../../src/deploy/build-deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAK5E,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,cAAc,EACf,MAAM,UAAU,CAAA;AAEjB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,kBAAkB,EAChC,iBAAiB,EAAE,uBAAuB,EAC1C,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,OAAO,EAAE,EACzB,gBAAgB,EAAE,OAAO,EAAE,EAC3B,aAAa,EAAE,OAAO,EAAE,EACxB,eAAe,EAAE,GAAG,GACnB,kBAAkB,CAkCpB;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,iBAAiB,EAAE,uBAAuB,EAC1C,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,eAAe,EAC/B,gBAAgB,EAAE,eAAe,EACjC,QAAQ,EAAE,cAAc,EACxB,eAAe,EAAE,GAAG,GACnB,kBAAkB,CAiCpB;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,eAAe,EAC1B,eAAe,EAAE,GAAG,GACnB,kBAAkB,CAYpB;AAED,wBAAgB,uBAAuB,IAAI,GAAG,CAM7C"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { encodeFunctionData, keccak256 } from 'viem';
|
|
2
|
+
import deployerAbi from '../abi/deployer';
|
|
3
|
+
import governanceDeployerAbi from '../abi/governance-deployer';
|
|
4
|
+
import { DEPLOYER_ADDRESS, GOVERNANCE_DEPLOYER_ADDRESS } from '../constants';
|
|
5
|
+
import { assert } from '../utils/assert';
|
|
6
|
+
export function buildDeployDtfCalldata(chainId, basicDetails, additionalDetails, flags, owner, basketManagers, auctionLaunchers, brandManagers, deploymentNonce) {
|
|
7
|
+
assert(basicDetails.assets.length > 0, 'assets must not be empty');
|
|
8
|
+
assert(basicDetails.assets.length === basicDetails.amounts.length, 'assets and amounts must have the same length');
|
|
9
|
+
const deployer = DEPLOYER_ADDRESS[chainId];
|
|
10
|
+
assert(!!deployer, `No deployer address for chain ${chainId}`);
|
|
11
|
+
return {
|
|
12
|
+
to: deployer,
|
|
13
|
+
data: encodeFunctionData({
|
|
14
|
+
abi: deployerAbi,
|
|
15
|
+
functionName: 'deployFolio',
|
|
16
|
+
args: [
|
|
17
|
+
basicDetails,
|
|
18
|
+
{
|
|
19
|
+
...additionalDetails,
|
|
20
|
+
// WHY: On-chain feeRecipient.portion is uint96, but we accept bigint for ergonomics
|
|
21
|
+
feeRecipients: additionalDetails.feeRecipients.map((r) => ({
|
|
22
|
+
recipient: r.recipient,
|
|
23
|
+
portion: r.portion,
|
|
24
|
+
})),
|
|
25
|
+
},
|
|
26
|
+
flags,
|
|
27
|
+
owner,
|
|
28
|
+
basketManagers,
|
|
29
|
+
auctionLaunchers,
|
|
30
|
+
brandManagers,
|
|
31
|
+
deploymentNonce,
|
|
32
|
+
],
|
|
33
|
+
}),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function buildDeployGovernedDtfCalldata(chainId, stToken, basicDetails, additionalDetails, flags, ownerGovParams, tradingGovParams, govRoles, deploymentNonce) {
|
|
37
|
+
assert(basicDetails.assets.length > 0, 'assets must not be empty');
|
|
38
|
+
assert(basicDetails.assets.length === basicDetails.amounts.length, 'assets and amounts must have the same length');
|
|
39
|
+
const deployer = DEPLOYER_ADDRESS[chainId];
|
|
40
|
+
assert(!!deployer, `No deployer address for chain ${chainId}`);
|
|
41
|
+
return {
|
|
42
|
+
to: deployer,
|
|
43
|
+
data: encodeFunctionData({
|
|
44
|
+
abi: deployerAbi,
|
|
45
|
+
functionName: 'deployGovernedFolio',
|
|
46
|
+
args: [
|
|
47
|
+
stToken,
|
|
48
|
+
basicDetails,
|
|
49
|
+
{
|
|
50
|
+
...additionalDetails,
|
|
51
|
+
feeRecipients: additionalDetails.feeRecipients.map((r) => ({
|
|
52
|
+
recipient: r.recipient,
|
|
53
|
+
portion: r.portion,
|
|
54
|
+
})),
|
|
55
|
+
},
|
|
56
|
+
flags,
|
|
57
|
+
ownerGovParams,
|
|
58
|
+
tradingGovParams,
|
|
59
|
+
govRoles,
|
|
60
|
+
deploymentNonce,
|
|
61
|
+
],
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export function buildDeployStakingTokenCalldata(chainId, name, symbol, underlying, govParams, deploymentNonce) {
|
|
66
|
+
const govDeployer = GOVERNANCE_DEPLOYER_ADDRESS[chainId];
|
|
67
|
+
assert(!!govDeployer, `No governance deployer address for chain ${chainId}`);
|
|
68
|
+
return {
|
|
69
|
+
to: govDeployer,
|
|
70
|
+
data: encodeFunctionData({
|
|
71
|
+
abi: governanceDeployerAbi,
|
|
72
|
+
functionName: 'deployGovernedStakingToken',
|
|
73
|
+
args: [name, symbol, underlying, govParams, deploymentNonce],
|
|
74
|
+
}),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export function generateDeploymentNonce() {
|
|
78
|
+
// WHY: Deployment nonce must be unique per deployment to get deterministic addresses via CREATE2.
|
|
79
|
+
// crypto.randomUUID gives us sufficient entropy.
|
|
80
|
+
const randomBytes = new Uint8Array(32);
|
|
81
|
+
crypto.getRandomValues(randomBytes);
|
|
82
|
+
return keccak256(randomBytes);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=build-deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-deploy.js","sourceRoot":"","sources":["../../src/deploy/build-deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type Address, type Log } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Extract the deployed DTF (Folio) address from a deploy transaction's logs.
|
|
4
|
+
* Tries GovernedFolioDeployed first (governed deploy), then FolioDeployed (ungoverned).
|
|
5
|
+
* Throws if neither event is found.
|
|
6
|
+
*/
|
|
7
|
+
export declare function extractDeployedAddress(logs: Log[]): Address;
|
|
8
|
+
//# sourceMappingURL=extract-deployed-address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-deployed-address.d.ts","sourceRoot":"","sources":["../../src/deploy/extract-deployed-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAG7D;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CA6B3D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { parseEventLogs } from 'viem';
|
|
2
|
+
import deployerAbi from '../abi/deployer';
|
|
3
|
+
/**
|
|
4
|
+
* Extract the deployed DTF (Folio) address from a deploy transaction's logs.
|
|
5
|
+
* Tries GovernedFolioDeployed first (governed deploy), then FolioDeployed (ungoverned).
|
|
6
|
+
* Throws if neither event is found.
|
|
7
|
+
*/
|
|
8
|
+
export function extractDeployedAddress(logs) {
|
|
9
|
+
// WHY: parseEventLogs returns an empty array (not throws) when no matching events exist.
|
|
10
|
+
// Check governed first — more common for permissionless deploys.
|
|
11
|
+
const governed = parseEventLogs({
|
|
12
|
+
abi: deployerAbi,
|
|
13
|
+
logs,
|
|
14
|
+
eventName: 'GovernedFolioDeployed',
|
|
15
|
+
});
|
|
16
|
+
if (governed.length > 0) {
|
|
17
|
+
const folio = governed[0].args.folio;
|
|
18
|
+
if (!folio)
|
|
19
|
+
throw new Error('GovernedFolioDeployed event missing folio arg');
|
|
20
|
+
return folio;
|
|
21
|
+
}
|
|
22
|
+
const ungoverned = parseEventLogs({
|
|
23
|
+
abi: deployerAbi,
|
|
24
|
+
logs,
|
|
25
|
+
eventName: 'FolioDeployed',
|
|
26
|
+
});
|
|
27
|
+
if (ungoverned.length > 0) {
|
|
28
|
+
const folio = ungoverned[0].args.folio;
|
|
29
|
+
if (!folio)
|
|
30
|
+
throw new Error('FolioDeployed event missing folio arg');
|
|
31
|
+
return folio;
|
|
32
|
+
}
|
|
33
|
+
throw new Error('Could not find deployed DTF address in transaction logs. ' +
|
|
34
|
+
'Expected FolioDeployed or GovernedFolioDeployed event.');
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=extract-deployed-address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-deployed-address.js","sourceRoot":"","sources":["../../src/deploy/extract-deployed-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0B,MAAM,MAAM,CAAA;AAC7D,OAAO,WAAW,MAAM,iBAAiB,CAAA;AAEzC;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAW;IAChD,yFAAyF;IACzF,iEAAiE;IACjE,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,GAAG,EAAE,WAAW;QAChB,IAAI;QACJ,SAAS,EAAE,uBAAuB;KACnC,CAAC,CAAA;IACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,KAAK,CAAA;QACrC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAC5E,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC;QAChC,GAAG,EAAE,WAAW;QAChB,IAAI;QACJ,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAA;IACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,KAAK,CAAA;QACvC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QACpE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,IAAI,KAAK,CACb,2DAA2D;QAC3D,wDAAwD,CACzD,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
import type { SupportedChainId, PriceControl } from '../types';
|
|
3
|
+
export declare const VOTE_LOCK_ADDRESS: Record<SupportedChainId, Address>;
|
|
4
|
+
export declare const DEFAULT_TVL_FEE: bigint;
|
|
5
|
+
export declare const DEFAULT_MINT_FEE: bigint;
|
|
6
|
+
export declare const DEFAULT_AUCTION_LENGTH = 1800n;
|
|
7
|
+
export declare const DEFAULT_FLAGS: {
|
|
8
|
+
readonly trustedFillerEnabled: true;
|
|
9
|
+
readonly rebalanceControl: {
|
|
10
|
+
readonly weightControl: true;
|
|
11
|
+
readonly priceControl: PriceControl;
|
|
12
|
+
};
|
|
13
|
+
readonly bidsEnabled: true;
|
|
14
|
+
};
|
|
15
|
+
export declare const DEFAULT_TRADING_GOV_PARAMS: {
|
|
16
|
+
readonly votingDelay: "0";
|
|
17
|
+
readonly votingPeriod: "86400";
|
|
18
|
+
readonly proposalThreshold: string;
|
|
19
|
+
readonly quorumThreshold: string;
|
|
20
|
+
readonly timelockDelay: "86400";
|
|
21
|
+
};
|
|
22
|
+
export declare const DEFAULT_OWNER_GOV_PARAMS: {
|
|
23
|
+
readonly votingDelay: "0";
|
|
24
|
+
readonly votingPeriod: "86400";
|
|
25
|
+
readonly proposalThreshold: string;
|
|
26
|
+
readonly quorumThreshold: string;
|
|
27
|
+
readonly timelockDelay: "86400";
|
|
28
|
+
};
|
|
29
|
+
export declare const DEFAULT_GUARDIANS: Record<SupportedChainId, Address[]>;
|
|
30
|
+
export declare const DEFAULT_AUCTION_LAUNCHERS: Record<SupportedChainId, Address[]>;
|
|
31
|
+
export declare function buildDefaultFeeRecipients(chainId: SupportedChainId, stTokenAddress: Address): {
|
|
32
|
+
recipient: Address;
|
|
33
|
+
portion: string;
|
|
34
|
+
}[];
|
|
35
|
+
//# sourceMappingURL=permissionless-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissionless-defaults.d.ts","sourceRoot":"","sources":["../../src/deploy/permissionless-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAK9D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAM/D,CAAA;AAID,eAAO,MAAM,eAAe,QAAuB,CAAA;AACnD,eAAO,MAAM,gBAAgB,QAAuB,CAAA;AAIpD,eAAO,MAAM,sBAAsB,QAAQ,CAAA;AAI3C,eAAO,MAAM,aAAa;;;;+BAEoC,YAAY;;;CAEhE,CAAA;AAOV,eAAO,MAAM,0BAA0B;;;;;;CAM7B,CAAA;AAEV,eAAO,MAAM,wBAAwB;;;;;;CAM3B,CAAA;AAIV,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAIjE,CAAA;AAID,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAUzE,CAAA;AAeD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,EACzB,cAAc,EAAE,OAAO,GACtB;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAQ3C"}
|