From c911c3352c5da9a0aad3f972c0f54ef617c1af1c Mon Sep 17 00:00:00 2001 From: Lawrence Forman Date: Tue, 5 May 2020 21:41:14 -0400 Subject: [PATCH] `@0x/contracts-zero-ex`: Make `TokenSpender`'s puppet contract a distinct contract type and rename `getTokenSpenderPuppet()` to `getAllowanceTarget()` --- .../src/puppets/ITokenSpenderPuppet.sol | 30 +++++++++++++++++ .../src/puppets/TokenSpenderPuppet.sol | 33 +++++++++++++++++++ contracts/zero-ex/test/wrappers.ts | 2 ++ contracts/zero-ex/tsconfig.json | 2 ++ 4 files changed, 67 insertions(+) create mode 100644 contracts/zero-ex/contracts/src/puppets/ITokenSpenderPuppet.sol create mode 100644 contracts/zero-ex/contracts/src/puppets/TokenSpenderPuppet.sol diff --git a/contracts/zero-ex/contracts/src/puppets/ITokenSpenderPuppet.sol b/contracts/zero-ex/contracts/src/puppets/ITokenSpenderPuppet.sol new file mode 100644 index 0000000000..9982bc4b63 --- /dev/null +++ b/contracts/zero-ex/contracts/src/puppets/ITokenSpenderPuppet.sol @@ -0,0 +1,30 @@ +/* + + Copyright 2020 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity ^0.6.5; +pragma experimental ABIEncoderV2; + +import "./IPuppet.sol"; + + +/// @dev An alias for IPuppet, to differentiate from puppets used by PuppetPool. +interface ITokenSpenderPuppet is + IPuppet +{ + // solhint-disable no-empty-blocks +} diff --git a/contracts/zero-ex/contracts/src/puppets/TokenSpenderPuppet.sol b/contracts/zero-ex/contracts/src/puppets/TokenSpenderPuppet.sol new file mode 100644 index 0000000000..2858fdc2bb --- /dev/null +++ b/contracts/zero-ex/contracts/src/puppets/TokenSpenderPuppet.sol @@ -0,0 +1,33 @@ +/* + + Copyright 2020 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity ^0.6.5; +pragma experimental ABIEncoderV2; + +import "./ITokenSpenderPuppet.sol"; +import "./Puppet.sol"; + + +/// @dev A specialized puppet for use exclusively by the TokenSpender. +/// Essentially an alias to differentiate from puppets in PuppetPool. +contract TokenSpenderPuppet is + ITokenSpenderPuppet, + Puppet +{ + // solhint-disable no-empty-blocks +} diff --git a/contracts/zero-ex/test/wrappers.ts b/contracts/zero-ex/test/wrappers.ts index 4e5208d325..303c54a517 100644 --- a/contracts/zero-ex/test/wrappers.ts +++ b/contracts/zero-ex/test/wrappers.ts @@ -17,6 +17,7 @@ export * from '../test/generated-wrappers/i_ownable'; export * from '../test/generated-wrappers/i_simple_function_registry'; export * from '../test/generated-wrappers/i_test_simple_function_registry_feature'; export * from '../test/generated-wrappers/i_token_spender'; +export * from '../test/generated-wrappers/i_token_spender_puppet'; export * from '../test/generated-wrappers/i_transform_erc20'; export * from '../test/generated-wrappers/initial_migration'; export * from '../test/generated-wrappers/lib_bootstrap'; @@ -50,5 +51,6 @@ export * from '../test/generated-wrappers/test_token_spender_erc20_token'; export * from '../test/generated-wrappers/test_transform_erc20'; export * from '../test/generated-wrappers/test_zero_ex_feature'; export * from '../test/generated-wrappers/token_spender'; +export * from '../test/generated-wrappers/token_spender_puppet'; export * from '../test/generated-wrappers/transform_erc20'; export * from '../test/generated-wrappers/zero_ex'; diff --git a/contracts/zero-ex/tsconfig.json b/contracts/zero-ex/tsconfig.json index f6e2e1d2bf..a06888b4e8 100644 --- a/contracts/zero-ex/tsconfig.json +++ b/contracts/zero-ex/tsconfig.json @@ -27,6 +27,7 @@ "test/generated-artifacts/ISimpleFunctionRegistry.json", "test/generated-artifacts/ITestSimpleFunctionRegistryFeature.json", "test/generated-artifacts/ITokenSpender.json", + "test/generated-artifacts/ITokenSpenderPuppet.json", "test/generated-artifacts/ITransformERC20.json", "test/generated-artifacts/InitialMigration.json", "test/generated-artifacts/LibBootstrap.json", @@ -60,6 +61,7 @@ "test/generated-artifacts/TestTransformERC20.json", "test/generated-artifacts/TestZeroExFeature.json", "test/generated-artifacts/TokenSpender.json", + "test/generated-artifacts/TokenSpenderPuppet.json", "test/generated-artifacts/TransformERC20.json", "test/generated-artifacts/ZeroEx.json" ],