Socket
Socket
Sign inDemoInstall

reverse-mirage

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

reverse-mirage - npm Package Compare versions

Comparing version 1.0.0-next.1 to 1.0.0-next.2

src/decorator/publicActions.ts

451

dist/index.js

@@ -910,3 +910,3 @@ // src/amount/utils.ts

import { readContract } from "viem/contract";
var getERC20Decimals = (client, { erc20, ...request }, type) => type === void 0 ? readContract(client, {
var getERC20Decimals = (client, { erc20, ...request }) => readContract(client, {
abi: solmateErc20ABI,

@@ -916,15 +916,7 @@ address: erc20.address,

...request
}) : {
read: () => readContract(client, {
abi: solmateErc20ABI,
address: erc20.address,
functionName: "decimals",
...request
}),
parse: (data) => data
};
});
// src/erc20/publicActions/getERC20Name.ts
import { readContract as readContract2 } from "viem/contract";
var getERC20Name = (client, { erc20, ...request }, type) => type === void 0 ? readContract2(client, {
var getERC20Name = (client, { erc20, ...request }) => readContract2(client, {
abi: solmateErc20ABI,

@@ -934,15 +926,7 @@ address: erc20.address,

...request
}) : {
read: () => readContract2(client, {
abi: solmateErc20ABI,
address: erc20.address,
functionName: "name",
...request
}),
parse: (data) => data
};
});
// src/erc20/publicActions/getERC20Symbol.ts
import { readContract as readContract3 } from "viem/contract";
var getERC20Symbol = (client, { erc20, ...request }, type) => type === void 0 ? readContract3(client, {
var getERC20Symbol = (client, { erc20, ...request }) => readContract3(client, {
abi: solmateErc20ABI,

@@ -952,14 +936,6 @@ address: erc20.address,

...request
}) : {
read: () => readContract3(client, {
abi: solmateErc20ABI,
address: erc20.address,
functionName: "symbol",
...request
}),
parse: (data) => data
};
});
// src/erc20/publicActions/getERC20.ts
var getERC20 = (client, { erc20, ...request }, type) => type === void 0 ? Promise.all([
var getERC20 = (client, { erc20, ...request }) => Promise.all([
getERC20Name(client, { erc20, ...request }),

@@ -977,21 +953,7 @@ getERC20Symbol(client, { erc20, ...request }),

)
) : {
read: () => Promise.all([
getERC20Name(client, { erc20, ...request }, "select").read(),
getERC20Symbol(client, { erc20, ...request }, "select").read(),
getERC20Decimals(client, { erc20, ...request }, "select").read()
]),
parse: ([name, symbol, decimals]) => createERC20(
erc20.address,
name,
symbol,
decimals,
erc20.chainID,
erc20.blockCreated
)
};
);
// src/erc20/publicActions/getERC20Allowance.ts
import { readContract as readContract4 } from "viem/contract";
var getERC20Allowance = (client, { erc20, owner, spender, ...request }, type) => type === void 0 ? readContract4(client, {
var getERC20Allowance = (client, { erc20, owner, spender, ...request }) => readContract4(client, {
abi: solmateErc20ABI,

@@ -1002,16 +964,7 @@ address: erc20.address,

...request
}).then((data) => createAmountFromRaw(erc20, data)) : {
read: () => readContract4(client, {
abi: solmateErc20ABI,
address: erc20.address,
functionName: "allowance",
args: [owner, spender],
...request
}),
parse: (data) => createAmountFromRaw(erc20, data)
};
}).then((data) => createAmountFromRaw(erc20, data));
// src/erc20/publicActions/getERC20BalanceOf.ts
import { readContract as readContract5 } from "viem/contract";
var getERC20BalanceOf = (client, { erc20, address, ...request }, type) => type === void 0 ? readContract5(client, {
var getERC20BalanceOf = (client, { erc20, address, ...request }) => readContract5(client, {
abi: solmateErc20ABI,

@@ -1022,16 +975,7 @@ address: erc20.address,

...request
}).then((data) => createAmountFromRaw(erc20, data)) : {
read: () => readContract5(client, {
abi: solmateErc20ABI,
address: erc20.address,
functionName: "balanceOf",
args: [address],
...request
}),
parse: (data) => createAmountFromRaw(erc20, data)
};
}).then((data) => createAmountFromRaw(erc20, data));
// src/erc20/publicActions/getERC20DomainSeparator.ts
import { readContract as readContract6 } from "viem/contract";
var getERC20DomainSeparator = (client, { erc20, ...request }, type) => type === void 0 ? readContract6(client, {
var getERC20DomainSeparator = (client, { erc20, ...request }) => readContract6(client, {
abi: solmateErc20ABI,

@@ -1041,14 +985,6 @@ address: erc20.address,

...request
}) : {
read: () => readContract6(client, {
abi: solmateErc20ABI,
address: erc20.address,
functionName: "DOMAIN_SEPARATOR",
...request
}),
parse: (data) => data
};
});
// src/erc20/publicActions/getERC20Permit.ts
var getERC20Permit = (client, { erc20, ...request }, type) => type === void 0 ? Promise.all([
var getERC20Permit = (client, { erc20, ...request }) => Promise.all([
getERC20Name(client, { erc20, ...request }),

@@ -1067,22 +1003,7 @@ getERC20Symbol(client, { erc20, ...request }),

)
) : {
read: () => Promise.all([
getERC20Name(client, { erc20, ...request }, "select").read(),
getERC20Symbol(client, { erc20, ...request }, "select").read(),
getERC20Decimals(client, { erc20, ...request }, "select").read()
]),
parse: ([name, symbol, decimals]) => createERC20Permit(
erc20.address,
name,
symbol,
decimals,
erc20.version ?? "1",
erc20.chainID,
erc20.blockCreated
)
};
);
// src/erc20/publicActions/getERC20PermitData.ts
import { readContract as readContract7 } from "viem/contract";
var getERC20PermitData = (client, { erc20, address, ...request }, type) => type === void 0 ? Promise.all([
var getERC20PermitData = (client, { erc20, address, ...request }) => Promise.all([
readContract7(client, {

@@ -1104,25 +1025,7 @@ abi: solmateErc20ABI,

([balance, nonce]) => createERC20PermitDataFromRaw(erc20, balance, nonce)
) : {
read: () => Promise.all([
readContract7(client, {
abi: solmateErc20ABI,
address: erc20.address,
functionName: "balanceOf",
args: [address],
...request
}),
readContract7(client, {
abi: solmateErc20ABI,
address: erc20.address,
functionName: "nonces",
args: [address],
...request
})
]),
parse: ([balance, nonce]) => createERC20PermitDataFromRaw(erc20, balance, nonce)
};
);
// src/erc20/publicActions/getERC20PermitNonce.ts
import { readContract as readContract8 } from "viem/contract";
var getERC20PermitNonce = (client, { erc20, address, ...request }, type) => type === void 0 ? readContract8(client, {
var getERC20PermitNonce = (client, { erc20, address, ...request }) => readContract8(client, {
abi: solmateErc20ABI,

@@ -1133,16 +1036,7 @@ address: erc20.address,

...request
}) : {
read: () => readContract8(client, {
abi: solmateErc20ABI,
address: erc20.address,
functionName: "nonces",
args: [address],
...request
}),
parse: (data) => data
};
});
// src/erc20/publicActions/getERC20TotalSupply.ts
import { readContract as readContract9 } from "viem/contract";
var getERC20TotalSupply = (client, { erc20, ...request }, type) => type === void 0 ? readContract9(client, {
var getERC20TotalSupply = (client, { erc20, ...request }) => readContract9(client, {
abi: solmateErc20ABI,

@@ -1152,50 +1046,9 @@ address: erc20.address,

...request
}).then((data) => createAmountFromRaw(erc20, data)) : {
read: () => readContract9(client, {
abi: solmateErc20ABI,
address: erc20.address,
functionName: "totalSupply",
...request
}),
parse: (data) => createAmountFromRaw(erc20, data)
};
}).then((data) => createAmountFromRaw(erc20, data));
// src/erc20/publicActions/getIsERC20Permit.ts
var getIsERC20Permit = (client, { erc20, ...request }, type) => type === void 0 ? Promise.all([
var getIsERC20Permit = (client, { erc20, ...request }) => Promise.all([
getERC20Permit(client, { erc20, ...request }),
getERC20DomainSeparator(client, { erc20, ...request })
]).then(([erc202]) => erc202).catch(() => getERC20(client, { erc20, ...request })) : {
read: async () => {
try {
return await Promise.all([
getERC20Permit(client, { erc20, ...request }, "select").read(),
getERC20DomainSeparator(
client,
{ erc20, ...request },
"select"
).read()
]);
} catch {
return await Promise.all([
getERC20(client, { erc20, ...request }, "select").read()
]);
}
},
parse: (data) => data.length === 1 ? createERC20(
erc20.address,
data[0][0],
data[0][1],
data[0][2],
erc20.chainID,
erc20.blockCreated
) : createERC20Permit(
erc20.address,
data[0][0],
data[0][1],
data[0][2],
erc20.version ?? "1",
erc20.chainID,
erc20.blockCreated
)
};
]).then(([erc202]) => erc202).catch(() => getERC20(client, { erc20, ...request }));

@@ -1313,3 +1166,3 @@ // src/erc20/walletActions/signERC20Permit.ts

import { readContract as readContract10 } from "viem/contract";
var getERC721Name = (client, { erc721, ...request }, type) => type === void 0 ? readContract10(client, {
var getERC721Name = (client, { erc721, ...request }) => readContract10(client, {
abi: solmateErc721ABI,

@@ -1319,15 +1172,7 @@ address: erc721.address,

...request
}) : {
read: () => readContract10(client, {
abi: solmateErc721ABI,
address: erc721.address,
functionName: "name",
...request
}),
parse: (data) => data
};
});
// src/erc721/publicActions/getERC721Symbol.ts
import { readContract as readContract11 } from "viem/contract";
var getERC721Symbol = (client, { erc721, ...request }, type) => type === void 0 ? readContract11(client, {
var getERC721Symbol = (client, { erc721, ...request }) => readContract11(client, {
abi: solmateErc721ABI,

@@ -1337,14 +1182,6 @@ address: erc721.address,

...request
}) : {
read: () => readContract11(client, {
abi: solmateErc721ABI,
address: erc721.address,
functionName: "symbol",
...request
}),
parse: (data) => data
};
});
// src/erc721/publicActions/getERC721.ts
var getERC721 = (client, { erc721, ...request }, type) => type === void 0 ? Promise.all([
var getERC721 = (client, { erc721, ...request }) => Promise.all([
getERC721Name(client, { erc721, ...request }),

@@ -1360,19 +1197,7 @@ getERC721Symbol(client, { erc721, ...request })

)
) : {
read: () => Promise.all([
getERC721Name(client, { erc721, ...request }, "select").read(),
getERC721Symbol(client, { erc721, ...request }, "select").read()
]),
parse: ([name, symbol]) => createERC721(
erc721.address,
name,
symbol,
erc721.chainID,
erc721.blockCreated
)
};
);
// src/erc721/publicActions/getERC721Approved.ts
import { readContract as readContract12 } from "viem/contract";
var getERC721Approved = (client, { erc721, id, ...request }, type) => type === void 0 ? readContract12(client, {
var getERC721Approved = (client, { erc721, id, ...request }) => readContract12(client, {
abi: solmateErc721ABI,

@@ -1383,16 +1208,7 @@ address: erc721.address,

...request
}) : {
read: () => readContract12(client, {
abi: solmateErc721ABI,
address: erc721.address,
functionName: "getApproved",
args: [id],
...request
}),
parse: (data) => data
};
});
// src/erc721/publicActions/getERC721BalanceOf.ts
import { readContract as readContract13 } from "viem/contract";
var getERC721BalanceOf = (client, { erc721, address, ...request }, type) => type === void 0 ? readContract13(client, {
var getERC721BalanceOf = (client, { erc721, address, ...request }) => readContract13(client, {
abi: solmateErc721ABI,

@@ -1403,36 +1219,14 @@ address: erc721.address,

...request
}) : {
read: () => readContract13(client, {
abi: solmateErc721ABI,
address: erc721.address,
functionName: "balanceOf",
args: [address],
...request
}),
parse: (data) => data
};
});
// src/erc721/publicActions/getERC721Data.ts
var getERC721Data = (client, { erc721, address, ...request }, type) => type === void 0 ? getERC721BalanceOf(client, { erc721, address, ...request }).then(
(data) => {
if (data > Number.MAX_SAFE_INTEGER)
throw Error("balance exceeds maximum representable number");
return createERC721Data(erc721, Number(data));
}
) : {
read: () => getERC721BalanceOf(
client,
{ erc721, address, ...request },
"select"
).read(),
parse: (data) => {
if (data > Number.MAX_SAFE_INTEGER)
throw Error("balance exceeds maximum representable number");
return createERC721Data(erc721, Number(data));
}
};
var getERC721Data = (client, { erc721, address, ...request }) => getERC721BalanceOf(client, { erc721, address, ...request }).then((data) => {
if (data > Number.MAX_SAFE_INTEGER)
throw Error("balance exceeds maximum representable number");
return createERC721Data(erc721, Number(data));
});
// src/erc721/publicActions/getERC721IsApprovedForAll.ts
import { readContract as readContract14 } from "viem/contract";
var getERC721IsApprovedForAll = (client, { erc721, owner, spender, ...request }, type) => type === void 0 ? readContract14(client, {
var getERC721IsApprovedForAll = (client, { erc721, owner, spender, ...request }) => readContract14(client, {
abi: solmateErc721ABI,

@@ -1443,16 +1237,7 @@ address: erc721.address,

...request
}) : {
read: () => readContract14(client, {
abi: solmateErc721ABI,
address: erc721.address,
functionName: "isApprovedForAll",
args: [owner, spender],
...request
}),
parse: (data) => data
};
});
// src/erc721/publicActions/getERC721OwnerOf.ts
import { readContract as readContract15 } from "viem/contract";
var getERC721OwnerOf = (client, { erc721, id, ...request }, type) => type === void 0 ? readContract15(client, {
var getERC721OwnerOf = (client, { erc721, id, ...request }) => readContract15(client, {
abi: solmateErc721ABI,

@@ -1463,16 +1248,7 @@ address: erc721.address,

...request
}) : {
read: () => readContract15(client, {
abi: solmateErc721ABI,
address: erc721.address,
functionName: "ownerOf",
args: [id],
...request
}),
parse: (data) => data
};
});
// src/erc721/publicActions/getERC721SupportsInterface.ts
import { readContract as readContract16 } from "viem/contract";
var getERC721SupportsInterface = (client, { erc721, interfaceID, ...request }, type) => type === void 0 ? readContract16(client, {
var getERC721SupportsInterface = (client, { erc721, interfaceID, ...request }) => readContract16(client, {
abi: solmateErc721ABI,

@@ -1483,16 +1259,7 @@ address: erc721.address,

...request
}) : {
read: () => readContract16(client, {
abi: solmateErc721ABI,
address: erc721.address,
functionName: "supportsInterface",
args: [interfaceID],
...request
}),
parse: (data) => data
};
});
// src/erc721/publicActions/getERC721TokenURI.ts
import { readContract as readContract17 } from "viem/contract";
var getERC721TokenURI = (client, { erc721, id, ...request }, type) => type === void 0 ? readContract17(client, {
var getERC721TokenURI = (client, { erc721, id, ...request }) => readContract17(client, {
abi: solmateErc721ABI,

@@ -1503,12 +1270,3 @@ address: erc721.address,

...request
}) : {
read: () => readContract17(client, {
abi: solmateErc721ABI,
address: erc721.address,
functionName: "tokenURI",
args: [id],
...request
}),
parse: (data) => data
};
});

@@ -1597,3 +1355,3 @@ // src/erc721/walletActions/simulateERC721Transfer.ts

import { readContract as readContract18 } from "viem/contract";
var getERC1155 = (client, { erc1155, ...request }, type) => type === void 0 ? readContract18(client, {
var getERC1155 = (client, { erc1155, ...request }) => readContract18(client, {
abi: solmateErc1155ABI,

@@ -1612,22 +1370,7 @@ address: erc1155.address,

)
) : {
read: () => readContract18(client, {
abi: solmateErc1155ABI,
address: erc1155.address,
functionName: "uri",
args: [erc1155.id],
...request
}),
parse: (data) => createERC1155(
erc1155.address,
erc1155.id,
data,
erc1155.chainID,
erc1155.blockCreated
)
};
);
// src/erc1155/publicActions/getERC1155BalanceOf.ts
import { readContract as readContract19 } from "viem/contract";
var getERC1155BalanceOf = (client, { erc1155, address, ...request }, type) => type === void 0 ? readContract19(client, {
var getERC1155BalanceOf = (client, { erc1155, address, ...request }) => readContract19(client, {
abi: solmateErc1155ABI,

@@ -1638,16 +1381,7 @@ address: erc1155.address,

...request
}).then((data) => createERC1155Data(erc1155, data)) : {
read: () => readContract19(client, {
abi: solmateErc1155ABI,
address: erc1155.address,
functionName: "balanceOf",
args: [address, erc1155.id],
...request
}),
parse: (data) => createERC1155Data(erc1155, data)
};
}).then((data) => createERC1155Data(erc1155, data));
// src/erc1155/publicActions/getERC1155IsApprovedForAll.ts
import { readContract as readContract20 } from "viem/contract";
var getERC1155IsApprovedForAll = (client, { erc1155, owner, spender, ...request }, type) => type === void 0 ? readContract20(client, {
var getERC1155IsApprovedForAll = (client, { erc1155, owner, spender, ...request }) => readContract20(client, {
abi: solmateErc1155ABI,

@@ -1658,16 +1392,7 @@ address: erc1155.address,

...request
}) : {
read: () => readContract20(client, {
abi: solmateErc1155ABI,
address: erc1155.address,
functionName: "isApprovedForAll",
args: [owner, spender],
...request
}),
parse: (data) => data
};
});
// src/erc1155/publicActions/getERC1155URI.ts
import { readContract as readContract21 } from "viem/contract";
var getERC1155URI = (client, { erc1155, ...request }, type) => type === void 0 ? readContract21(client, {
var getERC1155URI = (client, { erc1155, ...request }) => readContract21(client, {
abi: solmateErc1155ABI,

@@ -1678,12 +1403,3 @@ address: erc1155.address,

...request
}) : {
read: () => readContract21(client, {
abi: solmateErc1155ABI,
address: erc1155.address,
functionName: "uri",
args: [erc1155.id],
...request
}),
parse: (data) => data
};
});

@@ -1821,8 +1537,5 @@ // src/erc1155/walletActions/simulateERC1155Transfer.ts

...request
}, type) => type === void 0 ? getBalance(client, { address, ...request }).then(
}) => getBalance(client, { address, ...request }).then(
(data) => createAmountFromRaw(nativeCurrency, data)
) : {
read: () => getBalance(client, { address, ...request }),
parse: (data) => createAmountFromRaw(nativeCurrency, data)
};
);

@@ -2001,2 +1714,50 @@ // src/price/utils.ts

});
// src/decorator/publicActions.ts
var publicActionReverseMirage = (client) => ({
getNativeBalance: (args) => getNativeBalance(client, args),
getERC20: (args) => getERC20(client, args),
getERC20Allowance: (args) => getERC20Allowance(client, args),
getERC20BalanceOf: (args) => getERC20BalanceOf(client, args),
getERC20TotalSupply: (args) => getERC20TotalSupply(client, args),
getERC20Name: (args) => getERC20Name(client, args),
getERC20Symbol: (args) => getERC20Symbol(client, args),
getERC20Decimals: (args) => getERC20Decimals(client, args),
getERC20DomainSeparator: (args) => getERC20DomainSeparator(client, args),
getERC20Permit: (args) => getERC20Permit(client, args),
getERC20PermitNonce: (args) => getERC20PermitNonce(client, args),
getERC20PermitData: (args) => getERC20PermitData(client, args),
getIsERC20Permit: (args) => getIsERC20Permit(client, args),
getERC721: (args) => getERC721(client, args),
getERC721Approved: (args) => getERC721Approved(client, args),
getERC721BalanceOf: (args) => getERC721BalanceOf(client, args),
getERC721OwnerOf: (args) => getERC721OwnerOf(client, args),
getERC721Data: (args) => getERC721Data(client, args),
getERC721Name: (args) => getERC721Name(client, args),
getERC721Symbol: (args) => getERC721Symbol(client, args),
getERC721TokenURI: (args) => getERC721TokenURI(client, args),
getERC721IsApprovedForAll: (args) => getERC721IsApprovedForAll(client, args),
getERC721SupportsInterface: (args) => getERC721SupportsInterface(client, args),
getERC1155: (args) => getERC1155(client, args),
getERC1155BalanceOf: (args) => getERC1155BalanceOf(client, args),
getERC1155IsApprovedForAll: (args) => getERC1155IsApprovedForAll(client, args),
getERC1155URI: (args) => getERC1155URI(client, args),
simulateWETHDeposit: (args) => simulateWETHDeposit(client, args),
simulateWETHWithdraw: (args) => simulateWETHWithdraw(client, args),
simulateERC20Approve: (args) => simulateERC20Approve(client, args),
simulateERC20Permit: (args) => simulateERC20Permit(client, args),
simulateERC20Transfer: (args) => simulateERC20Transfer(client, args),
simulateERC20TransferFrom: (args) => simulateERC20TransferFrom(client, args),
simulateERC721Approve: (args) => simulateERC721Approve(client, args),
simulateERC721SetApprovalForAll: (args) => simulateERC721SetApprovalForAll(client, args),
simulateERC721Transfer: (args) => simulateERC721Transfer(client, args),
simulateERC1155SetApprovalForAll: (args) => simulateERC1155SetApprovalForAll(client, args),
simulateERC1155Transfer: (args) => simulateERC1155Transfer(client, args),
simulateERC1155TransferBatch: (args) => simulateERC1155TransferBatch(client, args)
});
// src/decorator/walletActions.ts
var walletActionReverseMirage = (client) => ({
signERC20Permit: (args) => signERC20Permit(client, args)
});
export {

@@ -2094,2 +1855,3 @@ PermitType,

priceToNumber,
publicActionReverseMirage,
rawPrice,

@@ -2113,4 +1875,5 @@ sepoliaTokens,

solmateErc721ABI as solmateERC721ABI,
walletActionReverseMirage,
weth9ABI
};
//# sourceMappingURL=index.js.map
{
"name": "reverse-mirage",
"version": "1.0.0-next.1",
"version": "1.0.0-next.2",
"description": "Application level typescript utilities for Ethereum",

@@ -5,0 +5,0 @@ "type": "module",

import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { readContract } from "viem/contract";
import { solmateErc1155ABI as solmateERC1155ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC1155 } from "../types.js";

@@ -18,43 +17,20 @@ import { createERC1155 } from "../utils.js";

export const getERC1155 = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC1155 = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc1155, ...request }: GetERC1155Parameters,
type?: T,
): ReverseMirage<string, GetERC1155ReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "uri",
args: [erc1155.id],
...request,
}).then((data) =>
createERC1155(
erc1155.address,
erc1155.id,
data,
erc1155.chainID,
erc1155.blockCreated,
),
)
: {
read: () =>
readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "uri",
args: [erc1155.id],
...request,
}),
parse: (data) =>
createERC1155(
erc1155.address,
erc1155.id,
data,
erc1155.chainID,
erc1155.blockCreated,
),
}) as ReverseMirage<string, GetERC1155ReturnType, T>;
): Promise<GetERC1155ReturnType> =>
readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "uri",
args: [erc1155.id],
...request,
}).then((data) =>
createERC1155(
erc1155.address,
erc1155.id,
data,
erc1155.chainID,
erc1155.blockCreated,
),
);

