@kasufinance/kasu-sdk 2.10.1 → 2.10.2
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/dist/bundle.cjs.js +19 -12
- package/dist/bundle.esm.js +19 -12
- package/dist/domain/batch-proof.js +19 -12
- package/dist/domain/batch-proof.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/batch-proof.ts +18 -12
package/dist/bundle.cjs.js
CHANGED
|
@@ -25102,26 +25102,33 @@ function sameAmount(a, b) {
|
|
|
25102
25102
|
* this run's deposit.
|
|
25103
25103
|
*/
|
|
25104
25104
|
function decodeCanonical(iface, name, data, code) {
|
|
25105
|
-
|
|
25106
|
-
|
|
25107
|
-
|
|
25108
|
-
|
|
25109
|
-
|
|
25110
|
-
|
|
25111
|
-
|
|
25112
|
-
|
|
25113
|
-
|
|
25105
|
+
// Decode AND re-encode against the interface's OWN fragment for `name`,
|
|
25106
|
+
// never through `parseTransaction`. ethers v5's `TransactionDescription`
|
|
25107
|
+
// deep-copies its fields, and a fragment whose `inputs` array is not
|
|
25108
|
+
// frozen comes out as a plain object. Under the CommonJS build (Node,
|
|
25109
|
+
// jest) that copy still carries `format()`, because ES5 prototype methods
|
|
25110
|
+
// are enumerable; under the ES-module build a browser bundler resolves
|
|
25111
|
+
// (`lib.esm`, real classes) it carries no methods at all, so re-encoding
|
|
25112
|
+
// `parsed.functionFragment` threw and EVERY batch was refused as
|
|
25113
|
+
// `approve-call` in the browser (2.10.0, 2.10.1). With no description in
|
|
25114
|
+
// the path, nothing here depends on which copied fields survive.
|
|
25115
|
+
//
|
|
25116
|
+
// `decodeFunctionData` refuses data whose selector is not this
|
|
25117
|
+
// fragment's, so a call to any other function is `code`, as before.
|
|
25118
|
+
let args;
|
|
25114
25119
|
let canonical;
|
|
25115
25120
|
try {
|
|
25116
|
-
|
|
25121
|
+
const fragment = iface.getFunction(name);
|
|
25122
|
+
args = iface.decodeFunctionData(fragment, data);
|
|
25123
|
+
canonical = iface.encodeFunctionData(fragment, args);
|
|
25117
25124
|
}
|
|
25118
|
-
catch (
|
|
25125
|
+
catch (_a) {
|
|
25119
25126
|
return mismatch(code);
|
|
25120
25127
|
}
|
|
25121
25128
|
if (canonical.toLowerCase() !== data.toLowerCase()) {
|
|
25122
25129
|
return mismatch('non-canonical-encoding');
|
|
25123
25130
|
}
|
|
25124
|
-
return
|
|
25131
|
+
return args;
|
|
25125
25132
|
}
|
|
25126
25133
|
/**
|
|
25127
25134
|
* Pin a deposit batch to the run that produced it — PURE; throws a
|
package/dist/bundle.esm.js
CHANGED
|
@@ -25100,26 +25100,33 @@ function sameAmount(a, b) {
|
|
|
25100
25100
|
* this run's deposit.
|
|
25101
25101
|
*/
|
|
25102
25102
|
function decodeCanonical(iface, name, data, code) {
|
|
25103
|
-
|
|
25104
|
-
|
|
25105
|
-
|
|
25106
|
-
|
|
25107
|
-
|
|
25108
|
-
|
|
25109
|
-
|
|
25110
|
-
|
|
25111
|
-
|
|
25103
|
+
// Decode AND re-encode against the interface's OWN fragment for `name`,
|
|
25104
|
+
// never through `parseTransaction`. ethers v5's `TransactionDescription`
|
|
25105
|
+
// deep-copies its fields, and a fragment whose `inputs` array is not
|
|
25106
|
+
// frozen comes out as a plain object. Under the CommonJS build (Node,
|
|
25107
|
+
// jest) that copy still carries `format()`, because ES5 prototype methods
|
|
25108
|
+
// are enumerable; under the ES-module build a browser bundler resolves
|
|
25109
|
+
// (`lib.esm`, real classes) it carries no methods at all, so re-encoding
|
|
25110
|
+
// `parsed.functionFragment` threw and EVERY batch was refused as
|
|
25111
|
+
// `approve-call` in the browser (2.10.0, 2.10.1). With no description in
|
|
25112
|
+
// the path, nothing here depends on which copied fields survive.
|
|
25113
|
+
//
|
|
25114
|
+
// `decodeFunctionData` refuses data whose selector is not this
|
|
25115
|
+
// fragment's, so a call to any other function is `code`, as before.
|
|
25116
|
+
let args;
|
|
25112
25117
|
let canonical;
|
|
25113
25118
|
try {
|
|
25114
|
-
|
|
25119
|
+
const fragment = iface.getFunction(name);
|
|
25120
|
+
args = iface.decodeFunctionData(fragment, data);
|
|
25121
|
+
canonical = iface.encodeFunctionData(fragment, args);
|
|
25115
25122
|
}
|
|
25116
|
-
catch (
|
|
25123
|
+
catch (_a) {
|
|
25117
25124
|
return mismatch(code);
|
|
25118
25125
|
}
|
|
25119
25126
|
if (canonical.toLowerCase() !== data.toLowerCase()) {
|
|
25120
25127
|
return mismatch('non-canonical-encoding');
|
|
25121
25128
|
}
|
|
25122
|
-
return
|
|
25129
|
+
return args;
|
|
25123
25130
|
}
|
|
25124
25131
|
/**
|
|
25125
25132
|
* Pin a deposit batch to the run that produced it — PURE; throws a
|
|
@@ -98,26 +98,33 @@ function sameAmount(a, b) {
|
|
|
98
98
|
* this run's deposit.
|
|
99
99
|
*/
|
|
100
100
|
function decodeCanonical(iface, name, data, code) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
101
|
+
// Decode AND re-encode against the interface's OWN fragment for `name`,
|
|
102
|
+
// never through `parseTransaction`. ethers v5's `TransactionDescription`
|
|
103
|
+
// deep-copies its fields, and a fragment whose `inputs` array is not
|
|
104
|
+
// frozen comes out as a plain object. Under the CommonJS build (Node,
|
|
105
|
+
// jest) that copy still carries `format()`, because ES5 prototype methods
|
|
106
|
+
// are enumerable; under the ES-module build a browser bundler resolves
|
|
107
|
+
// (`lib.esm`, real classes) it carries no methods at all, so re-encoding
|
|
108
|
+
// `parsed.functionFragment` threw and EVERY batch was refused as
|
|
109
|
+
// `approve-call` in the browser (2.10.0, 2.10.1). With no description in
|
|
110
|
+
// the path, nothing here depends on which copied fields survive.
|
|
111
|
+
//
|
|
112
|
+
// `decodeFunctionData` refuses data whose selector is not this
|
|
113
|
+
// fragment's, so a call to any other function is `code`, as before.
|
|
114
|
+
let args;
|
|
110
115
|
let canonical;
|
|
111
116
|
try {
|
|
112
|
-
|
|
117
|
+
const fragment = iface.getFunction(name);
|
|
118
|
+
args = iface.decodeFunctionData(fragment, data);
|
|
119
|
+
canonical = iface.encodeFunctionData(fragment, args);
|
|
113
120
|
}
|
|
114
|
-
catch (
|
|
121
|
+
catch (_a) {
|
|
115
122
|
return mismatch(code);
|
|
116
123
|
}
|
|
117
124
|
if (canonical.toLowerCase() !== data.toLowerCase()) {
|
|
118
125
|
return mismatch('non-canonical-encoding');
|
|
119
126
|
}
|
|
120
|
-
return
|
|
127
|
+
return args;
|
|
121
128
|
}
|
|
122
129
|
/**
|
|
123
130
|
* Pin a deposit batch to the run that produced it — PURE; throws a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-proof.js","sourceRoot":"","sources":["../../src/domain/batch-proof.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"batch-proof.js","sourceRoot":"","sources":["../../src/domain/batch-proof.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -162,26 +162,32 @@ function decodeCanonical(
|
|
|
162
162
|
data: string,
|
|
163
163
|
code: string,
|
|
164
164
|
): utils.Result {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
165
|
+
// Decode AND re-encode against the interface's OWN fragment for `name`,
|
|
166
|
+
// never through `parseTransaction`. ethers v5's `TransactionDescription`
|
|
167
|
+
// deep-copies its fields, and a fragment whose `inputs` array is not
|
|
168
|
+
// frozen comes out as a plain object. Under the CommonJS build (Node,
|
|
169
|
+
// jest) that copy still carries `format()`, because ES5 prototype methods
|
|
170
|
+
// are enumerable; under the ES-module build a browser bundler resolves
|
|
171
|
+
// (`lib.esm`, real classes) it carries no methods at all, so re-encoding
|
|
172
|
+
// `parsed.functionFragment` threw and EVERY batch was refused as
|
|
173
|
+
// `approve-call` in the browser (2.10.0, 2.10.1). With no description in
|
|
174
|
+
// the path, nothing here depends on which copied fields survive.
|
|
175
|
+
//
|
|
176
|
+
// `decodeFunctionData` refuses data whose selector is not this
|
|
177
|
+
// fragment's, so a call to any other function is `code`, as before.
|
|
178
|
+
let args: utils.Result;
|
|
172
179
|
let canonical: string;
|
|
173
180
|
try {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
);
|
|
181
|
+
const fragment = iface.getFunction(name);
|
|
182
|
+
args = iface.decodeFunctionData(fragment, data);
|
|
183
|
+
canonical = iface.encodeFunctionData(fragment, args);
|
|
178
184
|
} catch {
|
|
179
185
|
return mismatch(code);
|
|
180
186
|
}
|
|
181
187
|
if (canonical.toLowerCase() !== data.toLowerCase()) {
|
|
182
188
|
return mismatch('non-canonical-encoding');
|
|
183
189
|
}
|
|
184
|
-
return
|
|
190
|
+
return args;
|
|
185
191
|
}
|
|
186
192
|
|
|
187
193
|
/**
|