--- a/pallets/refungible/src/stubs/UniqueRefungibleToken.sol +++ b/pallets/refungible/src/stubs/UniqueRefungibleToken.sol @@ -38,19 +38,19 @@ /// @dev the ERC-165 identifier for this interface is 0xe17a7d2b contract ERC20UniqueExtensions is Dummy, ERC165 { - // /// @dev Function that burns an amount of the token of a given account, - // /// deducting from the sender's allowance for said account. - // /// @param from The account whose tokens will be burnt. - // /// @param amount The amount that will be burnt. - // /// @dev EVM selector for this function is: 0x79cc6790, - // /// or in textual repr: burnFrom(address,uint256) - // function burnFrom(address from, uint256 amount) public returns (bool) { - // require(false, stub_error); - // from; - // amount; - // dummy = 0; - // return false; - // } + /// @dev Function that burns an amount of the token of a given account, + /// deducting from the sender's allowance for said account. + /// @param from The account whose tokens will be burnt. + /// @param amount The amount that will be burnt. + /// @dev EVM selector for this function is: 0x79cc6790, + /// or in textual repr: burnFrom(address,uint256) + function burnFrom(address from, uint256 amount) public returns (bool) { + require(false, stub_error); + from; + amount; + dummy = 0; + return false; + } /// @dev Function that burns an amount of the token of a given account, /// deducting from the sender's allowance for said account. --- a/tests/src/eth/abi/reFungibleToken.json +++ b/tests/src/eth/abi/reFungibleToken.json @@ -98,6 +98,16 @@ }, { "inputs": [ + { "internalType": "address", "name": "from", "type": "address" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "name": "burnFrom", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "components": [ { "internalType": "address", "name": "eth", "type": "address" }, --- a/tests/src/eth/abi/reFungibleTokenDeprecated.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "inputs": [ - { "internalType": "address", "name": "from", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "burnFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "nonpayable", - "type": "function" - } -] --- a/tests/src/eth/api/UniqueRefungibleToken.sol +++ b/tests/src/eth/api/UniqueRefungibleToken.sol @@ -25,13 +25,13 @@ /// @dev the ERC-165 identifier for this interface is 0xe17a7d2b interface ERC20UniqueExtensions is Dummy, ERC165 { - // /// @dev Function that burns an amount of the token of a given account, - // /// deducting from the sender's allowance for said account. - // /// @param from The account whose tokens will be burnt. - // /// @param amount The amount that will be burnt. - // /// @dev EVM selector for this function is: 0x79cc6790, - // /// or in textual repr: burnFrom(address,uint256) - // function burnFrom(address from, uint256 amount) external returns (bool); + /// @dev Function that burns an amount of the token of a given account, + /// deducting from the sender's allowance for said account. + /// @param from The account whose tokens will be burnt. + /// @param amount The amount that will be burnt. + /// @dev EVM selector for this function is: 0x79cc6790, + /// or in textual repr: burnFrom(address,uint256) + function burnFrom(address from, uint256 amount) external returns (bool); /// @dev Function that burns an amount of the token of a given account, /// deducting from the sender's allowance for said account. --- a/tests/src/eth/reFungible.test.ts +++ b/tests/src/eth/reFungible.test.ts @@ -74,7 +74,7 @@ const result = await contract.methods.mint(caller).send(); const tokenId = result.events.Transfer.returnValues.tokenId; - const tokenContract = await helper.ethNativeContract.rftTokenById(collectionId, tokenId, caller, true); + const tokenContract = await helper.ethNativeContract.rftTokenById(collectionId, tokenId, caller); await tokenContract.methods.repartition(2).send(); await tokenContract.methods.transfer(receiver, 1).send(); @@ -316,7 +316,7 @@ const address = helper.ethAddress.fromCollectionId(collection.collectionId); const contract = await helper.ethNativeContract.collection(address, 'rft'); - const rftToken = await helper.ethNativeContract.rftTokenById(token.collectionId, token.tokenId, owner, true); + const rftToken = await helper.ethNativeContract.rftTokenById(token.collectionId, token.tokenId, owner); { await rftToken.methods.approve(operator, 15n).send({from: owner}); --- a/tests/src/eth/reFungibleToken.test.ts +++ b/tests/src/eth/reFungibleToken.test.ts @@ -458,7 +458,7 @@ const result = await contract.methods.mint(caller).send(); const tokenId = result.events.Transfer.returnValues.tokenId; const tokenAddress = helper.ethAddress.fromTokenId(collectionId, tokenId); - const tokenContract = await helper.ethNativeContract.rftToken(tokenAddress, caller, true); + const tokenContract = await helper.ethNativeContract.rftToken(tokenAddress, caller); await tokenContract.methods.repartition(2).send(); await tokenContract.methods.transfer(receiver, 1).send(); --- a/tests/src/eth/util/playgrounds/unique.dev.ts +++ b/tests/src/eth/util/playgrounds/unique.dev.ts @@ -29,7 +29,6 @@ import refungibleAbi from '../../abi/reFungible.json'; import refungibleDeprecatedAbi from '../../abi/reFungibleDeprecated.json'; import refungibleTokenAbi from '../../abi/reFungibleToken.json'; -import refungibleTokenDeprecatedAbi from '../../abi/reFungibleTokenDeprecated.json'; import contractHelpersAbi from '../../abi/contractHelpers.json'; import {ICrossAccountId, TEthereumAccount} from '../../../util/playgrounds/types'; import {TCollectionMode} from '../../../util/playgrounds/types'; @@ -188,18 +187,17 @@ return this.collection(this.helper.ethAddress.fromCollectionId(collectionId), mode, caller, mergeDeprecated); } - async rftToken(address: string, caller?: string, mergeDeprecated = false) { + async rftToken(address: string, caller?: string) { const web3 = this.helper.getWeb3(); - let abi = mergeDeprecated ? [...refungibleTokenAbi, ...refungibleTokenDeprecatedAbi] : refungibleTokenAbi; - return unlimitedMoneyHack(new web3.eth.Contract(abi as any, address, { + return unlimitedMoneyHack(new web3.eth.Contract(refungibleTokenAbi as any, address, { gas: this.helper.eth.DEFAULT_GAS, gasPrice: await this.getGasPrice(), ...(caller ? {from: caller} : {}), })); } - rftTokenById(collectionId: number, tokenId: number, caller?: string, mergeDeprecated = false) { - return this.rftToken(this.helper.ethAddress.fromTokenId(collectionId, tokenId), caller, true); + rftTokenById(collectionId: number, tokenId: number, caller?: string) { + return this.rftToken(this.helper.ethAddress.fromTokenId(collectionId, tokenId), caller); } }