@@ -10,3 +10,2 @@ import type {

import { solmateErc1155ABI as solmateERC1155ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC1155, ERC1155Data } from "../types.js";

@@ -26,26 +25,12 @@ import { createERC1155Data } from "../utils.js";

TERC1155 extends BaseERC1155,
T extends "select" | undefined,
>(
client: Client<Transport, TChain>,
{ erc1155, address, ...request }: GetERC1155BalanceOfParameters<TERC1155>,
type?: T,
): ReverseMirage<bigint, GetERC1155BalanceOfReturnType<TERC1155>, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "balanceOf",
args: [address, erc1155.id],
...request,
}).then((data) => createERC1155Data(erc1155, data))
: {
read: () =>
readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "balanceOf",
args: [address, erc1155.id],
...request,
}),
parse: (data) => createERC1155Data(erc1155, data),
}) as ReverseMirage<bigint, GetERC1155BalanceOfReturnType<TERC1155>, T>;
): Promise<GetERC1155BalanceOfReturnType<TERC1155>> =>
readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "balanceOf",
args: [address, erc1155.id],
...request,
}).then((data) => createERC1155Data(erc1155, data));

@@ -10,3 +10,2 @@ import type {

import { solmateErc1155ABI as solmateERC1155ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC1155 } from "../types.js";

@@ -21,28 +20,12 @@

export const getERC1155IsApprovedForAll = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC1155IsApprovedForAll = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc1155, owner, spender, ...request }: GetERC1155IsApprovedForAllParameters,
type?: T,
): ReverseMirage<boolean, GetERC1155IsApprovedForAllReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "isApprovedForAll",
args: [owner, spender],
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "isApprovedForAll",
args: [owner, spender],
...request,
}),
parse: (data) => data,
}) as ReverseMirage<boolean, GetERC1155IsApprovedForAllReturnType, T>;
): Promise<GetERC1155IsApprovedForAllReturnType> =>
readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "isApprovedForAll",
args: [owner, spender],
...request,
});
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { readContract } from "viem/contract";
import { solmateErc1155ABI as solmateERC1155ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC1155 } from "../types.js";

