# sendTxのテストシナリオ
###### tags: `テスト設計`
```javascript=
describe("sendTx", () => {
describe("transferができる", () => {
it("ERC20のtranferができる", () => {});
it("持ってないERC20のtranferはできない", () => {});
it("ERC721のtranferができる", () => {});
it("持ってないERC721のtranferはできない", () => {});
it("ERC1155のtranferができる", () => {});
it("持ってないERC1155のtranferはできない", () => {});
});
describe("user state zkpができる", () => {
it("onetime addressが使われてないことを証明する", () => {});
it("onetime addressがprivateKeyから算出されている", () => {});
it("onetime addressがprivateKeyから算出されていない場合failする", () => {});
it("onetime addressが使われていたらfailする", () => {});
it("onetime addressが使われてない証明を検証する", () => {});
it("前回のstate diffを解決していることを証明する", () => {});
it("前回のstate diffを解決していなければfailする", () => {});
it("前回のstate diffを解決していることを証明を検証する", () => {});
it("自分のstate valueをVerkle Treeで証明できる", () => {});
it("自分のstate valueをVerkle Treeで証明できない場合はfailする", () => {});
});
describe("signedTxのzkpができる", () => {
it("signatureがある", () => {});
it("signatureがない場合failする", () => {});
it("signatureのrecoveryするとユーザーのpublicKeyと一致する", () => {});
it("署名が正しいことを検証する", () => {});
});
});
```