-
Notifications
You must be signed in to change notification settings - Fork 36
/
market-register-contracts.ts
41 lines (37 loc) · 1.23 KB
/
market-register-contracts.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { MsgExecuteContract } from '@terra-money/terra.js';
import { validateInput } from '../../utils/validate-input';
import { validateAddress } from '../../utils/validation/address';
import { AddressProvider } from '../../address-provider/provider';
import { MARKET_DENOMS } from '../../address-provider';
interface Option {
address: string;
market: MARKET_DENOMS;
overseer_contract: string;
interest_model: string;
distribution_model: string;
collector_contract: string;
distributor_contract: string;
}
export const fabricatebMarketRegisterContracts = ({
address,
overseer_contract,
market,
interest_model,
distribution_model,
collector_contract,
distributor_contract,
}: Option) => (addressProvider: AddressProvider): MsgExecuteContract[] => {
validateInput([validateAddress(address), validateAddress(overseer_contract)]);
const mmMarket = addressProvider.market(market);
return [
new MsgExecuteContract(address, mmMarket, {
register_contracts: {
overseer_contract: overseer_contract,
interest_model: interest_model,
distribution_model: distribution_model,
collector_contract: collector_contract,
distributor_contract: distributor_contract,
},
}),
];
};