@@ -14,28 +13,12 @@

export const getERC1155URI = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC1155URI = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc1155, ...request }: GetERC1155URIParameters,
type?: T,
): ReverseMirage<string, GetERC1155URIReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "uri",
args: [erc1155.id],
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "uri",
args: [erc1155.id],
...request,
}),
parse: (data) => data,
}) as ReverseMirage<string, GetERC1155URIReturnType, T>;
): Promise<GetERC1155URIReturnType> =>
readContract(client, {
abi: solmateERC1155ABI,
address: erc1155.address,
functionName: "uri",
args: [erc1155.id],
...request,
});
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC20, ERC20 } from "../types.js";

@@ -20,41 +19,19 @@ import { createERC20 } from "../utils.js";

export const getERC20 = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC20 = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc20, ...request }: GetERC20Parameters,
type?: T,
): ReverseMirage<[string, string, number], GetERC20ReturnType, T> =>
(type === undefined
? Promise.all([
getERC20Name(client, { erc20, ...request }),
getERC20Symbol(client, { erc20, ...request }),
getERC20Decimals(client, { erc20, ...request }),
]).then(([name, symbol, decimals]) =>
createERC20(
erc20.address,
name,
symbol,
decimals,
erc20.chainID,
erc20.blockCreated,
),
)
: {
read: () =>
Promise.all([
getERC20Name(client, { erc20, ...request }, "select").read(),
getERC20Symbol(client, { erc20, ...request }, "select").read(),
getERC20Decimals(client, { erc20, ...request }, "select").read(),
]),
parse: ([name, symbol, decimals]) =>
createERC20(
erc20.address,
name,
symbol,
decimals,
erc20.chainID,
erc20.blockCreated,
),
}) as ReverseMirage<[string, string, number], GetERC20ReturnType, T>;
): Promise<GetERC20ReturnType> =>
Promise.all([
getERC20Name(client, { erc20, ...request }),
getERC20Symbol(client, { erc20, ...request }),
getERC20Decimals(client, { erc20, ...request }),
]).then(([name, symbol, decimals]) =>
createERC20(
erc20.address,
name,
symbol,
decimals,
erc20.chainID,
erc20.blockCreated,
),
);

