@settlemint/solidity-diamond-bond
Version:
Smart contract set to build an enterprise bond usecase in SettleMint
59 lines (53 loc) • 1.57 kB
text/typescript
import { buildModule } from '@nomicfoundation/hardhat-ignition/modules';
const DiamondModule = buildModule('DiamondModule', (m) => {
const facetNames = [
'DiamondLoupeFacet',
'ERC1155Facet',
'BondFacet',
'OwnershipFacet',
'BondManagerFacet',
'BondReaderFacet',
'CouponFacet',
];
const facets = facetNames.map((facetName) => m.contract(facetName));
const selectors = [
['0x7a0ed627', '0xcdffacc6', '0xadfca15e', '0x52ef6b2c'],
['0x156e29f6', '0xf5298aca', '0x01a69546', '0x00fdd58e', '0xf242432a'],
[
'0x60332e89',
'0x796b89ec',
'0x9226537e',
'0x68aea41b',
'0x2dcb118e',
'0xee5b280a',
'0x906b131a',
'0xde99347a',
'0x43a19a65',
'0x25830db3',
'0x8dea1f47',
'0xe3adc7ee',
'0xf844a31c',
],
['0x8da5cb5b', '0xf2fde38b', '0x8c5f36bb'],
['0x7a828b28', '0x40e58ee5'],
['0xa8314de7', '0xc89fa570'],
['0xf9765634', '0x22e29d59'],
];
const diamondInit = m.contract('DiamondInit');
const genericToken = m.contract('GenericToken', ['GenericToken', 'GEN']);
const diamond = m.contract('Diamond', [
[
[], 0, selectors[0]],
[], 0, selectors[1]],
[], 0, selectors[2]],
[], 0, selectors[3]],
[], 0, selectors[4]],
[], 0, selectors[5]],
[], 0, selectors[6]],
],
[],
]);
return { diamondInit, genericToken, facets };
//return { genericToken };
});
export default DiamondModule;