@straton/blockchain 1.1.2 → 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/index.d.mts +60 -1
- package/dist/index.d.ts +60 -1
- package/dist/index.js +84 -17
- package/dist/index.mjs +79 -17
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -22,6 +22,65 @@ declare function getMockUSDCAddress(chainId?: number): Address;
|
|
|
22
22
|
declare function getMockUSDTAddress(chainId?: number): Address;
|
|
23
23
|
declare function getSafeMultisigAddress(chainId?: number): Address;
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* KAN-17 / OpenAssets vault deliverables — separate product line from the Midas
|
|
27
|
+
* multi-vault (sTBILL/sGLOBAL/sBASIS) which lives in `addresses.ts`. Kept as a
|
|
28
|
+
* parallel structure on purpose: KAN-17 is a non-custodial testnet demo for the
|
|
29
|
+
* OpenAssets vetting, with its own deploy script and its own role topology
|
|
30
|
+
* (dedicated-deployer mode — deployer EOA holds zero operational role).
|
|
31
|
+
*
|
|
32
|
+
* If/when the package converges on a unified multi-vault schema, this file
|
|
33
|
+
* folds into `addresses.ts`. For now they coexist to avoid churning Bruno's
|
|
34
|
+
* in-flight single-vault repoint (PR #8).
|
|
35
|
+
*/
|
|
36
|
+
declare const OPENASSETS_VAULT_SLUGS: readonly ["susdt", "sweth"];
|
|
37
|
+
type OpenAssetsVaultSlug = (typeof OPENASSETS_VAULT_SLUGS)[number];
|
|
38
|
+
interface OpenAssetsVaultDeployment {
|
|
39
|
+
/** Per-product Vault proxy (TransparentUpgradeableProxy). */
|
|
40
|
+
vault: Address;
|
|
41
|
+
/** ERC-3643 receipt token proxy. */
|
|
42
|
+
receiptToken: Address;
|
|
43
|
+
/** ModularCompliance proxy bound 1:1 to the receipt token. */
|
|
44
|
+
modularCompliance: Address;
|
|
45
|
+
/** ERC-20 the vault accepts on deposit (USDT mock or canonical WETH). */
|
|
46
|
+
depositAsset: Address;
|
|
47
|
+
}
|
|
48
|
+
interface OpenAssetsChainDeployment {
|
|
49
|
+
chainId: number;
|
|
50
|
+
/** EOA that ran the deploy. Holds **zero** operational role post-deploy
|
|
51
|
+
* (dedicated-deployer mode). The only remaining authority is `approveBind`
|
|
52
|
+
* on the 4 compliance modules (no `transferOwnership` on AbstractModule
|
|
53
|
+
* yet — mainnet hardening item). */
|
|
54
|
+
deployer: Address;
|
|
55
|
+
/** Cold Safe — DEFAULT_ADMIN on receipts/vaults/compliance + AGENT on receipts. */
|
|
56
|
+
safe: Address;
|
|
57
|
+
/** Backend hot key — MINTER + WHITELIST_AGENT + PAUSER on receipts; PAUSER on vault.
|
|
58
|
+
* On Eth Sepolia this is the same EOA as the existing WHITELISTER_PRIVATE_KEY
|
|
59
|
+
* in Vercel `straton-api`/Production. */
|
|
60
|
+
backendHotKey: Address;
|
|
61
|
+
infra: {
|
|
62
|
+
rwaTokenImpl: Address;
|
|
63
|
+
tokenFactory: Address;
|
|
64
|
+
vaultImpl: Address;
|
|
65
|
+
vaultFactory: Address;
|
|
66
|
+
claimTopicsRegistry: Address;
|
|
67
|
+
trustedIssuersRegistry: Address;
|
|
68
|
+
identityRegistry: Address;
|
|
69
|
+
};
|
|
70
|
+
/** Shared singleton modules; per-token config is on the ModularCompliance. */
|
|
71
|
+
complianceModules: {
|
|
72
|
+
globalRateLimit: Address;
|
|
73
|
+
perInvestorRateLimit: Address;
|
|
74
|
+
maxBalance: Address;
|
|
75
|
+
countryRestrict: Address;
|
|
76
|
+
};
|
|
77
|
+
vaults: Record<OpenAssetsVaultSlug, OpenAssetsVaultDeployment>;
|
|
78
|
+
}
|
|
79
|
+
declare const OPENASSETS_DEPLOYMENTS: Partial<Record<number, OpenAssetsChainDeployment>>;
|
|
80
|
+
declare function getOpenAssetsDeployment(chainId: number): OpenAssetsChainDeployment | undefined;
|
|
81
|
+
declare function getOpenAssetsVault(chainId: number, slug: OpenAssetsVaultSlug): OpenAssetsVaultDeployment | undefined;
|
|
82
|
+
declare function hasOpenAssetsDeployment(chainId: number): boolean;
|
|
83
|
+
|
|
25
84
|
declare const STABLECOIN_DECIMALS = 6;
|
|
26
85
|
declare const RECEIPT_TOKEN_DECIMALS = 18;
|
|
27
86
|
declare const DECIMAL_CONVERSION_FACTOR: bigint;
|
|
@@ -2485,4 +2544,4 @@ declare const feeCollectorAbi: ({
|
|
|
2485
2544
|
anonymous?: undefined;
|
|
2486
2545
|
})[];
|
|
2487
2546
|
|
|
2488
|
-
export { CONTRACT_ADDRESSES, type ChainContracts, DECIMAL_CONVERSION_FACTOR, ERROR_MESSAGE_MAX_LENGTH, RECEIPT_TOKEN_DECIMALS, STABLECOINS, STABLECOINS_BY_CHAIN, STABLECOIN_DECIMALS, type StablecoinConfig, erc20Abi, feeCollectorAbi, getActiveChainId, getContractAddresses, getMockUSDCAddress, getMockUSDTAddress, getSafeMultisigAddress, getStablecoinsForChain, getStfTokenAddress, getTbillTokenAddress, getTokenFactoryAddress, getVaultAddress, hasContractAddresses, rwaTokenAbi, stfTokenAbi, stfVestingAbi, tokenFactoryAbi, vaultAbi, xstfAbi };
|
|
2547
|
+
export { CONTRACT_ADDRESSES, type ChainContracts, DECIMAL_CONVERSION_FACTOR, ERROR_MESSAGE_MAX_LENGTH, OPENASSETS_DEPLOYMENTS, OPENASSETS_VAULT_SLUGS, type OpenAssetsChainDeployment, type OpenAssetsVaultDeployment, type OpenAssetsVaultSlug, RECEIPT_TOKEN_DECIMALS, STABLECOINS, STABLECOINS_BY_CHAIN, STABLECOIN_DECIMALS, type StablecoinConfig, erc20Abi, feeCollectorAbi, getActiveChainId, getContractAddresses, getMockUSDCAddress, getMockUSDTAddress, getOpenAssetsDeployment, getOpenAssetsVault, getSafeMultisigAddress, getStablecoinsForChain, getStfTokenAddress, getTbillTokenAddress, getTokenFactoryAddress, getVaultAddress, hasContractAddresses, hasOpenAssetsDeployment, rwaTokenAbi, stfTokenAbi, stfVestingAbi, tokenFactoryAbi, vaultAbi, xstfAbi };
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,65 @@ declare function getMockUSDCAddress(chainId?: number): Address;
|
|
|
22
22
|
declare function getMockUSDTAddress(chainId?: number): Address;
|
|
23
23
|
declare function getSafeMultisigAddress(chainId?: number): Address;
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* KAN-17 / OpenAssets vault deliverables — separate product line from the Midas
|
|
27
|
+
* multi-vault (sTBILL/sGLOBAL/sBASIS) which lives in `addresses.ts`. Kept as a
|
|
28
|
+
* parallel structure on purpose: KAN-17 is a non-custodial testnet demo for the
|
|
29
|
+
* OpenAssets vetting, with its own deploy script and its own role topology
|
|
30
|
+
* (dedicated-deployer mode — deployer EOA holds zero operational role).
|
|
31
|
+
*
|
|
32
|
+
* If/when the package converges on a unified multi-vault schema, this file
|
|
33
|
+
* folds into `addresses.ts`. For now they coexist to avoid churning Bruno's
|
|
34
|
+
* in-flight single-vault repoint (PR #8).
|
|
35
|
+
*/
|
|
36
|
+
declare const OPENASSETS_VAULT_SLUGS: readonly ["susdt", "sweth"];
|
|
37
|
+
type OpenAssetsVaultSlug = (typeof OPENASSETS_VAULT_SLUGS)[number];
|
|
38
|
+
interface OpenAssetsVaultDeployment {
|
|
39
|
+
/** Per-product Vault proxy (TransparentUpgradeableProxy). */
|
|
40
|
+
vault: Address;
|
|
41
|
+
/** ERC-3643 receipt token proxy. */
|
|
42
|
+
receiptToken: Address;
|
|
43
|
+
/** ModularCompliance proxy bound 1:1 to the receipt token. */
|
|
44
|
+
modularCompliance: Address;
|
|
45
|
+
/** ERC-20 the vault accepts on deposit (USDT mock or canonical WETH). */
|
|
46
|
+
depositAsset: Address;
|
|
47
|
+
}
|
|
48
|
+
interface OpenAssetsChainDeployment {
|
|
49
|
+
chainId: number;
|
|
50
|
+
/** EOA that ran the deploy. Holds **zero** operational role post-deploy
|
|
51
|
+
* (dedicated-deployer mode). The only remaining authority is `approveBind`
|
|
52
|
+
* on the 4 compliance modules (no `transferOwnership` on AbstractModule
|
|
53
|
+
* yet — mainnet hardening item). */
|
|
54
|
+
deployer: Address;
|
|
55
|
+
/** Cold Safe — DEFAULT_ADMIN on receipts/vaults/compliance + AGENT on receipts. */
|
|
56
|
+
safe: Address;
|
|
57
|
+
/** Backend hot key — MINTER + WHITELIST_AGENT + PAUSER on receipts; PAUSER on vault.
|
|
58
|
+
* On Eth Sepolia this is the same EOA as the existing WHITELISTER_PRIVATE_KEY
|
|
59
|
+
* in Vercel `straton-api`/Production. */
|
|
60
|
+
backendHotKey: Address;
|
|
61
|
+
infra: {
|
|
62
|
+
rwaTokenImpl: Address;
|
|
63
|
+
tokenFactory: Address;
|
|
64
|
+
vaultImpl: Address;
|
|
65
|
+
vaultFactory: Address;
|
|
66
|
+
claimTopicsRegistry: Address;
|
|
67
|
+
trustedIssuersRegistry: Address;
|
|
68
|
+
identityRegistry: Address;
|
|
69
|
+
};
|
|
70
|
+
/** Shared singleton modules; per-token config is on the ModularCompliance. */
|
|
71
|
+
complianceModules: {
|
|
72
|
+
globalRateLimit: Address;
|
|
73
|
+
perInvestorRateLimit: Address;
|
|
74
|
+
maxBalance: Address;
|
|
75
|
+
countryRestrict: Address;
|
|
76
|
+
};
|
|
77
|
+
vaults: Record<OpenAssetsVaultSlug, OpenAssetsVaultDeployment>;
|
|
78
|
+
}
|
|
79
|
+
declare const OPENASSETS_DEPLOYMENTS: Partial<Record<number, OpenAssetsChainDeployment>>;
|
|
80
|
+
declare function getOpenAssetsDeployment(chainId: number): OpenAssetsChainDeployment | undefined;
|
|
81
|
+
declare function getOpenAssetsVault(chainId: number, slug: OpenAssetsVaultSlug): OpenAssetsVaultDeployment | undefined;
|
|
82
|
+
declare function hasOpenAssetsDeployment(chainId: number): boolean;
|
|
83
|
+
|
|
25
84
|
declare const STABLECOIN_DECIMALS = 6;
|
|
26
85
|
declare const RECEIPT_TOKEN_DECIMALS = 18;
|
|
27
86
|
declare const DECIMAL_CONVERSION_FACTOR: bigint;
|
|
@@ -2485,4 +2544,4 @@ declare const feeCollectorAbi: ({
|
|
|
2485
2544
|
anonymous?: undefined;
|
|
2486
2545
|
})[];
|
|
2487
2546
|
|
|
2488
|
-
export { CONTRACT_ADDRESSES, type ChainContracts, DECIMAL_CONVERSION_FACTOR, ERROR_MESSAGE_MAX_LENGTH, RECEIPT_TOKEN_DECIMALS, STABLECOINS, STABLECOINS_BY_CHAIN, STABLECOIN_DECIMALS, type StablecoinConfig, erc20Abi, feeCollectorAbi, getActiveChainId, getContractAddresses, getMockUSDCAddress, getMockUSDTAddress, getSafeMultisigAddress, getStablecoinsForChain, getStfTokenAddress, getTbillTokenAddress, getTokenFactoryAddress, getVaultAddress, hasContractAddresses, rwaTokenAbi, stfTokenAbi, stfVestingAbi, tokenFactoryAbi, vaultAbi, xstfAbi };
|
|
2547
|
+
export { CONTRACT_ADDRESSES, type ChainContracts, DECIMAL_CONVERSION_FACTOR, ERROR_MESSAGE_MAX_LENGTH, OPENASSETS_DEPLOYMENTS, OPENASSETS_VAULT_SLUGS, type OpenAssetsChainDeployment, type OpenAssetsVaultDeployment, type OpenAssetsVaultSlug, RECEIPT_TOKEN_DECIMALS, STABLECOINS, STABLECOINS_BY_CHAIN, STABLECOIN_DECIMALS, type StablecoinConfig, erc20Abi, feeCollectorAbi, getActiveChainId, getContractAddresses, getMockUSDCAddress, getMockUSDTAddress, getOpenAssetsDeployment, getOpenAssetsVault, getSafeMultisigAddress, getStablecoinsForChain, getStfTokenAddress, getTbillTokenAddress, getTokenFactoryAddress, getVaultAddress, hasContractAddresses, hasOpenAssetsDeployment, rwaTokenAbi, stfTokenAbi, stfVestingAbi, tokenFactoryAbi, vaultAbi, xstfAbi };
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,8 @@ __export(index_exports, {
|
|
|
23
23
|
CONTRACT_ADDRESSES: () => CONTRACT_ADDRESSES,
|
|
24
24
|
DECIMAL_CONVERSION_FACTOR: () => DECIMAL_CONVERSION_FACTOR,
|
|
25
25
|
ERROR_MESSAGE_MAX_LENGTH: () => ERROR_MESSAGE_MAX_LENGTH,
|
|
26
|
+
OPENASSETS_DEPLOYMENTS: () => OPENASSETS_DEPLOYMENTS,
|
|
27
|
+
OPENASSETS_VAULT_SLUGS: () => OPENASSETS_VAULT_SLUGS,
|
|
26
28
|
RECEIPT_TOKEN_DECIMALS: () => RECEIPT_TOKEN_DECIMALS,
|
|
27
29
|
STABLECOINS: () => STABLECOINS,
|
|
28
30
|
STABLECOINS_BY_CHAIN: () => STABLECOINS_BY_CHAIN,
|
|
@@ -33,6 +35,8 @@ __export(index_exports, {
|
|
|
33
35
|
getContractAddresses: () => getContractAddresses,
|
|
34
36
|
getMockUSDCAddress: () => getMockUSDCAddress,
|
|
35
37
|
getMockUSDTAddress: () => getMockUSDTAddress,
|
|
38
|
+
getOpenAssetsDeployment: () => getOpenAssetsDeployment,
|
|
39
|
+
getOpenAssetsVault: () => getOpenAssetsVault,
|
|
36
40
|
getSafeMultisigAddress: () => getSafeMultisigAddress,
|
|
37
41
|
getStablecoinsForChain: () => getStablecoinsForChain,
|
|
38
42
|
getStfTokenAddress: () => getStfTokenAddress,
|
|
@@ -40,6 +44,7 @@ __export(index_exports, {
|
|
|
40
44
|
getTokenFactoryAddress: () => getTokenFactoryAddress,
|
|
41
45
|
getVaultAddress: () => getVaultAddress,
|
|
42
46
|
hasContractAddresses: () => hasContractAddresses,
|
|
47
|
+
hasOpenAssetsDeployment: () => hasOpenAssetsDeployment,
|
|
43
48
|
rwaTokenAbi: () => rwaTokenAbi,
|
|
44
49
|
stfTokenAbi: () => stfTokenAbi,
|
|
45
50
|
stfVestingAbi: () => stfVestingAbi,
|
|
@@ -64,14 +69,16 @@ var CONTRACT_ADDRESSES = {
|
|
|
64
69
|
safeMultisig: ZERO_ADDRESS
|
|
65
70
|
},
|
|
66
71
|
[import_utils.CHAIN_IDS.ETHEREUM_SEPOLIA]: {
|
|
72
|
+
// B1 C2/R3 redeploy (2026-05-18). The pre-B1 stack (0xb229.../0x7f7c...) is
|
|
73
|
+
// dead on this chain. stfToken was NOT redeployed by B1 — kept.
|
|
67
74
|
stfToken: "0xe1c08ADa94E557CD495657e656c2f3EEB93A4BE3",
|
|
68
|
-
tbillToken: "
|
|
69
|
-
tokenFactory: "
|
|
70
|
-
vault: "
|
|
71
|
-
mockUSDC: "
|
|
72
|
-
mockUSDT: "
|
|
75
|
+
tbillToken: "0x82dd8f86C86Db739E96Bd873B368a36E4ad298CA",
|
|
76
|
+
tokenFactory: "0x58b345E1018e55dc564aee44F8F58293DF59B167",
|
|
77
|
+
vault: "0x51C25F00dD5D84cf7604fAB43e2bBAEafFb887D6",
|
|
78
|
+
mockUSDC: "0xDA9564cF0c56A67071aDe6fc76499417CADBD1DF",
|
|
79
|
+
mockUSDT: "0xDBf21aB5A0767C737750f560bfAa8F31ed51FDe5",
|
|
73
80
|
sanctionsOracle: ZERO_ADDRESS,
|
|
74
|
-
safeMultisig:
|
|
81
|
+
safeMultisig: "0x2f2171D6b92F8c7230dcd0084f33A083589bAFfe"
|
|
75
82
|
},
|
|
76
83
|
[import_utils.CHAIN_IDS.POLYGON_AMOY]: {
|
|
77
84
|
stfToken: ZERO_ADDRESS,
|
|
@@ -191,28 +198,83 @@ function getSafeMultisigAddress(chainId) {
|
|
|
191
198
|
return getContractAddresses(chainId).safeMultisig;
|
|
192
199
|
}
|
|
193
200
|
|
|
194
|
-
// src/
|
|
201
|
+
// src/openassets-vaults.ts
|
|
195
202
|
var import_utils2 = require("@straton/utils");
|
|
203
|
+
var OPENASSETS_VAULT_SLUGS = ["susdt", "sweth"];
|
|
204
|
+
var OPENASSETS_DEPLOYMENTS = {
|
|
205
|
+
// Eth Sepolia — first KAN-17 deploy, 2026-05-20. Dedicated-deployer mode.
|
|
206
|
+
// wETH vault accepts canonical Sepolia WETH9 (0xfFf9976782...6B14) so demo
|
|
207
|
+
// users can wrap real test-ETH via any standard dApp and deposit.
|
|
208
|
+
[import_utils2.CHAIN_IDS.ETHEREUM_SEPOLIA]: {
|
|
209
|
+
chainId: 11155111,
|
|
210
|
+
deployer: "0x00818593B91f78D35766993637f10AA0B0660F8F",
|
|
211
|
+
safe: "0x2f2171D6b92F8c7230dcd0084f33A083589bAFfe",
|
|
212
|
+
backendHotKey: "0xc8A0841e703973418B7B5ED95c786c9e20a6eF86",
|
|
213
|
+
infra: {
|
|
214
|
+
rwaTokenImpl: "0x74a97547C5DA09f276Ba14e7F7Fe2e58C6D8E73F",
|
|
215
|
+
tokenFactory: "0x6AF3B0bd4294A54F8E71308080EC118a216900df",
|
|
216
|
+
vaultImpl: "0xdfB44eA93e513c694e638B364a102aF2A63198F0",
|
|
217
|
+
vaultFactory: "0x928BDDE5B40Be8fCD3336CF14781B861560532AC",
|
|
218
|
+
claimTopicsRegistry: "0x174589d1C853B4550572Cc61520C7E69D8CAf6b2",
|
|
219
|
+
trustedIssuersRegistry: "0x18B63497615Fcf24862cD2C4dD3B7d4d487c9B3E",
|
|
220
|
+
identityRegistry: "0xA880D5c53e1dbe632564b9dc98a04E99F5da0476"
|
|
221
|
+
},
|
|
222
|
+
complianceModules: {
|
|
223
|
+
globalRateLimit: "0x83660C2a85b2E8a88Cf75dF8C81c0d16c6B636A9",
|
|
224
|
+
perInvestorRateLimit: "0x3baCf1B71561467E210BAa51D6650DB5DA99B6b3",
|
|
225
|
+
maxBalance: "0xDbd657fb091f9C87FFA2B1cc35846C876256B51E",
|
|
226
|
+
countryRestrict: "0x7E81D808eC61c0a44e7279f716c21A426566A0F9"
|
|
227
|
+
},
|
|
228
|
+
vaults: {
|
|
229
|
+
susdt: {
|
|
230
|
+
vault: "0x09922D7b6dAcF6Bc2055446977b3A0260d6DD168",
|
|
231
|
+
receiptToken: "0xed138Fea5972f2df30701d1600f5615cdB606724",
|
|
232
|
+
modularCompliance: "0x05222388001F9eb27Ad5d906F92F4646fe3AfF58",
|
|
233
|
+
depositAsset: "0x61c57359a81b9c72F210fCAAE706Aaae799303Df"
|
|
234
|
+
// mock USDT (Tether absent on Sepolia)
|
|
235
|
+
},
|
|
236
|
+
sweth: {
|
|
237
|
+
vault: "0x35be45bb19C973b2c364490E5603B7926bfdd5B3",
|
|
238
|
+
receiptToken: "0x9b400efB3987a271a9609f11E8E52179934De2b5",
|
|
239
|
+
modularCompliance: "0x12a06A5aAB3E26bC4B326D72A309C641Ec6EE240",
|
|
240
|
+
depositAsset: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"
|
|
241
|
+
// canonical Sepolia WETH9
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
function getOpenAssetsDeployment(chainId) {
|
|
247
|
+
return OPENASSETS_DEPLOYMENTS[chainId];
|
|
248
|
+
}
|
|
249
|
+
function getOpenAssetsVault(chainId, slug) {
|
|
250
|
+
return OPENASSETS_DEPLOYMENTS[chainId]?.vaults[slug];
|
|
251
|
+
}
|
|
252
|
+
function hasOpenAssetsDeployment(chainId) {
|
|
253
|
+
return chainId in OPENASSETS_DEPLOYMENTS;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// src/stablecoins.ts
|
|
257
|
+
var import_utils3 = require("@straton/utils");
|
|
196
258
|
var STABLECOIN_DECIMALS = 6;
|
|
197
259
|
var RECEIPT_TOKEN_DECIMALS = 18;
|
|
198
260
|
var DECIMAL_CONVERSION_FACTOR = BigInt(1e12);
|
|
199
261
|
var ERROR_MESSAGE_MAX_LENGTH = 100;
|
|
200
262
|
var STABLECOINS_BY_CHAIN = {
|
|
201
|
-
[
|
|
263
|
+
[import_utils3.CHAIN_IDS.BASE_SEPOLIA]: [
|
|
202
264
|
{
|
|
203
265
|
symbol: "USDC",
|
|
204
266
|
label: "Mock USDC",
|
|
205
|
-
address: getMockUSDCAddress(
|
|
267
|
+
address: getMockUSDCAddress(import_utils3.CHAIN_IDS.BASE_SEPOLIA),
|
|
206
268
|
decimals: 6
|
|
207
269
|
},
|
|
208
270
|
{
|
|
209
271
|
symbol: "USDT",
|
|
210
272
|
label: "Mock USDT",
|
|
211
|
-
address: getMockUSDTAddress(
|
|
273
|
+
address: getMockUSDTAddress(import_utils3.CHAIN_IDS.BASE_SEPOLIA),
|
|
212
274
|
decimals: 6
|
|
213
275
|
}
|
|
214
276
|
],
|
|
215
|
-
[
|
|
277
|
+
[import_utils3.CHAIN_IDS.ETHEREUM]: [
|
|
216
278
|
{
|
|
217
279
|
symbol: "USDC",
|
|
218
280
|
label: "USD Coin",
|
|
@@ -226,21 +288,21 @@ var STABLECOINS_BY_CHAIN = {
|
|
|
226
288
|
decimals: 6
|
|
227
289
|
}
|
|
228
290
|
],
|
|
229
|
-
[
|
|
291
|
+
[import_utils3.CHAIN_IDS.ETHEREUM_SEPOLIA]: [
|
|
230
292
|
{
|
|
231
293
|
symbol: "USDC",
|
|
232
294
|
label: "Mock USDC",
|
|
233
|
-
address: getMockUSDCAddress(
|
|
295
|
+
address: getMockUSDCAddress(import_utils3.CHAIN_IDS.ETHEREUM_SEPOLIA),
|
|
234
296
|
decimals: 6
|
|
235
297
|
},
|
|
236
298
|
{
|
|
237
299
|
symbol: "USDT",
|
|
238
300
|
label: "Mock USDT",
|
|
239
|
-
address: getMockUSDTAddress(
|
|
301
|
+
address: getMockUSDTAddress(import_utils3.CHAIN_IDS.ETHEREUM_SEPOLIA),
|
|
240
302
|
decimals: 6
|
|
241
303
|
}
|
|
242
304
|
],
|
|
243
|
-
[
|
|
305
|
+
[import_utils3.CHAIN_IDS.BASE]: [
|
|
244
306
|
{
|
|
245
307
|
symbol: "USDC",
|
|
246
308
|
label: "USD Coin",
|
|
@@ -248,7 +310,7 @@ var STABLECOINS_BY_CHAIN = {
|
|
|
248
310
|
decimals: 6
|
|
249
311
|
}
|
|
250
312
|
],
|
|
251
|
-
[
|
|
313
|
+
[import_utils3.CHAIN_IDS.ARBITRUM]: [
|
|
252
314
|
{
|
|
253
315
|
symbol: "USDC",
|
|
254
316
|
label: "USD Coin",
|
|
@@ -256,7 +318,7 @@ var STABLECOINS_BY_CHAIN = {
|
|
|
256
318
|
decimals: 6
|
|
257
319
|
}
|
|
258
320
|
],
|
|
259
|
-
[
|
|
321
|
+
[import_utils3.CHAIN_IDS.AVALANCHE]: [
|
|
260
322
|
{
|
|
261
323
|
symbol: "USDC",
|
|
262
324
|
label: "USD Coin",
|
|
@@ -6430,6 +6492,8 @@ var feeCollectorAbi = [
|
|
|
6430
6492
|
CONTRACT_ADDRESSES,
|
|
6431
6493
|
DECIMAL_CONVERSION_FACTOR,
|
|
6432
6494
|
ERROR_MESSAGE_MAX_LENGTH,
|
|
6495
|
+
OPENASSETS_DEPLOYMENTS,
|
|
6496
|
+
OPENASSETS_VAULT_SLUGS,
|
|
6433
6497
|
RECEIPT_TOKEN_DECIMALS,
|
|
6434
6498
|
STABLECOINS,
|
|
6435
6499
|
STABLECOINS_BY_CHAIN,
|
|
@@ -6440,6 +6504,8 @@ var feeCollectorAbi = [
|
|
|
6440
6504
|
getContractAddresses,
|
|
6441
6505
|
getMockUSDCAddress,
|
|
6442
6506
|
getMockUSDTAddress,
|
|
6507
|
+
getOpenAssetsDeployment,
|
|
6508
|
+
getOpenAssetsVault,
|
|
6443
6509
|
getSafeMultisigAddress,
|
|
6444
6510
|
getStablecoinsForChain,
|
|
6445
6511
|
getStfTokenAddress,
|
|
@@ -6447,6 +6513,7 @@ var feeCollectorAbi = [
|
|
|
6447
6513
|
getTokenFactoryAddress,
|
|
6448
6514
|
getVaultAddress,
|
|
6449
6515
|
hasContractAddresses,
|
|
6516
|
+
hasOpenAssetsDeployment,
|
|
6450
6517
|
rwaTokenAbi,
|
|
6451
6518
|
stfTokenAbi,
|
|
6452
6519
|
stfVestingAbi,
|
package/dist/index.mjs
CHANGED
|
@@ -13,14 +13,16 @@ var CONTRACT_ADDRESSES = {
|
|
|
13
13
|
safeMultisig: ZERO_ADDRESS
|
|
14
14
|
},
|
|
15
15
|
[CHAIN_IDS.ETHEREUM_SEPOLIA]: {
|
|
16
|
+
// B1 C2/R3 redeploy (2026-05-18). The pre-B1 stack (0xb229.../0x7f7c...) is
|
|
17
|
+
// dead on this chain. stfToken was NOT redeployed by B1 — kept.
|
|
16
18
|
stfToken: "0xe1c08ADa94E557CD495657e656c2f3EEB93A4BE3",
|
|
17
|
-
tbillToken: "
|
|
18
|
-
tokenFactory: "
|
|
19
|
-
vault: "
|
|
20
|
-
mockUSDC: "
|
|
21
|
-
mockUSDT: "
|
|
19
|
+
tbillToken: "0x82dd8f86C86Db739E96Bd873B368a36E4ad298CA",
|
|
20
|
+
tokenFactory: "0x58b345E1018e55dc564aee44F8F58293DF59B167",
|
|
21
|
+
vault: "0x51C25F00dD5D84cf7604fAB43e2bBAEafFb887D6",
|
|
22
|
+
mockUSDC: "0xDA9564cF0c56A67071aDe6fc76499417CADBD1DF",
|
|
23
|
+
mockUSDT: "0xDBf21aB5A0767C737750f560bfAa8F31ed51FDe5",
|
|
22
24
|
sanctionsOracle: ZERO_ADDRESS,
|
|
23
|
-
safeMultisig:
|
|
25
|
+
safeMultisig: "0x2f2171D6b92F8c7230dcd0084f33A083589bAFfe"
|
|
24
26
|
},
|
|
25
27
|
[CHAIN_IDS.POLYGON_AMOY]: {
|
|
26
28
|
stfToken: ZERO_ADDRESS,
|
|
@@ -140,28 +142,83 @@ function getSafeMultisigAddress(chainId) {
|
|
|
140
142
|
return getContractAddresses(chainId).safeMultisig;
|
|
141
143
|
}
|
|
142
144
|
|
|
143
|
-
// src/
|
|
145
|
+
// src/openassets-vaults.ts
|
|
144
146
|
import { CHAIN_IDS as CHAIN_IDS2 } from "@straton/utils";
|
|
147
|
+
var OPENASSETS_VAULT_SLUGS = ["susdt", "sweth"];
|
|
148
|
+
var OPENASSETS_DEPLOYMENTS = {
|
|
149
|
+
// Eth Sepolia — first KAN-17 deploy, 2026-05-20. Dedicated-deployer mode.
|
|
150
|
+
// wETH vault accepts canonical Sepolia WETH9 (0xfFf9976782...6B14) so demo
|
|
151
|
+
// users can wrap real test-ETH via any standard dApp and deposit.
|
|
152
|
+
[CHAIN_IDS2.ETHEREUM_SEPOLIA]: {
|
|
153
|
+
chainId: 11155111,
|
|
154
|
+
deployer: "0x00818593B91f78D35766993637f10AA0B0660F8F",
|
|
155
|
+
safe: "0x2f2171D6b92F8c7230dcd0084f33A083589bAFfe",
|
|
156
|
+
backendHotKey: "0xc8A0841e703973418B7B5ED95c786c9e20a6eF86",
|
|
157
|
+
infra: {
|
|
158
|
+
rwaTokenImpl: "0x74a97547C5DA09f276Ba14e7F7Fe2e58C6D8E73F",
|
|
159
|
+
tokenFactory: "0x6AF3B0bd4294A54F8E71308080EC118a216900df",
|
|
160
|
+
vaultImpl: "0xdfB44eA93e513c694e638B364a102aF2A63198F0",
|
|
161
|
+
vaultFactory: "0x928BDDE5B40Be8fCD3336CF14781B861560532AC",
|
|
162
|
+
claimTopicsRegistry: "0x174589d1C853B4550572Cc61520C7E69D8CAf6b2",
|
|
163
|
+
trustedIssuersRegistry: "0x18B63497615Fcf24862cD2C4dD3B7d4d487c9B3E",
|
|
164
|
+
identityRegistry: "0xA880D5c53e1dbe632564b9dc98a04E99F5da0476"
|
|
165
|
+
},
|
|
166
|
+
complianceModules: {
|
|
167
|
+
globalRateLimit: "0x83660C2a85b2E8a88Cf75dF8C81c0d16c6B636A9",
|
|
168
|
+
perInvestorRateLimit: "0x3baCf1B71561467E210BAa51D6650DB5DA99B6b3",
|
|
169
|
+
maxBalance: "0xDbd657fb091f9C87FFA2B1cc35846C876256B51E",
|
|
170
|
+
countryRestrict: "0x7E81D808eC61c0a44e7279f716c21A426566A0F9"
|
|
171
|
+
},
|
|
172
|
+
vaults: {
|
|
173
|
+
susdt: {
|
|
174
|
+
vault: "0x09922D7b6dAcF6Bc2055446977b3A0260d6DD168",
|
|
175
|
+
receiptToken: "0xed138Fea5972f2df30701d1600f5615cdB606724",
|
|
176
|
+
modularCompliance: "0x05222388001F9eb27Ad5d906F92F4646fe3AfF58",
|
|
177
|
+
depositAsset: "0x61c57359a81b9c72F210fCAAE706Aaae799303Df"
|
|
178
|
+
// mock USDT (Tether absent on Sepolia)
|
|
179
|
+
},
|
|
180
|
+
sweth: {
|
|
181
|
+
vault: "0x35be45bb19C973b2c364490E5603B7926bfdd5B3",
|
|
182
|
+
receiptToken: "0x9b400efB3987a271a9609f11E8E52179934De2b5",
|
|
183
|
+
modularCompliance: "0x12a06A5aAB3E26bC4B326D72A309C641Ec6EE240",
|
|
184
|
+
depositAsset: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"
|
|
185
|
+
// canonical Sepolia WETH9
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
function getOpenAssetsDeployment(chainId) {
|
|
191
|
+
return OPENASSETS_DEPLOYMENTS[chainId];
|
|
192
|
+
}
|
|
193
|
+
function getOpenAssetsVault(chainId, slug) {
|
|
194
|
+
return OPENASSETS_DEPLOYMENTS[chainId]?.vaults[slug];
|
|
195
|
+
}
|
|
196
|
+
function hasOpenAssetsDeployment(chainId) {
|
|
197
|
+
return chainId in OPENASSETS_DEPLOYMENTS;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// src/stablecoins.ts
|
|
201
|
+
import { CHAIN_IDS as CHAIN_IDS3 } from "@straton/utils";
|
|
145
202
|
var STABLECOIN_DECIMALS = 6;
|
|
146
203
|
var RECEIPT_TOKEN_DECIMALS = 18;
|
|
147
204
|
var DECIMAL_CONVERSION_FACTOR = BigInt(1e12);
|
|
148
205
|
var ERROR_MESSAGE_MAX_LENGTH = 100;
|
|
149
206
|
var STABLECOINS_BY_CHAIN = {
|
|
150
|
-
[
|
|
207
|
+
[CHAIN_IDS3.BASE_SEPOLIA]: [
|
|
151
208
|
{
|
|
152
209
|
symbol: "USDC",
|
|
153
210
|
label: "Mock USDC",
|
|
154
|
-
address: getMockUSDCAddress(
|
|
211
|
+
address: getMockUSDCAddress(CHAIN_IDS3.BASE_SEPOLIA),
|
|
155
212
|
decimals: 6
|
|
156
213
|
},
|
|
157
214
|
{
|
|
158
215
|
symbol: "USDT",
|
|
159
216
|
label: "Mock USDT",
|
|
160
|
-
address: getMockUSDTAddress(
|
|
217
|
+
address: getMockUSDTAddress(CHAIN_IDS3.BASE_SEPOLIA),
|
|
161
218
|
decimals: 6
|
|
162
219
|
}
|
|
163
220
|
],
|
|
164
|
-
[
|
|
221
|
+
[CHAIN_IDS3.ETHEREUM]: [
|
|
165
222
|
{
|
|
166
223
|
symbol: "USDC",
|
|
167
224
|
label: "USD Coin",
|
|
@@ -175,21 +232,21 @@ var STABLECOINS_BY_CHAIN = {
|
|
|
175
232
|
decimals: 6
|
|
176
233
|
}
|
|
177
234
|
],
|
|
178
|
-
[
|
|
235
|
+
[CHAIN_IDS3.ETHEREUM_SEPOLIA]: [
|
|
179
236
|
{
|
|
180
237
|
symbol: "USDC",
|
|
181
238
|
label: "Mock USDC",
|
|
182
|
-
address: getMockUSDCAddress(
|
|
239
|
+
address: getMockUSDCAddress(CHAIN_IDS3.ETHEREUM_SEPOLIA),
|
|
183
240
|
decimals: 6
|
|
184
241
|
},
|
|
185
242
|
{
|
|
186
243
|
symbol: "USDT",
|
|
187
244
|
label: "Mock USDT",
|
|
188
|
-
address: getMockUSDTAddress(
|
|
245
|
+
address: getMockUSDTAddress(CHAIN_IDS3.ETHEREUM_SEPOLIA),
|
|
189
246
|
decimals: 6
|
|
190
247
|
}
|
|
191
248
|
],
|
|
192
|
-
[
|
|
249
|
+
[CHAIN_IDS3.BASE]: [
|
|
193
250
|
{
|
|
194
251
|
symbol: "USDC",
|
|
195
252
|
label: "USD Coin",
|
|
@@ -197,7 +254,7 @@ var STABLECOINS_BY_CHAIN = {
|
|
|
197
254
|
decimals: 6
|
|
198
255
|
}
|
|
199
256
|
],
|
|
200
|
-
[
|
|
257
|
+
[CHAIN_IDS3.ARBITRUM]: [
|
|
201
258
|
{
|
|
202
259
|
symbol: "USDC",
|
|
203
260
|
label: "USD Coin",
|
|
@@ -205,7 +262,7 @@ var STABLECOINS_BY_CHAIN = {
|
|
|
205
262
|
decimals: 6
|
|
206
263
|
}
|
|
207
264
|
],
|
|
208
|
-
[
|
|
265
|
+
[CHAIN_IDS3.AVALANCHE]: [
|
|
209
266
|
{
|
|
210
267
|
symbol: "USDC",
|
|
211
268
|
label: "USD Coin",
|
|
@@ -6378,6 +6435,8 @@ export {
|
|
|
6378
6435
|
CONTRACT_ADDRESSES,
|
|
6379
6436
|
DECIMAL_CONVERSION_FACTOR,
|
|
6380
6437
|
ERROR_MESSAGE_MAX_LENGTH,
|
|
6438
|
+
OPENASSETS_DEPLOYMENTS,
|
|
6439
|
+
OPENASSETS_VAULT_SLUGS,
|
|
6381
6440
|
RECEIPT_TOKEN_DECIMALS,
|
|
6382
6441
|
STABLECOINS,
|
|
6383
6442
|
STABLECOINS_BY_CHAIN,
|
|
@@ -6388,6 +6447,8 @@ export {
|
|
|
6388
6447
|
getContractAddresses,
|
|
6389
6448
|
getMockUSDCAddress,
|
|
6390
6449
|
getMockUSDTAddress,
|
|
6450
|
+
getOpenAssetsDeployment,
|
|
6451
|
+
getOpenAssetsVault,
|
|
6391
6452
|
getSafeMultisigAddress,
|
|
6392
6453
|
getStablecoinsForChain,
|
|
6393
6454
|
getStfTokenAddress,
|
|
@@ -6395,6 +6456,7 @@ export {
|
|
|
6395
6456
|
getTokenFactoryAddress,
|
|
6396
6457
|
getVaultAddress,
|
|
6397
6458
|
hasContractAddresses,
|
|
6459
|
+
hasOpenAssetsDeployment,
|
|
6398
6460
|
rwaTokenAbi,
|
|
6399
6461
|
stfTokenAbi,
|
|
6400
6462
|
stfVestingAbi,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@straton/blockchain",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Contract ABIs, addresses, and stablecoin configs for the Straton RWAFi platform",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@straton/utils": "1.
|
|
27
|
+
"@straton/utils": "1.2.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "^22.10.0",
|