|
@@ -60,12 +60,24 @@ describe('SafeERC20', function () {
|
|
|
.withArgs(this.token);
|
|
|
});
|
|
|
|
|
|
+ it('returns false on trySafeTransfer', async function () {
|
|
|
+ await expect(this.mock.$trySafeTransfer(this.token, this.receiver, 0n))
|
|
|
+ .to.emit(this.mock, 'return$trySafeTransfer')
|
|
|
+ .withArgs(false);
|
|
|
+ });
|
|
|
+
|
|
|
it('reverts on transferFrom', async function () {
|
|
|
await expect(this.mock.$safeTransferFrom(this.token, this.mock, this.receiver, 0n))
|
|
|
.to.be.revertedWithCustomError(this.mock, 'SafeERC20FailedOperation')
|
|
|
.withArgs(this.token);
|
|
|
});
|
|
|
|
|
|
+ it('returns false on trySafeTransferFrom', async function () {
|
|
|
+ await expect(this.mock.$trySafeTransferFrom(this.token, this.mock, this.receiver, 0n))
|
|
|
+ .to.emit(this.mock, 'return$trySafeTransferFrom')
|
|
|
+ .withArgs(false);
|
|
|
+ });
|
|
|
+
|
|
|
it('reverts on increaseAllowance', async function () {
|
|
|
// Call to 'token.allowance' does not return any data, resulting in a decoding error (revert without reason)
|
|
|
await expect(this.mock.$safeIncreaseAllowance(this.token, this.spender, 0n)).to.be.revertedWithoutReason();
|
|
@@ -94,12 +106,24 @@ describe('SafeERC20', function () {
|
|
|
.withArgs(this.token);
|
|
|
});
|
|
|
|
|
|
+ it('returns false on trySafeTransfer', async function () {
|
|
|
+ await expect(this.mock.$trySafeTransfer(this.token, this.receiver, 0n))
|
|
|
+ .to.emit(this.mock, 'return$trySafeTransfer')
|
|
|
+ .withArgs(false);
|
|
|
+ });
|
|
|
+
|
|
|
it('reverts on transferFrom', async function () {
|
|
|
await expect(this.mock.$safeTransferFrom(this.token, this.mock, this.receiver, 0n))
|
|
|
.to.be.revertedWithCustomError(this.mock, 'SafeERC20FailedOperation')
|
|
|
.withArgs(this.token);
|
|
|
});
|
|
|
|
|
|
+ it('returns false on trySafeTransferFrom', async function () {
|
|
|
+ await expect(this.mock.$trySafeTransferFrom(this.token, this.mock, this.receiver, 0n))
|
|
|
+ .to.emit(this.mock, 'return$trySafeTransferFrom')
|
|
|
+ .withArgs(false);
|
|
|
+ });
|
|
|
+
|
|
|
it('reverts on increaseAllowance', async function () {
|
|
|
await expect(this.mock.$safeIncreaseAllowance(this.token, this.spender, 0n))
|
|
|
.to.be.revertedWithCustomError(this.mock, 'SafeERC20FailedOperation')
|
|
@@ -357,11 +381,23 @@ function shouldOnlyRevertOnErrors() {
|
|
|
.withArgs(this.mock, this.receiver, 10n);
|
|
|
});
|
|
|
|
|
|
+ it('returns true on trySafeTransfer', async function () {
|
|
|
+ await expect(this.mock.$trySafeTransfer(this.token, this.receiver, 10n))
|
|
|
+ .to.emit(this.mock, 'return$trySafeTransfer')
|
|
|
+ .withArgs(true);
|
|
|
+ });
|
|
|
+
|
|
|
it("doesn't revert on transferFrom", async function () {
|
|
|
await expect(this.mock.$safeTransferFrom(this.token, this.owner, this.receiver, 10n))
|
|
|
.to.emit(this.token, 'Transfer')
|
|
|
.withArgs(this.owner, this.receiver, 10n);
|
|
|
});
|
|
|
+
|
|
|
+ it('returns true on trySafeTransferFrom', async function () {
|
|
|
+ await expect(this.mock.$trySafeTransferFrom(this.token, this.owner, this.receiver, 10n))
|
|
|
+ .to.emit(this.mock, 'return$trySafeTransferFrom')
|
|
|
+ .withArgs(true);
|
|
|
+ });
|
|
|
});
|
|
|
|
|
|
describe('approvals', function () {
|