You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 4, 2023. It is now read-only.
The number of contract variations is growing rapidly, and with the current approach maintaining them becomes too problematic. For instance, for english_auction contract we have
2 versions fa2 vs tez
per 3 versions of allowlisting for FA2 addresses/tokens (if we take Extended allowlist #132 into account)
Currently, to get a version of the contract with tez and simple allowlisting, I create a contract called english_auction_tez_allowlisted.mligo that sole purpose is to glue basic contract components and then add it to the TS compilation scripts. And so for every single contract configuration.
Apparently, we have to come up with a scheme where it will be possible to ask TS script to e.g. enable whitelisting in a specific mode, and the script will automatically glue the necessary contract components. This scheme must be transparent for developers, to avoid situations when a compilation error is raised for an obscure reason.
I have little experience of working with LIGO and preprocessor pragmas, but my preliminary suggestion would be to assume that to enable a certain component in a complex contract one always adds a corresponding #include statement. E.g. english_auction_tez_allowlisted.mligo consists solely of includes, and english_auction_tez_fixed_fee.mligo can be rewritten to consist of those.
The number of contract variations is growing rapidly, and with the current approach maintaining them becomes too problematic. For instance, for
english_auctioncontract we havefa2vstezCurrently, to get a version of the contract with
tezand simple allowlisting, I create a contract calledenglish_auction_tez_allowlisted.mligothat sole purpose is to glue basic contract components and then add it to the TS compilation scripts. And so for every single contract configuration.Apparently, we have to come up with a scheme where it will be possible to ask TS script to e.g. enable whitelisting in a specific mode, and the script will automatically glue the necessary contract components. This scheme must be transparent for developers, to avoid situations when a compilation error is raised for an obscure reason.
I have little experience of working with LIGO and preprocessor pragmas, but my preliminary suggestion would be to assume that to enable a certain component in a complex contract one always adds a corresponding
#includestatement. E.g.english_auction_tez_allowlisted.mligoconsists solely of includes, andenglish_auction_tez_fixed_fee.mligocan be rewritten to consist of those.