@@ -11,3 +11,2 @@ import type {

import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC20, ERC20Amount } from "../types.js";

@@ -26,26 +25,12 @@

TERC20 extends BaseERC20,
T extends "select" | undefined,
>(
client: Client<Transport, TChain>,
{ erc20, owner, spender, ...request }: GetERC20AllowanceParameters<TERC20>,
type?: T,
): ReverseMirage<bigint, GetERC20AllowanceReturnType<TERC20>, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "allowance",
args: [owner, spender],
...request,
}).then((data) => createAmountFromRaw(erc20, data))
: {
read: () =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "allowance",
args: [owner, spender],
...request,
}),
parse: (data) => createAmountFromRaw(erc20, data),
}) as ReverseMirage<bigint, GetERC20AllowanceReturnType<TERC20>, T>;
): Promise<GetERC20AllowanceReturnType<TERC20>> =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "allowance",
args: [owner, spender],
...request,
}).then((data) => createAmountFromRaw(erc20, data));

@@ -11,3 +11,2 @@ import type {

import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC20, ERC20Amount } from "../types.js";

@@ -26,26 +25,12 @@

TERC20 extends BaseERC20,
T extends "select" | undefined,
>(
client: Client<Transport, TChain>,
{ erc20, address, ...request }: GetERC20BalanceOfParameters<TERC20>,
type?: T,
): ReverseMirage<bigint, GetERC20BalanceOfReturnType<TERC20>, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "balanceOf",
args: [address],
...request,
}).then((data) => createAmountFromRaw(erc20, data))
: {
read: () =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "balanceOf",
args: [address],
...request,
}),
parse: (data) => createAmountFromRaw(erc20, data),
}) as ReverseMirage<bigint, GetERC20BalanceOfReturnType<TERC20>, T>;
): Promise<GetERC20BalanceOfReturnType<TERC20>> =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "balanceOf",
args: [address],
...request,
}).then((data) => createAmountFromRaw(erc20, data));
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { readContract } from "viem/contract";
import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC20 } from "../types.js";

