@@ -12,12 +12,42 @@ import {
1212 DividendType ,
1313} from '../types' ;
1414import { PolymathError } from '../PolymathError' ;
15+ import { Factories } from '../Context' ;
1516import {
1617 SecurityToken ,
1718 Erc20DividendsManager ,
1819 EthDividendsManager ,
1920} from '../entities' ;
2021
22+ export const createResolver = async (
23+ dividendType : DividendType ,
24+ factories : Factories ,
25+ symbol : string
26+ ) => {
27+ let refresh ;
28+ // eslint-disable-next-line default-case
29+ switch ( dividendType ) {
30+ case DividendType . Erc20 : {
31+ refresh = factories . erc20DividendsManagerFactory . refresh (
32+ Erc20DividendsManager . generateId ( {
33+ securityTokenId : SecurityToken . generateId ( { symbol } ) ,
34+ dividendType,
35+ } )
36+ ) ;
37+ break ;
38+ }
39+ case DividendType . Eth : {
40+ refresh = factories . ethDividendsManagerFactory . refresh (
41+ EthDividendsManager . generateId ( {
42+ securityTokenId : SecurityToken . generateId ( { symbol } ) ,
43+ dividendType,
44+ } )
45+ ) ;
46+ }
47+ }
48+ return refresh ;
49+ } ;
50+
2151export class SetDividendsWallet extends Procedure <
2252 SetDividendsWalletProcedureArgs
2353> {
@@ -72,29 +102,7 @@ export class SetDividendsWallet extends Procedure<
72102
73103 await this . addTransaction ( dividendModule . changeWallet , {
74104 tag : PolyTransactionTag . SetDividendsWallet ,
75- resolver : async ( ) => {
76- switch ( dividendType ) {
77- case DividendType . Erc20 : {
78- return factories . erc20DividendsManagerFactory . refresh (
79- Erc20DividendsManager . generateId ( {
80- securityTokenId : SecurityToken . generateId ( { symbol } ) ,
81- dividendType,
82- } )
83- ) ;
84- }
85- case DividendType . Eth : {
86- return factories . ethDividendsManagerFactory . refresh (
87- EthDividendsManager . generateId ( {
88- securityTokenId : SecurityToken . generateId ( { symbol } ) ,
89- dividendType,
90- } )
91- ) ;
92- }
93- default : {
94- break ;
95- }
96- }
97- } ,
105+ resolver : ( ) => createResolver ( dividendType , factories , symbol ) ,
98106 } ) ( { wallet : address } ) ;
99107 }
100108}
0 commit comments