@@ -15,6 +15,8 @@ import (
1515
1616const (
1717 placeholderFungibleTokenAddress = "\" FungibleToken\" "
18+ placeholderNonFungibleTokenAddress = "\" NonFungibleToken\" "
19+ placeholderEVMAddress = "\" EVM\" "
1820 placeholderViewResolverAddress = "\" ViewResolver\" "
1921 placeholderFungibleTokenMVAddress = "\" FungibleTokenMetadataViews\" "
2022 placeholderMetadataViewsAddress = "\" MetadataViews\" "
@@ -43,6 +45,7 @@ type Environment struct {
4345 CryptoAddress string
4446 FungibleTokenAddress string
4547 NonFungibleTokenAddress string
48+ EVMAddress string
4649 MetadataViewsAddress string
4750 FungibleTokenMetadataViewsAddress string
4851 FungibleTokenSwitchboardAddress string
@@ -74,126 +77,149 @@ func withHexPrefix(address string) string {
7477 return fmt .Sprintf ("0x%s" , address )
7578}
7679
80+ func ReplaceAddress (code , placeholder , replacement string ) string {
81+ if len (replacement ) > 0 {
82+ code = strings .ReplaceAll (
83+ code ,
84+ placeholder ,
85+ withHexPrefix (replacement ),
86+ )
87+ }
88+ return code
89+ }
90+
7791func ReplaceAddresses (code string , env Environment ) string {
7892
79- code = strings . ReplaceAll (
93+ code = ReplaceAddress (
8094 code ,
8195 placeholderFungibleTokenMVAddress ,
82- withHexPrefix ( env .FungibleTokenMetadataViewsAddress ) ,
96+ env .FungibleTokenMetadataViewsAddress ,
8397 )
8498
85- code = strings . ReplaceAll (
99+ code = ReplaceAddress (
86100 code ,
87101 placeholderMetadataViewsAddress ,
88- withHexPrefix ( env .MetadataViewsAddress ) ,
102+ env .MetadataViewsAddress ,
89103 )
90104
91- code = strings . ReplaceAll (
105+ code = ReplaceAddress (
92106 code ,
93107 placeholderBurnerAddress ,
94- withHexPrefix ( env .BurnerAddress ) ,
108+ env .BurnerAddress ,
95109 )
96110
97- code = strings . ReplaceAll (
111+ code = ReplaceAddress (
98112 code ,
99113 placeholderCryptoAddress ,
100- withHexPrefix ( env .CryptoAddress ) ,
114+ env .CryptoAddress ,
101115 )
102116
103- code = strings . ReplaceAll (
117+ code = ReplaceAddress (
104118 code ,
105119 placeholderViewResolverAddress ,
106- withHexPrefix ( env .ViewResolverAddress ) ,
120+ env .ViewResolverAddress ,
107121 )
108122
109- code = strings . ReplaceAll (
123+ code = ReplaceAddress (
110124 code ,
111125 placeholderFungibleTokenAddress ,
112- withHexPrefix (env .FungibleTokenAddress ),
126+ env .FungibleTokenAddress ,
127+ )
128+
129+ code = ReplaceAddress (
130+ code ,
131+ placeholderNonFungibleTokenAddress ,
132+ env .NonFungibleTokenAddress ,
133+ )
134+
135+ code = ReplaceAddress (
136+ code ,
137+ placeholderEVMAddress ,
138+ env .EVMAddress ,
113139 )
114140
115- code = strings . ReplaceAll (
141+ code = ReplaceAddress (
116142 code ,
117143 placeholderFlowTokenAddress ,
118- withHexPrefix ( env .FlowTokenAddress ) ,
144+ env .FlowTokenAddress ,
119145 )
120146
121- code = strings . ReplaceAll (
147+ code = ReplaceAddress (
122148 code ,
123149 placeholderIDTableAddress ,
124- withHexPrefix ( env .IDTableAddress ) ,
150+ env .IDTableAddress ,
125151 )
126152
127- code = strings . ReplaceAll (
153+ code = ReplaceAddress (
128154 code ,
129155 placeholderLockedTokensAddress ,
130- withHexPrefix ( env .LockedTokensAddress ) ,
156+ env .LockedTokensAddress ,
131157 )
132158
133- code = strings . ReplaceAll (
159+ code = ReplaceAddress (
134160 code ,
135161 placeholderStakingProxyAddress ,
136- withHexPrefix ( env .StakingProxyAddress ) ,
162+ env .StakingProxyAddress ,
137163 )
138164
139- code = strings . ReplaceAll (
165+ code = ReplaceAddress (
140166 code ,
141167 placeholderQuorumCertificateAddress ,
142- withHexPrefix ( env .QuorumCertificateAddress ) ,
168+ env .QuorumCertificateAddress ,
143169 )
144170
145- code = strings . ReplaceAll (
171+ code = ReplaceAddress (
146172 code ,
147173 placeholderDKGAddress ,
148- withHexPrefix ( env .DkgAddress ) ,
174+ env .DkgAddress ,
149175 )
150176
151- code = strings . ReplaceAll (
177+ code = ReplaceAddress (
152178 code ,
153179 placeholderEpochAddress ,
154- withHexPrefix ( env .EpochAddress ) ,
180+ env .EpochAddress ,
155181 )
156182
157- code = strings . ReplaceAll (
183+ code = ReplaceAddress (
158184 code ,
159185 placeholderStorageFeesAddress ,
160- withHexPrefix ( env .StorageFeesAddress ) ,
186+ env .StorageFeesAddress ,
161187 )
162188
163- code = strings . ReplaceAll (
189+ code = ReplaceAddress (
164190 code ,
165191 placeholderFlowFeesAddress ,
166- withHexPrefix ( env .FlowFeesAddress ) ,
192+ env .FlowFeesAddress ,
167193 )
168194
169- code = strings . ReplaceAll (
195+ code = ReplaceAddress (
170196 code ,
171197 placeholderStakingCollectionAddress ,
172- withHexPrefix ( env .LockedTokensAddress ) ,
198+ env .LockedTokensAddress ,
173199 )
174200
175- code = strings . ReplaceAll (
201+ code = ReplaceAddress (
176202 code ,
177203 placeholderExecutionParametersAddress ,
178- withHexPrefix ( env .FlowExecutionParametersAddress ) ,
204+ env .FlowExecutionParametersAddress ,
179205 )
180206
181- code = strings . ReplaceAll (
207+ code = ReplaceAddress (
182208 code ,
183209 placeholderServiceAccountAddress ,
184- withHexPrefix ( env .ServiceAccountAddress ) ,
210+ env .ServiceAccountAddress ,
185211 )
186212
187- code = strings . ReplaceAll (
213+ code = ReplaceAddress (
188214 code ,
189215 placeholderNodeVersionBeaconAddress ,
190- withHexPrefix ( env .NodeVersionBeaconAddress ) ,
216+ env .NodeVersionBeaconAddress ,
191217 )
192218
193- code = strings . ReplaceAll (
219+ code = ReplaceAddress (
194220 code ,
195221 placeholderRandomBeaconHistoryAddress ,
196- withHexPrefix ( env .RandomBeaconHistoryAddress ) ,
222+ env .RandomBeaconHistoryAddress ,
197223 )
198224
199225 return code
0 commit comments