@@ -14,26 +13,11 @@

export const getERC20Decimals = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC20Decimals = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc20, ...request }: GetERC20DecimalsParameters,
type?: T,
): ReverseMirage<number, GetERC20DecimalsReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "decimals",
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "decimals",
...request,
}),
parse: (data) => data,
}) as ReverseMirage<number, GetERC20DecimalsReturnType, T>;
): Promise<GetERC20DecimalsReturnType> =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "decimals",
...request,
});

@@ -10,3 +10,2 @@ import type {

import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC20 } from "../types.js";

@@ -21,26 +20,11 @@

export const getERC20DomainSeparator = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC20DomainSeparator = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc20, ...request }: GetERC20DomainSeparatorParameters,
type?: T,
): ReverseMirage<Hex, GetERC20DomainSeparatorReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "DOMAIN_SEPARATOR",
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "DOMAIN_SEPARATOR",
...request,
}),
parse: (data) => data,
}) as ReverseMirage<Hex, GetERC20DomainSeparatorReturnType, T>;
): Promise<GetERC20DomainSeparatorReturnType> =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "DOMAIN_SEPARATOR",
...request,
});
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { readContract } from "viem/contract";
import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC20 } from "../types.js";

@@ -14,26 +13,11 @@

export const getERC20Name = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC20Name = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc20, ...request }: GetERC20NameParameters,
type?: T,
): ReverseMirage<string, GetERC20NameReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "name",
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "name",
...request,
}),
parse: (data) => data,
}) as ReverseMirage<string, GetERC20NameReturnType, T>;
): Promise<GetERC20NameReturnType> =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "name",
...request,
});
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { ERC20Permit } from "../types.js";

