Skip to content
Closed
Show file tree
Hide file tree
Changes from 45 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
0b5940a
feat(cgt): custom gas token
hexshire Sep 2, 2025
5d807c7
feat: add gasPayingTokenName and gasPayingTokenSymbol on json config …
0xniha Sep 3, 2025
2c9c7b9
fix: contracts semver
0xniha Sep 3, 2025
4ddd49f
fix: remove system config bool
ashitakah Sep 3, 2025
1a9acec
test: add OptimismPortal2CGT tests
0xniha Sep 3, 2025
170cede
chore(cgt): set cgt flag l1block & fixes
0xniha Sep 4, 2025
ef98d54
fix(linter): resolve goimports formatting issue
hexshire Sep 4, 2025
1f223a4
feat: add separate l2 contracts for cgt (#530)
0xniha Sep 4, 2025
53a7501
test(cgt): fix failing tests (#529)
hexshire Sep 5, 2025
52d4840
fix(cgt): revert weth
hexshire Sep 7, 2025
c64cbe5
cgt: feature flag integration
tynes Sep 10, 2025
01b018c
config: make backwards compatible
tynes Sep 10, 2025
2b5fdf2
fix: build issue
tynes Sep 10, 2025
c1e9f38
fix: better backwards compatibility
tynes Sep 10, 2025
736e33d
build: fix
tynes Sep 10, 2025
e759aae
lint: fix
tynes Sep 10, 2025
38404d5
snapshots: update
tynes Sep 10, 2025
2175502
op-deployer: apply test with CGT
tynes Sep 10, 2025
5fc88e1
contracts-bedrock: fix versioning
tynes Sep 10, 2025
4db9ecc
lint: fix
tynes Sep 10, 2025
47b0d81
deployer: remove standard values
tynes Sep 10, 2025
75798b4
contracts: semver lock
tynes Sep 10, 2025
787e880
contracts-bedrock: fix semver + abis
tynes Sep 10, 2025
47bd311
cgt: solidity test cleanup
tynes Sep 10, 2025
70f90c4
solidity: fmt
tynes Sep 10, 2025
fe0f5ab
tests: remove dead imports
tynes Sep 10, 2025
0461d07
tests: fixup
tynes Sep 10, 2025
8d2240f
cgt: configurable liquidity amount
tynes Sep 11, 2025
fd8b11d
feat: configurable native asset liquidity balance
tynes Sep 11, 2025
11e3e4c
cleanup: merge L1Block logic so that we inherit
tynes Sep 11, 2025
bccbdb8
snapshots: update
tynes Sep 11, 2025
2652a3f
cgt: inherit logic for L2ToL1MessagePasser
tynes Sep 11, 2025
c865863
semver-lock: update
tynes Sep 11, 2025
8209fb1
lint: fix
tynes Sep 11, 2025
3aedcdc
lint: fixup
tynes Sep 11, 2025
82305b5
interfaces: fix
tynes Sep 11, 2025
da28e87
fixes: smol
tynes Sep 11, 2025
152afcc
deploy-config: sane default
tynes Sep 11, 2025
d159627
lint: fix
tynes Sep 11, 2025
3a876e1
linting: fix
tynes Sep 11, 2025
fbbbba2
lint: fix
tynes Sep 11, 2025
330bb60
semgrep: fix
tynes Sep 11, 2025
b423844
lint: fix
tynes Sep 11, 2025
ca929cb
tests: fix
tynes Sep 12, 2025
8de8477
tests: fix fuzz
tynes Sep 12, 2025
dfe5282
fix: custom gas token rebase (#17484)
agusduha Sep 17, 2025
b54c6b5
Merge branch 'develop' into sc-feat/custom-gas-token-rebase
agusduha Sep 17, 2025
cbdda0f
fix: semver lock
agusduha Sep 17, 2025
9bb50bd
fix: CGT review fixes (#17534)
agusduha Sep 19, 2025
872d409
Merge branch 'develop' into sc-feat/custom-gas-token-rebase
agusduha Sep 19, 2025
ed4c79b
fix: semver
agusduha Sep 19, 2025
01020a3
fix: opcm version
agusduha Sep 19, 2025
244a734
Merge branch 'develop' into sc-feat/custom-gas-token-rebase
agusduha Sep 22, 2025
c8060eb
fix: tests
agusduha Sep 22, 2025
ee87ecd
feat(op-acceptance-tests): add acceptance tests for native CGT across…
scharissis Sep 22, 2025
4ad8a30
fix: custom gas token rebase review comments (#17577)
agusduha Sep 24, 2025
4f01447
fix: cgt review (#17612)
agusduha Sep 25, 2025
c83d058
test: custom gas token invariants (#17489)
simon-something Sep 25, 2025
882ca7a
refactor: use skipIfDevFeatureDisabled for cgt predeploys test (#614)…
agusduha Sep 25, 2025
2da84c8
Merge branch 'develop' into sc-feat/custom-gas-token-rebase
agusduha Sep 25, 2025
bf72a8c
fix: tests
agusduha Sep 25, 2025
f033db8
fix: auth minter helper & bound _mint in depositTransaction tests (#1…
0xniha Sep 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions op-chain-ops/genesis/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -275,18 +275,27 @@ func (d *GasPriceOracleDeployConfig) OperatorFeeParams() [32]byte {
type GasTokenDeployConfig struct {
// UseCustomGasToken is a flag to indicate that a custom gas token should be used
UseCustomGasToken bool `json:"useCustomGasToken"`
// CustomGasTokenAddress is the address of the ERC20 token to be used to pay for gas on L2.
CustomGasTokenAddress common.Address `json:"customGasTokenAddress"`
// GasPayingTokenName represents the custom gas token name.
GasPayingTokenName string `json:"gasPayingTokenName"`
// GasPayingTokenSymbol represents the custom gas token symbol.
GasPayingTokenSymbol string `json:"gasPayingTokenSymbol"`
// NativeAssetLiquidityAmount represents the amount of liquidity to pre-fund the NativeAssetLiquidity contract with
NativeAssetLiquidityAmount *hexutil.Big `json:"nativeAssetLiquidityAmount"`
}

var _ ConfigChecker = (*GasTokenDeployConfig)(nil)

func (d *GasTokenDeployConfig) Check(log log.Logger) error {
if d.UseCustomGasToken {
if d.CustomGasTokenAddress == (common.Address{}) {
return fmt.Errorf("%w: CustomGasTokenAddress cannot be address(0)", ErrInvalidDeployConfig)
if d.GasPayingTokenName == "" {
return fmt.Errorf("%w: GasPayingTokenName cannot be empty", ErrInvalidDeployConfig)
}
if d.GasPayingTokenSymbol == "" {
return fmt.Errorf("%w: GasPayingTokenSymbol cannot be empty", ErrInvalidDeployConfig)
}
if d.NativeAssetLiquidityAmount == nil {
return fmt.Errorf("%w: NativeAssetLiquidityAmount cannot be nil", ErrInvalidDeployConfig)
}
log.Info("Using custom gas token", "address", d.CustomGasTokenAddress)
}
return nil
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
"maxSequencerDrift": 20,
"sequencerWindowSize": 100,
"channelTimeout": 30,
"customGasTokenAddress": "0x0000000000000000000000000000000000000000",
"p2pSequencerAddress": "0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc",
"batchInboxAddress": "0x42000000000000000000000000000000000000ff",
"batchSenderAddress": "0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc",
Expand Down Expand Up @@ -85,6 +84,9 @@
"disputeGameFinalityDelaySeconds": 6,
"respectedGameType": 0,
"useCustomGasToken": false,
"gasPayingTokenName": "",
"gasPayingTokenSymbol": "",
"nativeAssetLiquidityAmount": null,
"useFaultProofs": false,
"useAltDA": false,
"daBondSize": 0,
Expand Down
5 changes: 5 additions & 0 deletions op-chain-ops/interopgen/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ func DeployL2ToL1(l1Host *script.Host, superCfg *SuperchainConfig, superDeployme
AllowCustomDisputeParameters: true,
OperatorFeeScalar: cfg.GasPriceOracleOperatorFeeScalar,
OperatorFeeConstant: cfg.GasPriceOracleOperatorFeeConstant,
UseCustomGasToken: cfg.UseCustomGasToken,
})
if err != nil {
return nil, fmt.Errorf("failed to deploy L2 OP chain: %w", err)
Expand Down Expand Up @@ -329,6 +330,10 @@ func GenesisL2(l2Host *script.Host, cfg *L2Config, deployment *L2Deployment, mul
DeployCrossL2Inbox: multichainDepSet,
EnableGovernance: cfg.EnableGovernance,
FundDevAccounts: cfg.FundDevAccounts,
UseCustomGasToken: cfg.UseCustomGasToken,
GasPayingTokenName: cfg.GasPayingTokenName,
GasPayingTokenSymbol: cfg.GasPayingTokenSymbol,
NativeAssetLiquidityAmount: cfg.NativeAssetLiquidityAmount.ToInt(),
}); err != nil {
return fmt.Errorf("failed L2 genesis: %w", err)
}
Expand Down
5 changes: 4 additions & 1 deletion op-chain-ops/interopgen/recipe.go
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,10 @@ func (r *InteropDevL2Recipe) build(l1ChainID uint64, addrs devkeys.Addresses) (*
GasPriceOracleBlobBaseFeeScalar: 810949,
},
GasTokenDeployConfig: genesis.GasTokenDeployConfig{
UseCustomGasToken: false,
UseCustomGasToken: false,
GasPayingTokenName: "",
GasPayingTokenSymbol: "",
NativeAssetLiquidityAmount: (*hexutil.Big)(big.NewInt(0)),
},
OperatorDeployConfig: genesis.OperatorDeployConfig{
P2PSequencerAddress: sequencerP2P,
Expand Down
44 changes: 44 additions & 0 deletions op-deployer/pkg/deployer/integration_test/apply_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (

"github.com/ethereum-optimism/optimism/op-deployer/pkg/deployer/bootstrap"
"github.com/ethereum-optimism/optimism/op-deployer/pkg/deployer/inspect"
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/params"

"github.com/ethereum-optimism/optimism/op-service/testutils"
Expand All @@ -34,6 +35,7 @@ import (
op_e2e "github.com/ethereum-optimism/optimism/op-e2e"

"github.com/holiman/uint256"
"github.com/lmittmann/w3"

"github.com/ethereum-optimism/optimism/op-chain-ops/addresses"
"github.com/ethereum-optimism/optimism/op-chain-ops/devkeys"
Expand Down Expand Up @@ -238,6 +240,43 @@ func TestEndToEndApply(t *testing.T) {
require.NoError(t, err)
}
})

t.Run("with custom gas token", func(t *testing.T) {
intent, st := newIntent(t, l1ChainID, dk, l2ChainID1, loc, loc)
intent.Chains[0].CustomGasToken = &state.CustomGasToken{
Enabled: true,
Name: "Custom Gas Token",
Symbol: "CGT",
}

require.NoError(t, deployer.ApplyPipeline(ctx, deployer.ApplyPipelineOpts{
DeploymentTarget: deployer.DeploymentTargetLive,
L1RPCUrl: l1RPC,
DeployerPrivateKey: pk,
Intent: intent,
State: st,
Logger: lgr,
StateWriter: pipeline.NoopStateWriter(),
CacheDir: testCacheDir,
}))

systemConfig := st.Chains[0].SystemConfigProxy
fn := w3.MustNewFunc("isFeatureEnabled(bytes32)", "bool")
// bytes32("CUSTOM_GAS_TOKEN")
data, err := fn.EncodeArgs(w3.H("0x435553544f4d5f4741535f544f4b454e00000000000000000000000000000000"))
require.NoError(t, err)

res, err := l1Client.CallContract(ctx, ethereum.CallMsg{
To: &systemConfig,
Data: data,
}, nil)
require.NoError(t, err)

var response bool
err = fn.DecodeReturns(res, &response)
require.NoError(t, err)
require.Equal(t, true, response)
})
}

func TestGlobalOverrides(t *testing.T) {
Expand Down Expand Up @@ -711,6 +750,11 @@ func newChainIntent(t *testing.T, dk *devkeys.MnemonicDevKeys, l1ChainID *big.In
Proposer: addrFor(t, dk, devkeys.ProposerRole.Key(l1ChainID)),
Challenger: addrFor(t, dk, devkeys.ChallengerRole.Key(l1ChainID)),
},
CustomGasToken: &state.CustomGasToken{
Enabled: false,
Name: "",
Symbol: "",
},
}
}

Expand Down
4 changes: 4 additions & 0 deletions op-deployer/pkg/deployer/opcm/l2genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ type L2GenesisInput struct {
DeployCrossL2Inbox bool
EnableGovernance bool
FundDevAccounts bool
UseCustomGasToken bool
GasPayingTokenName string
GasPayingTokenSymbol string
NativeAssetLiquidityAmount *big.Int
}

type L2GenesisScript script.DeployScriptWithoutOutput[L2GenesisInput]
Expand Down
1 change: 1 addition & 0 deletions op-deployer/pkg/deployer/opcm/opchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ type DeployOPChainInput struct {
DisputeClockExtension uint64
DisputeMaxClockDuration uint64
AllowCustomDisputeParameters bool
UseCustomGasToken bool

OperatorFeeScalar uint32
OperatorFeeConstant uint64
Expand Down
24 changes: 24 additions & 0 deletions op-deployer/pkg/deployer/pipeline/l2genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ import (
)

type l2GenesisOverrides struct {
UseCustomGasToken bool `json:"useCustomGasToken"`
GasPayingTokenName string `json:"gasPayingTokenName"`
GasPayingTokenSymbol string `json:"gasPayingTokenSymbol"`
FundDevAccounts bool `json:"fundDevAccounts"`
BaseFeeVaultMinimumWithdrawalAmount *hexutil.Big `json:"baseFeeVaultMinimumWithdrawalAmount"`
L1FeeVaultMinimumWithdrawalAmount *hexutil.Big `json:"l1FeeVaultMinimumWithdrawalAmount"`
Expand All @@ -31,6 +34,7 @@ type l2GenesisOverrides struct {
SequencerFeeVaultWithdrawalNetwork genesis.WithdrawalNetwork `json:"sequencerFeeVaultWithdrawalNetwork"`
EnableGovernance bool `json:"enableGovernance"`
GovernanceTokenOwner common.Address `json:"governanceTokenOwner"`
NativeAssetLiquidityAmount *hexutil.Big `json:"nativeAssetLiquidityAmount"`
}

func GenerateL2Genesis(pEnv *Env, intent *state.Intent, bundle ArtifactsBundle, st *state.State, chainID common.Hash) error {
Expand Down Expand Up @@ -94,6 +98,10 @@ func GenerateL2Genesis(pEnv *Env, intent *state.Intent, bundle ArtifactsBundle,
DeployCrossL2Inbox: len(intent.Chains) > 1,
EnableGovernance: overrides.EnableGovernance,
FundDevAccounts: overrides.FundDevAccounts,
UseCustomGasToken: thisIntent.CustomGasToken.Enabled,
GasPayingTokenName: thisIntent.CustomGasToken.Name,
GasPayingTokenSymbol: thisIntent.CustomGasToken.Symbol,
NativeAssetLiquidityAmount: thisIntent.GetNativeAssetLiquidityAmount(),
}); err != nil {
return fmt.Errorf("failed to call L2Genesis script: %w", err)
}
Expand Down Expand Up @@ -142,6 +150,15 @@ func calculateL2GenesisOverrides(intent *state.Intent, thisIntent *state.ChainIn
}
}

if thisIntent.CustomGasToken == nil {
thisIntent.CustomGasToken = &state.CustomGasToken{
Enabled: overrides.UseCustomGasToken,
Name: overrides.GasPayingTokenName,
Symbol: overrides.GasPayingTokenSymbol,
NativeAssetLiquidityAmount: overrides.NativeAssetLiquidityAmount,
}
}

return overrides, schedule, nil
}

Expand All @@ -155,7 +172,13 @@ func wdNetworkToBig(wd genesis.WithdrawalNetwork) *big.Int {
}

func defaultOverrides() l2GenesisOverrides {
// Default to type(uint248).max = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
maxUint248, _ := new(big.Int).SetString("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)

return l2GenesisOverrides{
UseCustomGasToken: false,
GasPayingTokenName: "",
GasPayingTokenSymbol: "",
FundDevAccounts: false,
BaseFeeVaultMinimumWithdrawalAmount: standard.VaultMinWithdrawalAmount,
L1FeeVaultMinimumWithdrawalAmount: standard.VaultMinWithdrawalAmount,
Expand All @@ -165,5 +188,6 @@ func defaultOverrides() l2GenesisOverrides {
SequencerFeeVaultWithdrawalNetwork: "local",
EnableGovernance: false,
GovernanceTokenOwner: standard.GovernanceTokenOwner,
NativeAssetLiquidityAmount: (*hexutil.Big)(maxUint248),
}
}
70 changes: 37 additions & 33 deletions op-deployer/pkg/deployer/pipeline/l2genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,11 @@ func TestCalculateL2GenesisOverrides(t *testing.T) {
},
chainIntent: &state.ChainIntent{},
expectError: false,
expectedOverrides: l2GenesisOverrides{
FundDevAccounts: true,
BaseFeeVaultMinimumWithdrawalAmount: standard.VaultMinWithdrawalAmount,
L1FeeVaultMinimumWithdrawalAmount: standard.VaultMinWithdrawalAmount,
SequencerFeeVaultMinimumWithdrawalAmount: standard.VaultMinWithdrawalAmount,
BaseFeeVaultWithdrawalNetwork: "local",
L1FeeVaultWithdrawalNetwork: "local",
SequencerFeeVaultWithdrawalNetwork: "local",
EnableGovernance: false,
GovernanceTokenOwner: standard.GovernanceTokenOwner,
},
expectedOverrides: func() l2GenesisOverrides {
defaults := defaultOverrides()
defaults.FundDevAccounts = true
return defaults
}(),
expectedSchedule: func() *genesis.UpgradeScheduleDeployConfig {
return standard.DefaultHardforkScheduleForTag("")
},
Expand All @@ -73,21 +67,26 @@ func TestCalculateL2GenesisOverrides(t *testing.T) {
"enableGovernance": true,
"governanceTokenOwner": "0x1111111111111111111111111111111111111111",
"l2GenesisInteropTimeOffset": "0x1234",
"useCustomGasToken": false,
"gasPayingTokenName": "",
"gasPayingTokenSymbol": "",
},
},
chainIntent: &state.ChainIntent{},
expectError: false,
expectedOverrides: l2GenesisOverrides{
FundDevAccounts: true,
BaseFeeVaultMinimumWithdrawalAmount: (*hexutil.Big)(hexutil.MustDecodeBig("0x1234")),
L1FeeVaultMinimumWithdrawalAmount: (*hexutil.Big)(hexutil.MustDecodeBig("0x2345")),
SequencerFeeVaultMinimumWithdrawalAmount: (*hexutil.Big)(hexutil.MustDecodeBig("0x3456")),
BaseFeeVaultWithdrawalNetwork: "remote",
L1FeeVaultWithdrawalNetwork: "remote",
SequencerFeeVaultWithdrawalNetwork: "remote",
EnableGovernance: true,
GovernanceTokenOwner: common.HexToAddress("0x1111111111111111111111111111111111111111"),
},
expectedOverrides: func() l2GenesisOverrides {
defaults := defaultOverrides()
defaults.FundDevAccounts = true
defaults.BaseFeeVaultMinimumWithdrawalAmount = (*hexutil.Big)(hexutil.MustDecodeBig("0x1234"))
defaults.L1FeeVaultMinimumWithdrawalAmount = (*hexutil.Big)(hexutil.MustDecodeBig("0x2345"))
defaults.SequencerFeeVaultMinimumWithdrawalAmount = (*hexutil.Big)(hexutil.MustDecodeBig("0x3456"))
defaults.BaseFeeVaultWithdrawalNetwork = "remote"
defaults.L1FeeVaultWithdrawalNetwork = "remote"
defaults.SequencerFeeVaultWithdrawalNetwork = "remote"
defaults.EnableGovernance = true
defaults.GovernanceTokenOwner = common.HexToAddress("0x1111111111111111111111111111111111111111")
return defaults
}(),
expectedSchedule: func() *genesis.UpgradeScheduleDeployConfig {
sched := standard.DefaultHardforkScheduleForTag("")
sched.L2GenesisInteropTimeOffset = op_service.U64UtilPtr(0x1234)
Expand All @@ -114,20 +113,25 @@ func TestCalculateL2GenesisOverrides(t *testing.T) {
"enableGovernance": true,
"governanceTokenOwner": "0x1111111111111111111111111111111111111111",
"l2GenesisInteropTimeOffset": "0x1234",
"useCustomGasToken": false,
"gasPayingTokenName": "",
"gasPayingTokenSymbol": "",
},
},
expectError: false,
expectedOverrides: l2GenesisOverrides{
FundDevAccounts: true,
BaseFeeVaultMinimumWithdrawalAmount: (*hexutil.Big)(hexutil.MustDecodeBig("0x1234")),
L1FeeVaultMinimumWithdrawalAmount: (*hexutil.Big)(hexutil.MustDecodeBig("0x2345")),
SequencerFeeVaultMinimumWithdrawalAmount: (*hexutil.Big)(hexutil.MustDecodeBig("0x3456")),
BaseFeeVaultWithdrawalNetwork: "remote",
L1FeeVaultWithdrawalNetwork: "remote",
SequencerFeeVaultWithdrawalNetwork: "remote",
EnableGovernance: true,
GovernanceTokenOwner: common.HexToAddress("0x1111111111111111111111111111111111111111"),
},
expectedOverrides: func() l2GenesisOverrides {
defaults := defaultOverrides()
defaults.FundDevAccounts = true
defaults.BaseFeeVaultMinimumWithdrawalAmount = (*hexutil.Big)(hexutil.MustDecodeBig("0x1234"))
defaults.L1FeeVaultMinimumWithdrawalAmount = (*hexutil.Big)(hexutil.MustDecodeBig("0x2345"))
defaults.SequencerFeeVaultMinimumWithdrawalAmount = (*hexutil.Big)(hexutil.MustDecodeBig("0x3456"))
defaults.BaseFeeVaultWithdrawalNetwork = "remote"
defaults.L1FeeVaultWithdrawalNetwork = "remote"
defaults.SequencerFeeVaultWithdrawalNetwork = "remote"
defaults.EnableGovernance = true
defaults.GovernanceTokenOwner = common.HexToAddress("0x1111111111111111111111111111111111111111")
return defaults
}(),
expectedSchedule: func() *genesis.UpgradeScheduleDeployConfig {
sched := standard.DefaultHardforkScheduleForTag("")
sched.L2GenesisInteropTimeOffset = op_service.U64UtilPtr(0x1234)
Expand Down
1 change: 1 addition & 0 deletions op-deployer/pkg/deployer/pipeline/opchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ func makeDCI(intent *state.Intent, thisIntent *state.ChainIntent, chainID common
DisputeClockExtension: proofParams.DisputeClockExtension, // 3 hours (input in seconds)
DisputeMaxClockDuration: proofParams.DisputeMaxClockDuration, // 3.5 days (input in seconds)
AllowCustomDisputeParameters: proofParams.DangerouslyAllowCustomDisputeParameters,
UseCustomGasToken: thisIntent.CustomGasToken != nil && thisIntent.CustomGasToken.Enabled,
OperatorFeeScalar: thisIntent.OperatorFeeScalar,
OperatorFeeConstant: thisIntent.OperatorFeeConstant,
}, nil
Expand Down
Loading