//host to initialize the lazyInitCapableElement level
//plainUri and dynamicUriResolver to initialize the DynamicMetadataCapableElement level
var dynamicUriResolver = "0x......."
//modelAddress to initialize the Factory level. It is the model contract that your Factory will clone
var modelAddress = "0x......"
// fee-business model parameters
var feePercentageForTransacted
var tokenToTransferOrBurnAddressInCreation
var transferOrBurnAmountInCreation
var transferOrBurnReceiverInCreation
var tokenToTransferOrBurnAddressInApplication
var transferOrBurnAmountInApplication
var transferOrBurnReceiverInApplication
//your Factory custom parameters to initialize
var yourCustomData1 = "test"
var yourCustomData2 = "0x..."
var data = web3.eth.abi.encodeParameters(["string", "uint256"], [yourCustomData1, yourCustomData2]);
data = web3.eth.abi.encodeParameters(["uint256", "address", "address", "uint256", "address", "address", "uint256", "address", "byes"], [feePercentageForTransacted, feeReceiver, tokenToTransferOrBurnAddressInCreation, transferOrBurnAmountInCreation, transferOrBurnReceiverInCreation, tokenToTransferOrBurnAddressInApplication, transferOrBurnAmountInApplication, transferOrBurnReceiverInApplication, data]);
data = web3.eth.abi.encodeParameters(["address", "bytes"], [YourModelAddress, data]);
data = web3.eth.abi.encodeParameters(["string", "address", "bytes"], [YourUri, dynamicUriResolverAddress, data]);
data = web3.eth.abi.encodeParameters(["address", "bytes"], [hostAddress, data]);
var Factory = await compile('.../.../impl/ExampleFactory');
var FactoryBytecode = new web3.eth.Contract(Factory.abi).deploy({data : Factory.bin, arguments : [data]}).encodeABI();