@@ -20,47 +19,20 @@ import { createERC20Permit } from "../utils.js";

export const getERC20Permit = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC20Permit = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc20, ...request }: GetERC20PermitParameters,
type?: T,
): ReverseMirage<[string, string, number], GetERC20PermitReturnType, T> =>
(type === undefined
? Promise.all([
getERC20Name(client, { erc20, ...request }),
getERC20Symbol(client, { erc20, ...request }),
getERC20Decimals(client, { erc20, ...request }),
]).then(([name, symbol, decimals]) =>
createERC20Permit(
erc20.address,
name,
symbol,
decimals,
erc20.version ?? "1",
erc20.chainID,
erc20.blockCreated,
),
)
: {
read: () =>
Promise.all([
getERC20Name(client, { erc20, ...request }, "select").read(),
getERC20Symbol(client, { erc20, ...request }, "select").read(),
getERC20Decimals(client, { erc20, ...request }, "select").read(),
]),
parse: ([name, symbol, decimals]) =>
createERC20Permit(
erc20.address,
name,
symbol,
decimals,
erc20.version ?? "1",
erc20.chainID,
erc20.blockCreated,
),
}) as ReverseMirage<
[string, string, number],
GetERC20PermitReturnType,
T
>;
): Promise<GetERC20PermitReturnType> =>
Promise.all([
getERC20Name(client, { erc20, ...request }),
getERC20Symbol(client, { erc20, ...request }),
getERC20Decimals(client, { erc20, ...request }),
]).then(([name, symbol, decimals]) =>
createERC20Permit(
erc20.address,
name,
symbol,
decimals,
erc20.version ?? "1",
erc20.chainID,
erc20.blockCreated,
),
);

@@ -10,3 +10,2 @@ import type {

import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { ERC20Permit, ERC20PermitData } from "../types.js";

@@ -26,51 +25,23 @@ import { createERC20PermitDataFromRaw } from "../utils.js";

TERC20 extends ERC20Permit,
T extends "select" | undefined,
>(
client: Client<Transport, TChain>,
{ erc20, address, ...request }: GetERC20PermitDataParameters<TERC20>,
type?: T,
): ReverseMirage<[bigint, bigint], GetERC20PermitDataReturnType<TERC20>, T> =>
(type === undefined
? Promise.all([
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "balanceOf",
args: [address],
...request,
}),
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "nonces",
args: [address],
...request,
}),
]).then(([balance, nonce]) =>
createERC20PermitDataFromRaw(erc20, balance, nonce),
)
: {
read: () =>
Promise.all([
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "balanceOf",
args: [address],
...request,
}),
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "nonces",
args: [address],
...request,
}),
]),
parse: ([balance, nonce]) =>
createERC20PermitDataFromRaw(erc20, balance, nonce),
}) as ReverseMirage<
[bigint, bigint],
GetERC20PermitDataReturnType<TERC20>,
T
>;
): Promise<GetERC20PermitDataReturnType<TERC20>> =>
Promise.all([
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "balanceOf",
args: [address],
...request,
}),
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "nonces",
args: [address],
...request,
}),
]).then(([balance, nonce]) =>
createERC20PermitDataFromRaw(erc20, balance, nonce),
);

@@ -10,3 +10,2 @@ import type {

import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { ERC20Permit } from "../types.js";

@@ -21,28 +20,12 @@

export const getERC20PermitNonce = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC20PermitNonce = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc20, address, ...request }: GetERC20PermitNonceParameters,
type?: T,
): ReverseMirage<bigint, GetERC20PermitNonceReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "nonces",
args: [address],
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "nonces",
args: [address],
...request,
}),
parse: (data) => data,
}) as ReverseMirage<bigint, GetERC20PermitNonceReturnType, T>;
): Promise<GetERC20PermitNonceReturnType> =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "nonces",
args: [address],
...request,
});
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { readContract } from "viem/contract";
import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC20 } from "../types.js";

@@ -14,26 +13,11 @@

export const getERC20Symbol = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC20Symbol = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc20, ...request }: GetERC20SymbolParameters,
type?: T,
): ReverseMirage<string, GetERC20SymbolReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "symbol",
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "symbol",
...request,
}),
parse: (data: string) => data,
}) as ReverseMirage<string, GetERC20SymbolReturnType, T>;
): Promise<GetERC20SymbolReturnType> =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "symbol",
...request,
});

@@ -5,3 +5,2 @@ import type { Chain, Client, ReadContractParameters, Transport } from "viem";

import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC20, ERC20Amount } from "../types.js";

@@ -20,24 +19,11 @@

TERC20 extends BaseERC20,
T extends "select" | undefined,
>(
client: Client<Transport, TChain>,
{ erc20, ...request }: GetERC20TotalSupplyParameters<TERC20>,
type?: T,
): ReverseMirage<bigint, GetERC20TotalSupplyReturnType<TERC20>, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "totalSupply",
...request,
}).then((data) => createAmountFromRaw(erc20, data))
: {
read: () =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "totalSupply",
...request,
}),
parse: (data) => createAmountFromRaw(erc20, data),
}) as ReverseMirage<bigint, GetERC20TotalSupplyReturnType<TERC20>, T>;
): Promise<GetERC20TotalSupplyReturnType<TERC20>> =>
readContract(client, {
abi: solmateERC20ABI,
address: erc20.address,
functionName: "totalSupply",
...request,
}).then((data) => createAmountFromRaw(erc20, data));

@@ -1,12 +0,4 @@

import type {
Chain,
Client,
Hex,
ReadContractParameters,
Transport,
} from "viem";
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { solmateErc20ABI as solmateERC20ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC20, ERC20, ERC20Permit } from "../types.js";
import { createERC20, createERC20Permit } from "../utils.js";
import { getERC20 } from "./getERC20.js";

@@ -32,61 +24,11 @@ import { getERC20DomainSeparator } from "./getERC20DomainSeparator.js";

