@aztec/entrypoints 0.30.0 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/account_entrypoint.d.ts +2 -1
- package/dest/account_entrypoint.d.ts.map +1 -1
- package/dest/account_entrypoint.js +1 -1
- package/dest/dapp_entrypoint.d.ts +2 -1
- package/dest/dapp_entrypoint.d.ts.map +1 -1
- package/dest/dapp_entrypoint.js +2 -2
- package/dest/entrypoint_payload.d.ts +1 -1
- package/dest/entrypoint_payload.d.ts.map +1 -1
- package/dest/multi_call_entrypoint.d.ts +15 -0
- package/dest/multi_call_entrypoint.d.ts.map +1 -0
- package/dest/multi_call_entrypoint.js +84 -0
- package/package.json +8 -6
- package/src/account_entrypoint.ts +2 -1
- package/src/dapp_entrypoint.ts +8 -2
- package/src/entrypoint_payload.ts +1 -1
- package/src/multi_call_entrypoint.ts +91 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { AuthWitnessProvider
|
|
1
|
+
import { AuthWitnessProvider } from '@aztec/aztec.js/account';
|
|
2
|
+
import { EntrypointInterface, FeeOptions } from '@aztec/aztec.js/entrypoint';
|
|
2
3
|
import { FunctionCall, TxExecutionRequest } from '@aztec/circuit-types';
|
|
3
4
|
import { AztecAddress } from '@aztec/circuits.js';
|
|
4
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account_entrypoint.d.ts","sourceRoot":"","sources":["../src/account_entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"account_entrypoint.d.ts","sourceRoot":"","sources":["../src/account_entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,YAAY,EAA2C,MAAM,oBAAoB,CAAC;AAM3F;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAEhE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBAHP,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE,MAAyB,EAClC,OAAO,GAAE,MAAwB;IAGrC,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsB7G,OAAO,CAAC,gBAAgB;CA+FzB"}
|
|
@@ -127,4 +127,4 @@ export class DefaultAccountEntrypoint {
|
|
|
127
127
|
};
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9lbnRyeXBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FjY291bnRfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRixPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhGOzs7R0FHRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFDVSxPQUFxQixFQUNyQixJQUF5QixFQUN6QixVQUFrQixnQkFBZ0IsRUFDbEMsVUFBa0IsZUFBZTtRQUhqQyxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQXFCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBQ3hDLENBQUM7SUFFSixLQUFLLENBQUMsd0JBQXdCLENBQUMsVUFBMEIsRUFBRSxPQUFvQjtRQUM3RSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakcsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsTUFBTSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFcEcsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDcEMsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRHLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQ2hILE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUUxRyxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7WUFDeEMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLElBQUk7WUFDbkMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLFlBQVksRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUN2QyxTQUFTLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDdEQsZUFBZSxFQUFFLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDO1lBQ3JGLGFBQWEsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUM7U0FDaEQsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixPQUFPO1lBQ0wsSUFBSSxFQUFFLFlBQVk7WUFDbEIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsWUFBWSxFQUFFLFFBQVE7WUFDdEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsVUFBVSxFQUFFO2dCQUNWO29CQUNFLElBQUksRUFBRSxhQUFhO29CQUNuQixJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLHNDQUFzQzt3QkFDNUMsTUFBTSxFQUFFOzRCQUNOO2dDQUNFLElBQUksRUFBRSxnQkFBZ0I7Z0NBQ3RCLElBQUksRUFBRTtvQ0FDSixJQUFJLEVBQUUsT0FBTztvQ0FDYixNQUFNLEVBQUUsQ0FBQztvQ0FDVCxJQUFJLEVBQUU7d0NBQ0osSUFBSSxFQUFFLFFBQVE7d0NBQ2QsSUFBSSxFQUFFLGtEQUFrRDt3Q0FDeEQsTUFBTSxFQUFFOzRDQUNOLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7NENBQzlDO2dEQUNFLElBQUksRUFBRSxtQkFBbUI7Z0RBQ3pCLElBQUksRUFBRTtvREFDSixJQUFJLEVBQUUsUUFBUTtvREFDZCxJQUFJLEVBQUUsMkVBQTJFO29EQUNqRixNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO2lEQUNwRjs2Q0FDRjs0Q0FDRDtnREFDRSxJQUFJLEVBQUUsZ0JBQWdCO2dEQUN0QixJQUFJLEVBQUU7b0RBQ0osSUFBSSxFQUFFLFFBQVE7b0RBQ2QsSUFBSSxFQUFFLHVEQUF1RDtvREFDN0QsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO2lEQUNyRDs2Q0FDRjs0Q0FDRCxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFO3lDQUNqRDtxQ0FDRjtpQ0FDRjs2QkFDRjs0QkFDRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO3lCQUMzQztxQkFDRjtvQkFDRCxVQUFVLEVBQUUsUUFBUTtpQkFDckI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsc0NBQXNDO3dCQUM1QyxNQUFNLEVBQUU7NEJBQ047Z0NBQ0UsSUFBSSxFQUFFLGdCQUFnQjtnQ0FDdEIsSUFBSSxFQUFFO29DQUNKLElBQUksRUFBRSxPQUFPO29DQUNiLE1BQU0sRUFBRSxDQUFDO29DQUNULElBQUksRUFBRTt3Q0FDSixJQUFJLEVBQUUsUUFBUTt3Q0FDZCxJQUFJLEVBQUUsa0RBQWtEO3dDQUN4RCxNQUFNLEVBQUU7NENBQ04sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTs0Q0FDOUM7Z0RBQ0UsSUFBSSxFQUFFLG1CQUFtQjtnREFDekIsSUFBSSxFQUFFO29EQUNKLElBQUksRUFBRSxRQUFRO29EQUNkLElBQUksRUFBRSwyRUFBMkU7b0RBQ2pGLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7aURBQ3BGOzZDQUNGOzRDQUNEO2dEQUNFLElBQUksRUFBRSxnQkFBZ0I7Z0RBQ3RCLElBQUksRUFBRTtvREFDSixJQUFJLEVBQUUsUUFBUTtvREFDZCxJQUFJLEVBQUUsdURBQXVEO29EQUM3RCxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7aURBQ3JEOzZDQUNGOzRDQUNELEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUU7eUNBQ2pEO3FDQUNGO2lDQUNGOzZCQUNGOzRCQUNELEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7eUJBQzNDO3FCQUNGO29CQUNELFVBQVUsRUFBRSxRQUFRO2lCQUNyQjthQUNGO1lBQ0QsV0FBVyxFQUFFLEVBQUU7U0FDRCxDQUFDO0lBQ25CLENBQUM7Q0FDRiJ9
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { AuthWitnessProvider
|
|
1
|
+
import { AuthWitnessProvider } from '@aztec/aztec.js/account';
|
|
2
|
+
import { EntrypointInterface } from '@aztec/aztec.js/entrypoint';
|
|
2
3
|
import { FunctionCall, TxExecutionRequest } from '@aztec/circuit-types';
|
|
3
4
|
import { AztecAddress } from '@aztec/circuits.js';
|
|
4
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dapp_entrypoint.d.ts","sourceRoot":"","sources":["../src/dapp_entrypoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dapp_entrypoint.d.ts","sourceRoot":"","sources":["../src/dapp_entrypoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,YAAY,EAA+B,MAAM,oBAAoB,CAAC;AAM/E;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,mBAAmB;IAE7D,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBAJP,WAAW,EAAE,YAAY,EACzB,uBAAuB,EAAE,mBAAmB,EAC5C,qBAAqB,EAAE,YAAY,EACnC,OAAO,GAAE,MAAyB,EAClC,OAAO,GAAE,MAAwB;IAGrC,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiCvF,OAAO,CAAC,gBAAgB;CA8DzB"}
|
package/dest/dapp_entrypoint.js
CHANGED
|
@@ -25,7 +25,7 @@ export class DefaultDappEntrypoint {
|
|
|
25
25
|
const entrypointPackedArgs = PackedArguments.fromArgs(encodeArguments(abi, [payload, this.userAddress]));
|
|
26
26
|
const functionData = FunctionData.fromAbi(abi);
|
|
27
27
|
const innerHash = computeInnerAuthWitHash([Fr.ZERO, functionData.selector.toField(), entrypointPackedArgs.hash]);
|
|
28
|
-
const outerHash = computeOuterAuthWitHash(this.dappEntrypointAddress, innerHash);
|
|
28
|
+
const outerHash = computeOuterAuthWitHash(this.dappEntrypointAddress, new Fr(this.chainId), new Fr(this.version), innerHash);
|
|
29
29
|
const authWitness = await this.userAuthWitnessProvider.createAuthWit(outerHash);
|
|
30
30
|
const txRequest = TxExecutionRequest.from({
|
|
31
31
|
argsHash: entrypointPackedArgs.hash,
|
|
@@ -100,4 +100,4 @@ export class DefaultDappEntrypoint {
|
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFwcF9lbnRyeXBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RhcHBfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUduRixPQUFPLEVBQWdCLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTNEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDVSxXQUF5QixFQUN6Qix1QkFBNEMsRUFDNUMscUJBQW1DLEVBQ25DLFVBQWtCLGdCQUFnQixFQUNsQyxVQUFrQixlQUFlO1FBSmpDLGdCQUFXLEdBQVgsV0FBVyxDQUFjO1FBQ3pCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBcUI7UUFDNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFjO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBQ3hDLENBQUM7SUFFSixLQUFLLENBQUMsd0JBQXdCLENBQUMsVUFBMEI7UUFDdkQsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFD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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FeeOptions } from '@aztec/aztec.js/
|
|
1
|
+
import { FeeOptions } from '@aztec/aztec.js/entrypoint';
|
|
2
2
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
3
3
|
import { FunctionCall, PackedArguments } from '@aztec/circuit-types';
|
|
4
4
|
import { AztecAddress } from '@aztec/circuits.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint_payload.d.ts","sourceRoot":"","sources":["../src/entrypoint_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"entrypoint_payload.d.ts","sourceRoot":"","sources":["../src/entrypoint_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUlD,4DAA4D;AAC5D,KAAK,sBAAsB,GAAG;IAE5B,kCAAkC;IAClC,SAAS,EAAE,EAAE,CAAC;IAEd,uCAAuC;IACvC,iBAAiB,EAAE,EAAE,CAAC;IAEtB,sCAAsC;IACtC,cAAc,EAAE,EAAE,CAAC;IAEnB,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,0DAA0D;AAC1D,KAAK,iBAAiB,GAAG;IAEvB,wCAAwC;IACxC,cAAc,EAAE,sBAAsB,EAAE,CAAC;IACzC,oCAAoC;IACpC,KAAK,EAAE,EAAE,CAAC;CACX,CAAC;AAEF,wFAAwF;AACxF,MAAM,MAAM,oBAAoB,GAAG;IACjC,4BAA4B;IAC5B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,kDAAkD;IAClD,eAAe,EAAE,eAAe,EAAE,CAAC;CACpC,CAAC;AAsCF,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,oBAAoB,CAEzE;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,oBAAoB,CAE3E;AAED,+DAA+D;AAC/D,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAGzF;AAGD,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,MAK7E;AAED,kCAAkC;AAClC,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,MAE5G"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EntrypointInterface } from '@aztec/aztec.js/entrypoint';
|
|
2
|
+
import { FunctionCall, TxExecutionRequest } from '@aztec/circuit-types';
|
|
3
|
+
import { AztecAddress } from '@aztec/circuits.js';
|
|
4
|
+
/**
|
|
5
|
+
* Implementation for an entrypoint interface that can execute multiple function calls in a single transaction
|
|
6
|
+
*/
|
|
7
|
+
export declare class DefaultMultiCallEntrypoint implements EntrypointInterface {
|
|
8
|
+
private address;
|
|
9
|
+
private chainId;
|
|
10
|
+
private version;
|
|
11
|
+
constructor(address?: AztecAddress, chainId?: number, version?: number);
|
|
12
|
+
createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
|
|
13
|
+
private getEntrypointAbi;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=multi_call_entrypoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi_call_entrypoint.d.ts","sourceRoot":"","sources":["../src/multi_call_entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,YAAY,EAA2B,MAAM,oBAAoB,CAAC;AAO3E;;GAEG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAElE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBAFP,OAAO,GAAE,YAAuD,EAChE,OAAO,GAAE,MAAyB,EAClC,OAAO,GAAE,MAAwB;IAG3C,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkBjF,OAAO,CAAC,gBAAgB;CAqDzB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { PackedArguments, TxExecutionRequest } from '@aztec/circuit-types';
|
|
2
|
+
import { FunctionData, TxContext } from '@aztec/circuits.js';
|
|
3
|
+
import { encodeArguments } from '@aztec/foundation/abi';
|
|
4
|
+
import { getCanonicalMultiCallEntrypointAddress } from '@aztec/protocol-contracts/multi-call-entrypoint';
|
|
5
|
+
import { DEFAULT_CHAIN_ID, DEFAULT_VERSION } from './constants.js';
|
|
6
|
+
import { buildAppPayload } from './entrypoint_payload.js';
|
|
7
|
+
/**
|
|
8
|
+
* Implementation for an entrypoint interface that can execute multiple function calls in a single transaction
|
|
9
|
+
*/
|
|
10
|
+
export class DefaultMultiCallEntrypoint {
|
|
11
|
+
constructor(address = getCanonicalMultiCallEntrypointAddress(), chainId = DEFAULT_CHAIN_ID, version = DEFAULT_VERSION) {
|
|
12
|
+
this.address = address;
|
|
13
|
+
this.chainId = chainId;
|
|
14
|
+
this.version = version;
|
|
15
|
+
}
|
|
16
|
+
createTxExecutionRequest(executions) {
|
|
17
|
+
const { payload: appPayload, packedArguments: appPackedArguments } = buildAppPayload(executions);
|
|
18
|
+
const abi = this.getEntrypointAbi();
|
|
19
|
+
const entrypointPackedArgs = PackedArguments.fromArgs(encodeArguments(abi, [appPayload]));
|
|
20
|
+
const txRequest = TxExecutionRequest.from({
|
|
21
|
+
argsHash: entrypointPackedArgs.hash,
|
|
22
|
+
origin: this.address,
|
|
23
|
+
functionData: FunctionData.fromAbi(abi),
|
|
24
|
+
txContext: TxContext.empty(this.chainId, this.version),
|
|
25
|
+
packedArguments: [...appPackedArguments, entrypointPackedArgs],
|
|
26
|
+
authWitnesses: [],
|
|
27
|
+
});
|
|
28
|
+
return Promise.resolve(txRequest);
|
|
29
|
+
}
|
|
30
|
+
getEntrypointAbi() {
|
|
31
|
+
return {
|
|
32
|
+
name: 'entrypoint',
|
|
33
|
+
isInitializer: false,
|
|
34
|
+
functionType: 'secret',
|
|
35
|
+
isInternal: false,
|
|
36
|
+
parameters: [
|
|
37
|
+
{
|
|
38
|
+
name: 'app_payload',
|
|
39
|
+
type: {
|
|
40
|
+
kind: 'struct',
|
|
41
|
+
path: 'authwit::entrypoint::app::AppPayload',
|
|
42
|
+
fields: [
|
|
43
|
+
{
|
|
44
|
+
name: 'function_calls',
|
|
45
|
+
type: {
|
|
46
|
+
kind: 'array',
|
|
47
|
+
length: 4,
|
|
48
|
+
type: {
|
|
49
|
+
kind: 'struct',
|
|
50
|
+
path: 'authwit::entrypoint::function_call::FunctionCall',
|
|
51
|
+
fields: [
|
|
52
|
+
{ name: 'args_hash', type: { kind: 'field' } },
|
|
53
|
+
{
|
|
54
|
+
name: 'function_selector',
|
|
55
|
+
type: {
|
|
56
|
+
kind: 'struct',
|
|
57
|
+
path: 'authwit::aztec::protocol_types::abis::function_selector::FunctionSelector',
|
|
58
|
+
fields: [{ name: 'inner', type: { kind: 'integer', sign: 'unsigned', width: 32 } }],
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'target_address',
|
|
63
|
+
type: {
|
|
64
|
+
kind: 'struct',
|
|
65
|
+
path: 'authwit::aztec::protocol_types::address::AztecAddress',
|
|
66
|
+
fields: [{ name: 'inner', type: { kind: 'field' } }],
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{ name: 'is_public', type: { kind: 'boolean' } },
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
{ name: 'nonce', type: { kind: 'field' } },
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
visibility: 'public',
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
returnTypes: [],
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfY2FsbF9lbnRyeXBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL211bHRpX2NhbGxfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNFLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUV6RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUNVLFVBQXdCLHNDQUFzQyxFQUFFLEVBQ2hFLFVBQWtCLGdCQUFnQixFQUNsQyxVQUFrQixlQUFlO1FBRmpDLFlBQU8sR0FBUCxPQUFPLENBQXlEO1FBQ2hFLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBQ3hDLENBQUM7SUFFSix3QkFBd0IsQ0FBQyxVQUEwQjtRQUNqRCxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakcsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDcEMsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUYsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1lBQ3hDLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxJQUFJO1lBQ25DLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixZQUFZLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDdkMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3RELGVBQWUsRUFBRSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUM7WUFDOUQsYUFBYSxFQUFFLEVBQUU7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsT0FBTztZQUNMLElBQUksRUFBRSxZQUFZO1lBQ2xCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFlBQVksRUFBRSxRQUFRO1lBQ3RCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFVBQVUsRUFBRTtnQkFDVjtvQkFDRSxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxzQ0FBc0M7d0JBQzVDLE1BQU0sRUFBRTs0QkFDTjtnQ0FDRSxJQUFJLEVBQUUsZ0JBQWdCO2dDQUN0QixJQUFJLEVBQUU7b0NBQ0osSUFBSSxFQUFFLE9BQU87b0NBQ2IsTUFBTSxFQUFFLENBQUM7b0NBQ1QsSUFBSSxFQUFFO3dDQUNKLElBQUksRUFBRSxRQUFRO3dDQUNkLElBQUksRUFBRSxrREFBa0Q7d0NBQ3hELE1BQU0sRUFBRTs0Q0FDTixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFOzRDQUM5QztnREFDRSxJQUFJLEVBQUUsbUJBQW1CO2dEQUN6QixJQUFJLEVBQUU7b0RBQ0osSUFBSSxFQUFFLFFBQVE7b0RBQ2QsSUFBSSxFQUFFLDJFQUEyRTtvREFDakYsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztpREFDcEY7NkNBQ0Y7NENBQ0Q7Z0RBQ0UsSUFBSSxFQUFFLGdCQUFnQjtnREFDdEIsSUFBSSxFQUFFO29EQUNKLElBQUksRUFBRSxRQUFRO29EQUNkLElBQUksRUFBRSx1REFBdUQ7b0RBQzdELE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztpREFDckQ7NkNBQ0Y7NENBQ0QsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRTt5Q0FDakQ7cUNBQ0Y7aUNBQ0Y7NkJBQ0Y7NEJBQ0QsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTt5QkFDM0M7cUJBQ0Y7b0JBQ0QsVUFBVSxFQUFFLFFBQVE7aUJBQ3JCO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsRUFBRTtTQUNELENBQUM7SUFDbkIsQ0FBQztDQUNGIn0=
|
package/package.json
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
"name": "@aztec/entrypoints",
|
|
3
3
|
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/entrypoints",
|
|
4
4
|
"description": "Implementation of sample contract entrypoints for the Aztec Network",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.31.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|
|
8
8
|
"./dapp": "./dest/dapp_entrypoint.js",
|
|
9
|
-
"./account": "./dest/account_entrypoint.js"
|
|
9
|
+
"./account": "./dest/account_entrypoint.js",
|
|
10
|
+
"./multi-call": "./dest/multi_call_entrypoint.js"
|
|
10
11
|
},
|
|
11
12
|
"typedocOptions": {
|
|
12
13
|
"entryPoints": [
|
|
@@ -36,10 +37,11 @@
|
|
|
36
37
|
"rootDir": "./src"
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
39
|
-
"@aztec/aztec.js": "0.
|
|
40
|
-
"@aztec/circuit-types": "0.
|
|
41
|
-
"@aztec/circuits.js": "0.
|
|
42
|
-
"@aztec/foundation": "0.
|
|
40
|
+
"@aztec/aztec.js": "0.31.0",
|
|
41
|
+
"@aztec/circuit-types": "0.31.0",
|
|
42
|
+
"@aztec/circuits.js": "0.31.0",
|
|
43
|
+
"@aztec/foundation": "0.31.0",
|
|
44
|
+
"@aztec/protocol-contracts": "0.31.0",
|
|
43
45
|
"tslib": "^2.4.0"
|
|
44
46
|
},
|
|
45
47
|
"devDependencies": {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { AuthWitnessProvider
|
|
1
|
+
import { AuthWitnessProvider } from '@aztec/aztec.js/account';
|
|
2
|
+
import { EntrypointInterface, FeeOptions } from '@aztec/aztec.js/entrypoint';
|
|
2
3
|
import { FunctionCall, PackedArguments, TxExecutionRequest } from '@aztec/circuit-types';
|
|
3
4
|
import { AztecAddress, FunctionData, GeneratorIndex, TxContext } from '@aztec/circuits.js';
|
|
4
5
|
import { FunctionAbi, encodeArguments } from '@aztec/foundation/abi';
|
package/src/dapp_entrypoint.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { computeInnerAuthWitHash, computeOuterAuthWitHash } from '@aztec/aztec.js';
|
|
2
|
-
import { AuthWitnessProvider
|
|
2
|
+
import { AuthWitnessProvider } from '@aztec/aztec.js/account';
|
|
3
|
+
import { EntrypointInterface } from '@aztec/aztec.js/entrypoint';
|
|
3
4
|
import { FunctionCall, PackedArguments, TxExecutionRequest } from '@aztec/circuit-types';
|
|
4
5
|
import { AztecAddress, Fr, FunctionData, TxContext } from '@aztec/circuits.js';
|
|
5
6
|
import { FunctionAbi, encodeArguments } from '@aztec/foundation/abi';
|
|
@@ -32,7 +33,12 @@ export class DefaultDappEntrypoint implements EntrypointInterface {
|
|
|
32
33
|
const functionData = FunctionData.fromAbi(abi);
|
|
33
34
|
|
|
34
35
|
const innerHash = computeInnerAuthWitHash([Fr.ZERO, functionData.selector.toField(), entrypointPackedArgs.hash]);
|
|
35
|
-
const outerHash = computeOuterAuthWitHash(
|
|
36
|
+
const outerHash = computeOuterAuthWitHash(
|
|
37
|
+
this.dappEntrypointAddress,
|
|
38
|
+
new Fr(this.chainId),
|
|
39
|
+
new Fr(this.version),
|
|
40
|
+
innerHash,
|
|
41
|
+
);
|
|
36
42
|
|
|
37
43
|
const authWitness = await this.userAuthWitnessProvider.createAuthWit(outerHash);
|
|
38
44
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FeeOptions } from '@aztec/aztec.js/
|
|
1
|
+
import { FeeOptions } from '@aztec/aztec.js/entrypoint';
|
|
2
2
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
3
3
|
import { FunctionCall, PackedArguments, emptyFunctionCall } from '@aztec/circuit-types';
|
|
4
4
|
import { AztecAddress } from '@aztec/circuits.js';
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { EntrypointInterface } from '@aztec/aztec.js/entrypoint';
|
|
2
|
+
import { FunctionCall, PackedArguments, TxExecutionRequest } from '@aztec/circuit-types';
|
|
3
|
+
import { AztecAddress, FunctionData, TxContext } from '@aztec/circuits.js';
|
|
4
|
+
import { FunctionAbi, encodeArguments } from '@aztec/foundation/abi';
|
|
5
|
+
import { getCanonicalMultiCallEntrypointAddress } from '@aztec/protocol-contracts/multi-call-entrypoint';
|
|
6
|
+
|
|
7
|
+
import { DEFAULT_CHAIN_ID, DEFAULT_VERSION } from './constants.js';
|
|
8
|
+
import { buildAppPayload } from './entrypoint_payload.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Implementation for an entrypoint interface that can execute multiple function calls in a single transaction
|
|
12
|
+
*/
|
|
13
|
+
export class DefaultMultiCallEntrypoint implements EntrypointInterface {
|
|
14
|
+
constructor(
|
|
15
|
+
private address: AztecAddress = getCanonicalMultiCallEntrypointAddress(),
|
|
16
|
+
private chainId: number = DEFAULT_CHAIN_ID,
|
|
17
|
+
private version: number = DEFAULT_VERSION,
|
|
18
|
+
) {}
|
|
19
|
+
|
|
20
|
+
createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest> {
|
|
21
|
+
const { payload: appPayload, packedArguments: appPackedArguments } = buildAppPayload(executions);
|
|
22
|
+
|
|
23
|
+
const abi = this.getEntrypointAbi();
|
|
24
|
+
const entrypointPackedArgs = PackedArguments.fromArgs(encodeArguments(abi, [appPayload]));
|
|
25
|
+
|
|
26
|
+
const txRequest = TxExecutionRequest.from({
|
|
27
|
+
argsHash: entrypointPackedArgs.hash,
|
|
28
|
+
origin: this.address,
|
|
29
|
+
functionData: FunctionData.fromAbi(abi),
|
|
30
|
+
txContext: TxContext.empty(this.chainId, this.version),
|
|
31
|
+
packedArguments: [...appPackedArguments, entrypointPackedArgs],
|
|
32
|
+
authWitnesses: [],
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
return Promise.resolve(txRequest);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
private getEntrypointAbi() {
|
|
39
|
+
return {
|
|
40
|
+
name: 'entrypoint',
|
|
41
|
+
isInitializer: false,
|
|
42
|
+
functionType: 'secret',
|
|
43
|
+
isInternal: false,
|
|
44
|
+
parameters: [
|
|
45
|
+
{
|
|
46
|
+
name: 'app_payload',
|
|
47
|
+
type: {
|
|
48
|
+
kind: 'struct',
|
|
49
|
+
path: 'authwit::entrypoint::app::AppPayload',
|
|
50
|
+
fields: [
|
|
51
|
+
{
|
|
52
|
+
name: 'function_calls',
|
|
53
|
+
type: {
|
|
54
|
+
kind: 'array',
|
|
55
|
+
length: 4,
|
|
56
|
+
type: {
|
|
57
|
+
kind: 'struct',
|
|
58
|
+
path: 'authwit::entrypoint::function_call::FunctionCall',
|
|
59
|
+
fields: [
|
|
60
|
+
{ name: 'args_hash', type: { kind: 'field' } },
|
|
61
|
+
{
|
|
62
|
+
name: 'function_selector',
|
|
63
|
+
type: {
|
|
64
|
+
kind: 'struct',
|
|
65
|
+
path: 'authwit::aztec::protocol_types::abis::function_selector::FunctionSelector',
|
|
66
|
+
fields: [{ name: 'inner', type: { kind: 'integer', sign: 'unsigned', width: 32 } }],
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'target_address',
|
|
71
|
+
type: {
|
|
72
|
+
kind: 'struct',
|
|
73
|
+
path: 'authwit::aztec::protocol_types::address::AztecAddress',
|
|
74
|
+
fields: [{ name: 'inner', type: { kind: 'field' } }],
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
{ name: 'is_public', type: { kind: 'boolean' } },
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
{ name: 'nonce', type: { kind: 'field' } },
|
|
83
|
+
],
|
|
84
|
+
},
|
|
85
|
+
visibility: 'public',
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
returnTypes: [],
|
|
89
|
+
} as FunctionAbi;
|
|
90
|
+
}
|
|
91
|
+
}
|