1
1
var translate = require ( './translate.js' ) ;
2
+ var linker = require ( './linker.js' ) ;
2
3
var requireFromString = require ( 'require-from-string' ) ;
3
4
var https = require ( 'https' ) ;
4
5
var MemoryStream = require ( 'memorystream' ) ;
@@ -153,29 +154,6 @@ function setupMethods (soljson) {
153
154
return translateOutput ( compileJSON ( sources [ 0 ] , isOptimizerEnabled ( input ) ) ) ;
154
155
} ;
155
156
156
- var linkBytecode = function ( bytecode , libraries ) {
157
- for ( var libraryName in libraries ) {
158
- // truncate to 37 characters
159
- var internalName = libraryName . slice ( 0 , 36 ) ;
160
- // prefix and suffix with __
161
- var libLabel = '__' + internalName + Array ( 37 - internalName . length ) . join ( '_' ) + '__' ;
162
-
163
- var hexAddress = libraries [ libraryName ] ;
164
- if ( hexAddress . slice ( 0 , 2 ) !== '0x' || hexAddress . length > 42 ) {
165
- throw new Error ( 'Invalid address specified for ' + libraryName ) ;
166
- }
167
- // remove 0x prefix
168
- hexAddress = hexAddress . slice ( 2 ) ;
169
- hexAddress = Array ( 40 - hexAddress . length + 1 ) . join ( '0' ) + hexAddress ;
170
-
171
- while ( bytecode . indexOf ( libLabel ) >= 0 ) {
172
- bytecode = bytecode . replace ( libLabel , hexAddress ) ;
173
- }
174
- }
175
-
176
- return bytecode ;
177
- } ;
178
-
179
157
var version = soljson . cwrap ( 'version' , 'string' , [ ] ) ;
180
158
181
159
var license = function ( ) {
@@ -192,7 +170,7 @@ function setupMethods (soljson) {
192
170
compile : compile ,
193
171
compileStandard : compileStandard ,
194
172
compileStandardWrapper : compileStandardWrapper ,
195
- linkBytecode : linkBytecode ,
173
+ linkBytecode : linker . linkBytecode ,
196
174
supportsMulti : compileJSONMulti !== null ,
197
175
supportsImportCallback : compileJSONCallback !== null ,
198
176
supportsStandard : compileStandard !== null ,
0 commit comments