*/
export const getIsERC20Permit = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getIsERC20Permit = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc20, ...request }: GetIsERC20PermitParameters,
type?: T,
): ReverseMirage<
[[string, string, number], Hex] | [[string, string, number]],
GetIsERC20PermitReturnType,
T
> =>
(type === undefined
? Promise.all([
getERC20Permit(client, { erc20, ...request }),
getERC20DomainSeparator(client, { erc20, ...request }),
])
.then(([erc20]) => erc20)
.catch(() => getERC20(client, { erc20, ...request }))
: {
read: async () => {
try {
return await Promise.all([
getERC20Permit(client, { erc20, ...request }, "select").read(),
getERC20DomainSeparator(
client,
{ erc20, ...request },
"select",
).read(),
]);
} catch {
return await Promise.all([
getERC20(client, { erc20, ...request }, "select").read(),
]);
}
},
parse: (data) =>
data.length === 1
? createERC20(
erc20.address,
data[0][0],
data[0][1],
data[0][2],
erc20.chainID,
erc20.blockCreated,
)
: createERC20Permit(
erc20.address,
data[0][0],
data[0][1],
data[0][2],
erc20.version ?? "1",
erc20.chainID,
erc20.blockCreated,
),
}) as ReverseMirage<
[[string, string, number], Hex] | [[string, string, number]],
GetIsERC20PermitReturnType,
T
>;
): Promise<GetIsERC20PermitReturnType> =>
Promise.all([
getERC20Permit(client, { erc20, ...request }),
getERC20DomainSeparator(client, { erc20, ...request }),
])
.then(([erc20]) => erc20)
.catch(() => getERC20(client, { erc20, ...request }));
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { solmateErc721ABI as solmateERC721ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC721 } from "../types.js";

@@ -19,37 +18,17 @@ import { createERC721 } from "../utils.js";

export const getERC721 = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC721 = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc721, ...request }: GetERC721Parameters,
type?: T,
): ReverseMirage<[string, string], GetERC721ReturnType, T> =>
(type === undefined
? Promise.all([
getERC721Name(client, { erc721, ...request }),
getERC721Symbol(client, { erc721, ...request }),
]).then(([name, symbol]) =>
createERC721(
erc721.address,
name,
symbol,
erc721.chainID,
erc721.blockCreated,
),
)
: {
read: () =>
Promise.all([
getERC721Name(client, { erc721, ...request }, "select").read(),
getERC721Symbol(client, { erc721, ...request }, "select").read(),
]),
parse: ([name, symbol]) =>
createERC721(
erc721.address,
name,
symbol,
erc721.chainID,
erc721.blockCreated,
),
}) as ReverseMirage<[string, string], GetERC721ReturnType, T>;
): Promise<GetERC721ReturnType> =>
Promise.all([
getERC721Name(client, { erc721, ...request }),
getERC721Symbol(client, { erc721, ...request }),
]).then(([name, symbol]) =>
createERC721(
erc721.address,
name,
symbol,
erc721.chainID,
erc721.blockCreated,
),
);

@@ -10,3 +10,2 @@ import type {

import { solmateErc721ABI as solmateERC721ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC721 } from "../types.js";

@@ -21,28 +20,12 @@

export const getERC721Approved = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC721Approved = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc721, id, ...request }: GetERC721ApprovedParameters,
type?: T,
): ReverseMirage<Address, GetERC721ApprovedReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "getApproved",
args: [id],
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "getApproved",
args: [id],
...request,
}),
parse: (data) => data,
}) as ReverseMirage<Address, GetERC721ApprovedReturnType, T>;
): Promise<GetERC721ApprovedReturnType> =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "getApproved",
args: [id],
...request,
});

@@ -10,3 +10,2 @@ import type {

import { solmateErc721ABI as solmateERC721ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC721 } from "../types.js";

@@ -21,28 +20,12 @@

export const getERC721BalanceOf = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC721BalanceOf = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc721, address, ...request }: GetERC721BalanceOfParameters,
type?: T,
): ReverseMirage<bigint, GetERC721BalanceOfReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "balanceOf",
args: [address],
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "balanceOf",
args: [address],
...request,
}),
parse: (data) => data,
}) as ReverseMirage<bigint, GetERC721BalanceOfReturnType, T>;
): Promise<GetERC721BalanceOfReturnType> =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "balanceOf",
args: [address],
...request,
});

@@ -9,3 +9,2 @@ import type {

import { solmateErc721ABI as solmateERC721ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC721, ERC721Data } from "../types.js";

@@ -26,28 +25,10 @@ import { createERC721Data } from "../utils.js";

TERC721 extends BaseERC721,
T extends "select" | undefined,
>(
client: Client<Transport, TChain>,
{ erc721, address, ...request }: GetERC721DataParameters<TERC721>,
type?: T,
): ReverseMirage<bigint, GetERC721DataReturnType<TERC721>, T> =>
(type === undefined
? getERC721BalanceOf(client, { erc721, address, ...request }).then(
(data) => {
if (data > Number.MAX_SAFE_INTEGER)
throw Error("balance exceeds maximum representable number");
return createERC721Data(erc721, Number(data));
},
)
: {
read: () =>
getERC721BalanceOf(
client,
{ erc721, address, ...request },
"select",
).read(),
parse: (data) => {
if (data > Number.MAX_SAFE_INTEGER)
throw Error("balance exceeds maximum representable number");
return createERC721Data(erc721, Number(data));
},
}) as ReverseMirage<bigint, GetERC721DataReturnType<TERC721>, T>;
): Promise<GetERC721DataReturnType<TERC721>> =>
getERC721BalanceOf(client, { erc721, address, ...request }).then((data) => {
if (data > Number.MAX_SAFE_INTEGER)
throw Error("balance exceeds maximum representable number");
return createERC721Data(erc721, Number(data));
});

@@ -10,3 +10,2 @@ import type {

import { solmateErc721ABI as solmateERC721ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC721 } from "../types.js";

@@ -21,28 +20,12 @@

export const getERC721IsApprovedForAll = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC721IsApprovedForAll = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc721, owner, spender, ...request }: GetERC721IsApprovedForAllParameters,
type?: T,
): ReverseMirage<boolean, GetERC721IsApprovedForAllReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "isApprovedForAll",
args: [owner, spender],
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "isApprovedForAll",
args: [owner, spender],
...request,
}),
parse: (data) => data,
}) as ReverseMirage<boolean, GetERC721IsApprovedForAllReturnType, T>;
): Promise<GetERC721IsApprovedForAllReturnType> =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "isApprovedForAll",
args: [owner, spender],
...request,
});
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { readContract } from "viem/contract";
import { solmateErc721ABI as solmateERC721ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC721 } from "../types.js";

@@ -14,26 +13,11 @@

export const getERC721Name = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC721Name = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc721, ...request }: GetERC721NameParameters,
type?: T,
): ReverseMirage<string, GetERC721NameReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "name",
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "name",
...request,
}),
parse: (data) => data,
}) as ReverseMirage<string, GetERC721NameReturnType, T>;
): Promise<GetERC721NameReturnType> =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "name",
...request,
});

@@ -10,3 +10,2 @@ import type {

import { solmateErc721ABI as solmateERC721ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC721 } from "../types.js";

@@ -21,28 +20,12 @@

export const getERC721OwnerOf = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC721OwnerOf = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc721, id, ...request }: GetERC721OwnerOfParameters,
type?: T,
): ReverseMirage<Address, GetERC721OwnerOfReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "ownerOf",
args: [id],
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "ownerOf",
args: [id],
...request,
}),
parse: (data) => data,
}) as ReverseMirage<Address, GetERC721OwnerOfReturnType, T>;
): Promise<GetERC721OwnerOfReturnType> =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "ownerOf",
args: [id],
...request,
});

@@ -10,3 +10,2 @@ import type {

import { solmateErc721ABI as solmateERC721ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC721 } from "../types.js";

@@ -21,28 +20,12 @@

export const getERC721SupportsInterface = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC721SupportsInterface = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc721, interfaceID, ...request }: GetERC721SupportsInterfaceParameters,
type?: T,
): ReverseMirage<boolean, GetERC721SupportsInterfaceReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "supportsInterface",
args: [interfaceID],
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "supportsInterface",
args: [interfaceID],
...request,
}),
parse: (data) => data,
}) as ReverseMirage<boolean, GetERC721SupportsInterfaceReturnType, T>;
): Promise<GetERC721SupportsInterfaceReturnType> =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "supportsInterface",
args: [interfaceID],
...request,
});
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { readContract } from "viem/contract";
import { solmateErc721ABI as solmateERC721ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC721 } from "../types.js";

@@ -14,26 +13,11 @@

export const getERC721Symbol = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC721Symbol = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc721, ...request }: GetERC721SymbolParameters,
type?: T,
): ReverseMirage<string, GetERC721SymbolReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "symbol",
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "symbol",
...request,
}),
parse: (data) => data,
}) as ReverseMirage<string, GetERC721SymbolReturnType, T>;
): Promise<GetERC721SymbolReturnType> =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "symbol",
...request,
});
import type { Chain, Client, ReadContractParameters, Transport } from "viem";
import { readContract } from "viem/contract";
import { solmateErc721ABI as solmateERC721ABI } from "../../generated.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { BaseERC721 } from "../types.js";

@@ -14,28 +13,12 @@

export const getERC721TokenURI = <
TChain extends Chain | undefined,
T extends "select" | undefined,
>(
export const getERC721TokenURI = <TChain extends Chain | undefined,>(
client: Client<Transport, TChain>,
{ erc721, id, ...request }: GetERC721TokenURIParameters,
type?: T,
): ReverseMirage<string, GetERC721TokenURIReturnType, T> =>
(type === undefined
? readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "tokenURI",
args: [id],
...request,
})
: {
read: () =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "tokenURI",
args: [id],
...request,
}),
parse: (data) => data,
}) as ReverseMirage<string, GetERC721TokenURIReturnType, T>;
): Promise<GetERC721TokenURIReturnType> =>
readContract(client, {
abi: solmateERC721ABI,
address: erc721.address,
functionName: "tokenURI",
args: [id],
...request,
});

@@ -153,4 +153,2 @@ export {

BigIntIsh,
ReverseMirage,
ReverseMirageRead,
Token,

@@ -170,1 +168,4 @@ TokenData,

} from "./weth/index.js";
export { publicActionReverseMirage } from "./decorator/publicActions.js";
export { walletActionReverseMirage } from "./decorator/walletActions.js";
import type { Chain, Client, GetBalanceParameters, Transport } from "viem";
import { getBalance } from "viem/actions";
import { createAmountFromRaw } from "../../amount/utils.js";
import type { ReverseMirage } from "../../types/rm.js";
import type { NativeCurrency, NativeCurrencyAmount } from "../types.js";

@@ -18,3 +17,2 @@

TNativeCurrency extends NativeCurrency,
T extends "select" | undefined,
>(

@@ -27,15 +25,5 @@ client: Client<Transport, TChain>,

}: GetNativeBalanceParameters<TNativeCurrency>,
type?: T,
): ReverseMirage<bigint, GetNativeBalanceReturnType<TNativeCurrency>, T> =>
(type === undefined
? getBalance(client, { address: address, ...request }).then((data) =>
createAmountFromRaw(nativeCurrency, data),
)
: {
read: () => getBalance(client, { address: address, ...request }),
parse: (data: bigint) => createAmountFromRaw(nativeCurrency, data),
}) as ReverseMirage<
bigint,
GetNativeBalanceReturnType<TNativeCurrency>,
T
>;
): Promise<GetNativeBalanceReturnType<TNativeCurrency>> =>
getBalance(client, { address: address, ...request }).then((data) =>
createAmountFromRaw(nativeCurrency, data),
);
export type { BigIntIsh } from "./bigintish.js";
export type { ReverseMirage, ReverseMirageRead } from "./rm.js";
export type { Token, TokenData } from "./token.js";
export type { Tuple } from "./tuple.js";

@@ -1,3 +0,1 @@

import type { ReverseMirageRead } from "../types/rm.js";
/**

@@ -9,9 +7,9 @@ * Return a query key for a specific `get` action and its arguments

export const getQueryKey = <TArgs>(
get: (
// biome-ignore lint/suspicious/noExplicitAny: dont need
client: any,
args: TArgs,
type?: "select" | undefined,
// biome-ignore lint/suspicious/noExplicitAny: dont need
) => ReverseMirageRead<any, any>,
get:
| ((
// biome-ignore lint/suspicious/noExplicitAny: dont need
client: any,
args: TArgs,
) => unknown)
| ((args: TArgs) => unknown),
args: TArgs,

@@ -18,0 +16,0 @@ chainID: number,

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc