@airgap/base 0.13.45-beta.4
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/LICENSE.md +7 -0
- package/index.d.ts +1 -0
- package/index.js +18 -0
- package/index.js.map +1 -0
- package/package.json +63 -0
- package/readme.md +121 -0
- package/v1/client/info/BaseInfoClient.d.ts +2 -0
- package/v1/client/info/BaseInfoClient.js +3 -0
- package/v1/client/info/BaseInfoClient.js.map +1 -0
- package/v1/client/node/BaseNodeClient.d.ts +5 -0
- package/v1/client/node/BaseNodeClient.js +3 -0
- package/v1/client/node/BaseNodeClient.js.map +1 -0
- package/v1/client/node/HttpBaseNodeClient.d.ts +7 -0
- package/v1/client/node/HttpBaseNodeClient.js +114 -0
- package/v1/client/node/HttpBaseNodeClient.js.map +1 -0
- package/v1/index.d.ts +11 -0
- package/v1/index.js +14 -0
- package/v1/index.js.map +1 -0
- package/v1/module/BaseModule.d.ts +18 -0
- package/v1/module/BaseModule.js +182 -0
- package/v1/module/BaseModule.js.map +1 -0
- package/v1/module/ERC20Tokens.d.ts +3 -0
- package/v1/module/ERC20Tokens.js +87 -0
- package/v1/module/ERC20Tokens.js.map +1 -0
- package/v1/module.d.ts +3 -0
- package/v1/module.js +24 -0
- package/v1/module.js.map +1 -0
- package/v1/protocol/BaseBaseProtocol.d.ts +58 -0
- package/v1/protocol/BaseBaseProtocol.js +373 -0
- package/v1/protocol/BaseBaseProtocol.js.map +1 -0
- package/v1/protocol/BaseProtocol.d.ts +8 -0
- package/v1/protocol/BaseProtocol.js +86 -0
- package/v1/protocol/BaseProtocol.js.map +1 -0
- package/v1/protocol/erc20/ERC20Token.d.ts +20 -0
- package/v1/protocol/erc20/ERC20Token.js +198 -0
- package/v1/protocol/erc20/ERC20Token.js.map +1 -0
- package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +8 -0
- package/v1/serializer/v3/schemas/converter/transaction-converter.js +54 -0
- package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-base-typed.d.ts +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-base-typed.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-base-typed.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-base.d.ts +15 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-base.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-base.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-base.d.ts +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-base.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-base.js.map +1 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-request-base-typed.json +39 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-request-base.json +59 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-response-base.json +19 -0
- package/v1/serializer/v3/serializer-companion.d.ts +13 -0
- package/v1/serializer/v3/serializer-companion.js +190 -0
- package/v1/serializer/v3/serializer-companion.js.map +1 -0
- package/v1/serializer/v3/validators/transaction-validator.d.ts +4 -0
- package/v1/serializer/v3/validators/transaction-validator.js +29 -0
- package/v1/serializer/v3/validators/transaction-validator.js.map +1 -0
- package/v1/types/crypto.d.ts +2 -0
- package/v1/types/crypto.js +3 -0
- package/v1/types/crypto.js.map +1 -0
- package/v1/types/protocol.d.ts +6 -0
- package/v1/types/protocol.js +3 -0
- package/v1/types/protocol.js.map +1 -0
- package/v1/types/transaction.d.ts +10 -0
- package/v1/types/transaction.js +3 -0
- package/v1/types/transaction.js.map +1 -0
- package/v1/utils/protocol.d.ts +10 -0
- package/v1/utils/protocol.js +33 -0
- package/v1/utils/protocol.js.map +1 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.createBaseProtocolOptions = exports.BASE_MAINNET_PROTOCOL_NETWORK = exports.createBaseProtocol = void 0;
|
|
30
|
+
var coinlib_core_1 = require("@airgap/coinlib-core");
|
|
31
|
+
var v1_1 = require("@airgap/ethereum/v1");
|
|
32
|
+
var module_kit_1 = require("@airgap/module-kit");
|
|
33
|
+
var HttpBaseNodeClient_1 = require("../client/node/HttpBaseNodeClient");
|
|
34
|
+
var BaseBaseProtocol_1 = require("./BaseBaseProtocol");
|
|
35
|
+
// Implementation
|
|
36
|
+
var BaseProtocolImpl = /** @class */ (function (_super) {
|
|
37
|
+
__extends(BaseProtocolImpl, _super);
|
|
38
|
+
function BaseProtocolImpl(options) {
|
|
39
|
+
var completeOptions = createBaseProtocolOptions(options.network);
|
|
40
|
+
var nodeClient = new HttpBaseNodeClient_1.HttpBaseNodeClient(completeOptions.network.rpcUrl);
|
|
41
|
+
var infoClient = new v1_1.EtherscanInfoClient(completeOptions.network.blockExplorerApi);
|
|
42
|
+
var baseProtocolOptions = {
|
|
43
|
+
network: completeOptions.network,
|
|
44
|
+
identifier: coinlib_core_1.MainProtocolSymbols.BASE,
|
|
45
|
+
name: 'Base',
|
|
46
|
+
units: __assign(__assign({}, v1_1.DEFAULT_ETHEREUM_UNITS_METADATA), { ETH: {
|
|
47
|
+
symbol: __assign(__assign({}, v1_1.DEFAULT_ETHEREUM_UNITS_METADATA.ETH.symbol), { asset: 'BASE' }),
|
|
48
|
+
decimals: v1_1.DEFAULT_ETHEREUM_UNITS_METADATA.ETH.decimals
|
|
49
|
+
} }),
|
|
50
|
+
mainUnit: 'ETH',
|
|
51
|
+
// The layer 2 gas price is normally 0.001 gwei, but it increases when experiencing heavy congestion
|
|
52
|
+
feeDefaults: {
|
|
53
|
+
low: (0, module_kit_1.newAmount)(15.75 /* 21000 GAS * 0.00075 GWEI */, 'GWEI').blockchain(v1_1.DEFAULT_ETHEREUM_UNITS_METADATA),
|
|
54
|
+
medium: (0, module_kit_1.newAmount)(22.05 /* 21000 GAS * 0.00105 GWEI */, 'GWEI').blockchain(v1_1.DEFAULT_ETHEREUM_UNITS_METADATA),
|
|
55
|
+
high: (0, module_kit_1.newAmount)(44.1 /* 21000 GAS * 0.0021 GWEI */, 'GWEI').blockchain(v1_1.DEFAULT_ETHEREUM_UNITS_METADATA)
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
var ethereumProtocol = new v1_1.EthereumBaseProtocolImpl(nodeClient, infoClient, baseProtocolOptions);
|
|
59
|
+
return _super.call(this, ethereumProtocol, nodeClient, infoClient, completeOptions) || this;
|
|
60
|
+
}
|
|
61
|
+
return BaseProtocolImpl;
|
|
62
|
+
}(BaseBaseProtocol_1.BaseBaseProtocolImpl));
|
|
63
|
+
// Factory
|
|
64
|
+
function createBaseProtocol(options) {
|
|
65
|
+
if (options === void 0) { options = {}; }
|
|
66
|
+
return new BaseProtocolImpl(options);
|
|
67
|
+
}
|
|
68
|
+
exports.createBaseProtocol = createBaseProtocol;
|
|
69
|
+
exports.BASE_MAINNET_PROTOCOL_NETWORK = {
|
|
70
|
+
name: 'Mainnet',
|
|
71
|
+
type: 'mainnet',
|
|
72
|
+
rpcUrl: 'https://base-rpc.publicnode.com',
|
|
73
|
+
chainId: 8453,
|
|
74
|
+
blockExplorerUrl: 'https://basescan.org',
|
|
75
|
+
blockExplorerApi: 'https://api.basescan.org/api',
|
|
76
|
+
gasPriceOracleAddress: '0x420000000000000000000000000000000000000F'
|
|
77
|
+
};
|
|
78
|
+
var DEFAULT_BASE_PROTOCOL_NETWORK = exports.BASE_MAINNET_PROTOCOL_NETWORK;
|
|
79
|
+
function createBaseProtocolOptions(network) {
|
|
80
|
+
if (network === void 0) { network = {}; }
|
|
81
|
+
return {
|
|
82
|
+
network: __assign(__assign({}, DEFAULT_BASE_PROTOCOL_NETWORK), network)
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
exports.createBaseProtocolOptions = createBaseProtocolOptions;
|
|
86
|
+
//# sourceMappingURL=BaseProtocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseProtocol.js","sourceRoot":"","sources":["../../../src/v1/protocol/BaseProtocol.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAA0D;AAC1D,0CAM4B;AAC5B,iDAAgE;AAEhE,wEAAsE;AAGtE,uDAA2E;AAM3E,iBAAiB;AAEjB;IAA+B,oCAAoB;IACjD,0BAAY,OAA8C;QACxD,IAAM,eAAe,GAAG,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAElE,IAAM,UAAU,GAAG,IAAI,uCAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzE,IAAM,UAAU,GAAG,IAAI,wBAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;QAEpF,IAAM,mBAAmB,GAAoE;YAC3F,OAAO,EAAE,eAAe,CAAC,OAAO;YAEhC,UAAU,EAAE,kCAAmB,CAAC,IAAI;YACpC,IAAI,EAAE,MAAM;YAEZ,KAAK,wBACA,oCAA+B,KAClC,GAAG,EAAE;oBACH,MAAM,wBAAO,oCAA+B,CAAC,GAAG,CAAC,MAAM,KAAE,KAAK,EAAE,MAAM,GAAE;oBACxE,QAAQ,EAAE,oCAA+B,CAAC,GAAG,CAAC,QAAQ;iBACvD,GACF;YACD,QAAQ,EAAE,KAAK;YAEf,oGAAoG;YACpG,WAAW,EAAE;gBACX,GAAG,EAAE,IAAA,sBAAS,EAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,oCAA+B,CAAC;gBACxG,MAAM,EAAE,IAAA,sBAAS,EAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,oCAA+B,CAAC;gBAC3G,IAAI,EAAE,IAAA,sBAAS,EAAC,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,oCAA+B,CAAC;aACxG;SACF,CAAA;QAED,IAAM,gBAAgB,GAAG,IAAI,6BAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAA;eAElG,kBAAM,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,CAAC;IAClE,CAAC;IACH,uBAAC;AAAD,CAAC,AAlCD,CAA+B,uCAAoB,GAkClD;AAED,UAAU;AAEV,SAAgB,kBAAkB,CAAC,OAAmD;IAAnD,wBAAA,EAAA,YAAmD;IACpF,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC;AAFD,gDAEC;AAEY,QAAA,6BAA6B,GAAwB;IAChE,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,iCAAiC;IACzC,OAAO,EAAE,IAAI;IACb,gBAAgB,EAAE,sBAAsB;IACxC,gBAAgB,EAAE,8BAA8B;IAChD,qBAAqB,EAAE,4CAA4C;CACpE,CAAA;AAED,IAAM,6BAA6B,GAAwB,qCAA6B,CAAA;AAExF,SAAgB,yBAAyB,CAAC,OAA0C;IAA1C,wBAAA,EAAA,YAA0C;IAClF,OAAO;QACL,OAAO,wBAAO,6BAA6B,GAAK,OAAO,CAAE;KAC1D,CAAA;AACH,CAAC;AAJD,8DAIC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ERC20TokenMetadata, ERC20TokenOptions, EthereumProtocolNetwork } from '@airgap/ethereum/v1';
|
|
2
|
+
import { AirGapInterface, RecursivePartial } from '@airgap/module-kit';
|
|
3
|
+
import { BaseProtocolNetwork, BaseProtocolOptions } from '../../types/protocol';
|
|
4
|
+
import { BaseBaseProtocol } from '../BaseBaseProtocol';
|
|
5
|
+
export interface ERC20Token extends AirGapInterface<BaseBaseProtocol<string>, 'SingleTokenSubProtocol'> {
|
|
6
|
+
name(): Promise<string | undefined>;
|
|
7
|
+
symbol(): Promise<string | undefined>;
|
|
8
|
+
decimals(): Promise<number | undefined>;
|
|
9
|
+
tokenMetadata(): Promise<ERC20TokenMetadata>;
|
|
10
|
+
}
|
|
11
|
+
export declare function createERC20Token(metadata: ERC20TokenMetadata, options?: RecursivePartial<BaseProtocolOptions>): ERC20Token;
|
|
12
|
+
export declare const BASE_ERC20_MAINNET_PROTOCOL_NETWORK: BaseProtocolNetwork;
|
|
13
|
+
export declare function createERC20TokenOptions(metadata: ERC20TokenMetadata, network?: Partial<EthereumProtocolNetwork>): ERC20TokenOptions<BaseProtocolNetwork>;
|
|
14
|
+
export interface SerializedERC20Token {
|
|
15
|
+
metadata: ERC20TokenMetadata;
|
|
16
|
+
network: BaseProtocolNetwork;
|
|
17
|
+
}
|
|
18
|
+
export declare function serializeERC20Token(erc20Token: ERC20Token): Promise<SerializedERC20Token>;
|
|
19
|
+
export declare function deserializeERC20Token(serialized: SerializedERC20Token): ERC20Token;
|
|
20
|
+
export declare function isSerializedERC20Token(serialized: unknown): serialized is SerializedERC20Token;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Factory
|
|
3
|
+
var __extends = (this && this.__extends) || (function () {
|
|
4
|
+
var extendStatics = function (d, b) {
|
|
5
|
+
extendStatics = Object.setPrototypeOf ||
|
|
6
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
7
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
8
|
+
return extendStatics(d, b);
|
|
9
|
+
};
|
|
10
|
+
return function (d, b) {
|
|
11
|
+
if (typeof b !== "function" && b !== null)
|
|
12
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
13
|
+
extendStatics(d, b);
|
|
14
|
+
function __() { this.constructor = d; }
|
|
15
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
16
|
+
};
|
|
17
|
+
})();
|
|
18
|
+
var __assign = (this && this.__assign) || function () {
|
|
19
|
+
__assign = Object.assign || function(t) {
|
|
20
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
21
|
+
s = arguments[i];
|
|
22
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
23
|
+
t[p] = s[p];
|
|
24
|
+
}
|
|
25
|
+
return t;
|
|
26
|
+
};
|
|
27
|
+
return __assign.apply(this, arguments);
|
|
28
|
+
};
|
|
29
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
30
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
31
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
32
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
33
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
34
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
35
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
39
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
40
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
41
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
42
|
+
function step(op) {
|
|
43
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
44
|
+
while (_) try {
|
|
45
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
46
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
47
|
+
switch (op[0]) {
|
|
48
|
+
case 0: case 1: t = op; break;
|
|
49
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
50
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
51
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
52
|
+
default:
|
|
53
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
54
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
55
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
56
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
57
|
+
if (t[2]) _.ops.pop();
|
|
58
|
+
_.trys.pop(); continue;
|
|
59
|
+
}
|
|
60
|
+
op = body.call(thisArg, _);
|
|
61
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
62
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
66
|
+
exports.isSerializedERC20Token = exports.deserializeERC20Token = exports.serializeERC20Token = exports.createERC20TokenOptions = exports.BASE_ERC20_MAINNET_PROTOCOL_NETWORK = exports.createERC20Token = void 0;
|
|
67
|
+
var coinlib_core_1 = require("@airgap/coinlib-core");
|
|
68
|
+
var v1_1 = require("@airgap/ethereum/v1");
|
|
69
|
+
var module_kit_1 = require("@airgap/module-kit");
|
|
70
|
+
var HttpBaseNodeClient_1 = require("../../client/node/HttpBaseNodeClient");
|
|
71
|
+
var BaseBaseProtocol_1 = require("../BaseBaseProtocol");
|
|
72
|
+
var BaseProtocol_1 = require("../BaseProtocol");
|
|
73
|
+
// Implementation
|
|
74
|
+
var ERC20TokenImpl = /** @class */ (function (_super) {
|
|
75
|
+
__extends(ERC20TokenImpl, _super);
|
|
76
|
+
function ERC20TokenImpl(options) {
|
|
77
|
+
var nodeClient = new HttpBaseNodeClient_1.HttpBaseNodeClient(options.network.rpcUrl);
|
|
78
|
+
var infoClient = new v1_1.EtherscanInfoClient(options.network.blockExplorerApi);
|
|
79
|
+
var ethereumProtocol = new v1_1.ERC20TokenImpl(nodeClient, infoClient, options);
|
|
80
|
+
return _super.call(this, ethereumProtocol, nodeClient, infoClient, options) || this;
|
|
81
|
+
}
|
|
82
|
+
// SubProtocol
|
|
83
|
+
ERC20TokenImpl.prototype.getType = function () {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
85
|
+
return __generator(this, function (_a) {
|
|
86
|
+
return [2 /*return*/, this.ethereumProtocol.getType()];
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
ERC20TokenImpl.prototype.mainProtocol = function () {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
92
|
+
return __generator(this, function (_a) {
|
|
93
|
+
return [2 /*return*/, this.ethereumProtocol.mainProtocol()];
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
ERC20TokenImpl.prototype.getContractAddress = function () {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
99
|
+
return __generator(this, function (_a) {
|
|
100
|
+
return [2 /*return*/, this.ethereumProtocol.getContractAddress()];
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
// Custom
|
|
105
|
+
ERC20TokenImpl.prototype.name = function () {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
107
|
+
return __generator(this, function (_a) {
|
|
108
|
+
return [2 /*return*/, this.ethereumProtocol.name()];
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
ERC20TokenImpl.prototype.symbol = function () {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
114
|
+
return __generator(this, function (_a) {
|
|
115
|
+
return [2 /*return*/, this.ethereumProtocol.symbol()];
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
ERC20TokenImpl.prototype.decimals = function () {
|
|
120
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
121
|
+
return __generator(this, function (_a) {
|
|
122
|
+
return [2 /*return*/, this.ethereumProtocol.decimals()];
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
ERC20TokenImpl.prototype.tokenMetadata = function () {
|
|
127
|
+
var _a;
|
|
128
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
129
|
+
var mainUnit;
|
|
130
|
+
return __generator(this, function (_b) {
|
|
131
|
+
mainUnit = this.options.units[this.options.mainUnit];
|
|
132
|
+
return [2 /*return*/, {
|
|
133
|
+
name: this.options.name,
|
|
134
|
+
identifier: this.options.identifier,
|
|
135
|
+
symbol: mainUnit.symbol.value,
|
|
136
|
+
marketSymbol: (_a = mainUnit.symbol.market) !== null && _a !== void 0 ? _a : mainUnit.symbol.value,
|
|
137
|
+
contractAddress: this.options.contractAddress,
|
|
138
|
+
decimals: mainUnit.decimals
|
|
139
|
+
}];
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
return ERC20TokenImpl;
|
|
144
|
+
}(BaseBaseProtocol_1.BaseBaseProtocolImpl));
|
|
145
|
+
// Factory
|
|
146
|
+
function createERC20Token(metadata, options) {
|
|
147
|
+
if (options === void 0) { options = {}; }
|
|
148
|
+
var completeOptions = createERC20TokenOptions(metadata, options.network);
|
|
149
|
+
return new ERC20TokenImpl(completeOptions);
|
|
150
|
+
}
|
|
151
|
+
exports.createERC20Token = createERC20Token;
|
|
152
|
+
exports.BASE_ERC20_MAINNET_PROTOCOL_NETWORK = BaseProtocol_1.BASE_MAINNET_PROTOCOL_NETWORK;
|
|
153
|
+
var DEFAULT_ERC20_PROTOCOL_NETWORK = exports.BASE_ERC20_MAINNET_PROTOCOL_NETWORK;
|
|
154
|
+
function createERC20TokenOptions(metadata, network) {
|
|
155
|
+
var _a;
|
|
156
|
+
if (network === void 0) { network = {}; }
|
|
157
|
+
return {
|
|
158
|
+
network: __assign(__assign({}, DEFAULT_ERC20_PROTOCOL_NETWORK), network),
|
|
159
|
+
name: metadata.name,
|
|
160
|
+
identifier: metadata.identifier,
|
|
161
|
+
mainIdentifier: coinlib_core_1.MainProtocolSymbols.BASE,
|
|
162
|
+
contractAddress: metadata.contractAddress,
|
|
163
|
+
units: (_a = {},
|
|
164
|
+
_a[metadata.symbol] = {
|
|
165
|
+
symbol: { value: metadata.symbol, market: metadata.marketSymbol },
|
|
166
|
+
decimals: metadata.decimals
|
|
167
|
+
},
|
|
168
|
+
_a),
|
|
169
|
+
mainUnit: metadata.symbol
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
exports.createERC20TokenOptions = createERC20TokenOptions;
|
|
173
|
+
function serializeERC20Token(erc20Token) {
|
|
174
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
175
|
+
var _a, tokenMetadata, network;
|
|
176
|
+
return __generator(this, function (_b) {
|
|
177
|
+
switch (_b.label) {
|
|
178
|
+
case 0: return [4 /*yield*/, Promise.all([
|
|
179
|
+
erc20Token.tokenMetadata(),
|
|
180
|
+
erc20Token.getNetwork()
|
|
181
|
+
])];
|
|
182
|
+
case 1:
|
|
183
|
+
_a = _b.sent(), tokenMetadata = _a[0], network = _a[1];
|
|
184
|
+
return [2 /*return*/, { metadata: tokenMetadata, network: network }];
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
exports.serializeERC20Token = serializeERC20Token;
|
|
190
|
+
function deserializeERC20Token(serialized) {
|
|
191
|
+
return createERC20Token(serialized.metadata, { network: serialized.network });
|
|
192
|
+
}
|
|
193
|
+
exports.deserializeERC20Token = deserializeERC20Token;
|
|
194
|
+
function isSerializedERC20Token(serialized) {
|
|
195
|
+
return (0, module_kit_1.implementsInterface)(serialized, { metadata: 'required', network: 'required' });
|
|
196
|
+
}
|
|
197
|
+
exports.isSerializedERC20Token = isSerializedERC20Token;
|
|
198
|
+
//# sourceMappingURL=ERC20Token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ERC20Token.js","sourceRoot":"","sources":["../../../../src/v1/protocol/erc20/ERC20Token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseSignedTransaction, BaseUnsignedTransaction } from '../../../../types/transaction';
|
|
2
|
+
import { BaseTransactionSignRequest } from '../definitions/transaction-sign-request-base';
|
|
3
|
+
import { BaseTypedTransactionSignRequest } from '../definitions/transaction-sign-request-base-typed';
|
|
4
|
+
import { BaseTransactionSignResponse } from '../definitions/transaction-sign-response-base';
|
|
5
|
+
export declare function baseUnsignedTransactionToRequest(unsigned: BaseUnsignedTransaction, publicKey: string, callbackUrl?: string): BaseTransactionSignRequest | BaseTypedTransactionSignRequest;
|
|
6
|
+
export declare function baseSignedTransactionToResponse(signed: BaseSignedTransaction, accountIdentifier: string): BaseTransactionSignResponse;
|
|
7
|
+
export declare function baseTransactionSignRequestToUnsigned(request: BaseTransactionSignRequest | BaseTypedTransactionSignRequest): BaseUnsignedTransaction;
|
|
8
|
+
export declare function baseTransactionSignResponseToSigned(response: BaseTransactionSignResponse): BaseSignedTransaction;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.baseTransactionSignResponseToSigned = exports.baseTransactionSignRequestToUnsigned = exports.baseSignedTransactionToResponse = exports.baseUnsignedTransactionToRequest = void 0;
|
|
15
|
+
var v1_1 = require("@airgap/ethereum/v1");
|
|
16
|
+
var module_kit_1 = require("@airgap/module-kit");
|
|
17
|
+
function baseUnsignedTransactionToRequest(unsigned, publicKey, callbackUrl) {
|
|
18
|
+
var ethereumAnyTransactionSignRequest = (0, v1_1.ethereumUnsignedTransactionToRequest)(unsigned, publicKey, callbackUrl);
|
|
19
|
+
if (unsigned.ethereumType === 'raw') {
|
|
20
|
+
var ethereumTransactionSignRequest = ethereumAnyTransactionSignRequest;
|
|
21
|
+
var baseTransactionSignRequest = __assign(__assign({}, ethereumTransactionSignRequest), { transaction: __assign(__assign({}, ethereumTransactionSignRequest.transaction), { l1DataFee: unsigned.l1DataFee }) });
|
|
22
|
+
return baseTransactionSignRequest;
|
|
23
|
+
}
|
|
24
|
+
return ethereumAnyTransactionSignRequest;
|
|
25
|
+
}
|
|
26
|
+
exports.baseUnsignedTransactionToRequest = baseUnsignedTransactionToRequest;
|
|
27
|
+
function baseSignedTransactionToResponse(signed, accountIdentifier) {
|
|
28
|
+
return (0, v1_1.ethereumSignedTransactionToResponse)(__assign(__assign({}, signed), { serialized: signed.l1DataFee ? JSON.stringify({ serialized: signed.serialized, l1DataFee: signed.l1DataFee }) : signed.serialized }), accountIdentifier);
|
|
29
|
+
}
|
|
30
|
+
exports.baseSignedTransactionToResponse = baseSignedTransactionToResponse;
|
|
31
|
+
function baseTransactionSignRequestToUnsigned(request) {
|
|
32
|
+
var ethereumUnsignedTransaction = (0, v1_1.ethereumTransactionSignRequestToUnsigned)(request);
|
|
33
|
+
if (ethereumUnsignedTransaction.ethereumType === 'raw') {
|
|
34
|
+
var baseRawRequest = request;
|
|
35
|
+
return (0, module_kit_1.newUnsignedTransaction)(__assign(__assign({}, ethereumUnsignedTransaction), { l1DataFee: baseRawRequest.transaction.l1DataFee }));
|
|
36
|
+
}
|
|
37
|
+
return ethereumUnsignedTransaction;
|
|
38
|
+
}
|
|
39
|
+
exports.baseTransactionSignRequestToUnsigned = baseTransactionSignRequestToUnsigned;
|
|
40
|
+
function baseTransactionSignResponseToSigned(response) {
|
|
41
|
+
var ethereumSignedTransaction = (0, v1_1.ethereumTransactionSignResponseToSigned)(response);
|
|
42
|
+
try {
|
|
43
|
+
var _a = JSON.parse(ethereumSignedTransaction.serialized), serialized = _a.serialized, l1DataFee = _a.l1DataFee;
|
|
44
|
+
return (0, module_kit_1.newSignedTransaction)({
|
|
45
|
+
serialized: serialized,
|
|
46
|
+
l1DataFee: l1DataFee
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch (_b) {
|
|
50
|
+
return ethereumSignedTransaction;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.baseTransactionSignResponseToSigned = baseTransactionSignResponseToSigned;
|
|
54
|
+
//# sourceMappingURL=transaction-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-converter.js","sourceRoot":"","sources":["../../../../../../src/v1/serializer/v3/schemas/converter/transaction-converter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0CAM4B;AAC5B,iDAAiF;AAOjF,SAAgB,gCAAgC,CAC9C,QAAiC,EACjC,SAAiB,EACjB,WAAoB;IAEpB,IAAM,iCAAiC,GAAG,IAAA,yCAAoC,EAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;IAEhH,IAAI,QAAQ,CAAC,YAAY,KAAK,KAAK,EAAE;QACnC,IAAM,8BAA8B,GAAG,iCAAmE,CAAA;QAC1G,IAAM,0BAA0B,yBAC3B,8BAA8B,KACjC,WAAW,wBACN,8BAA8B,CAAC,WAAW,KAC7C,SAAS,EAAE,QAAQ,CAAC,SAAS,MAEhC,CAAA;QAED,OAAO,0BAA0B,CAAA;KAClC;IAED,OAAO,iCAAoE,CAAA;AAC7E,CAAC;AArBD,4EAqBC;AAED,SAAgB,+BAA+B,CAAC,MAA6B,EAAE,iBAAyB;IACtG,OAAO,IAAA,wCAAmC,wBAEnC,MAAM,KACT,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,KAEnI,iBAAiB,CAClB,CAAA;AACH,CAAC;AARD,0EAQC;AAED,SAAgB,oCAAoC,CAClD,OAAqE;IAErE,IAAM,2BAA2B,GAAG,IAAA,6CAAwC,EAAC,OAAO,CAAC,CAAA;IAErF,IAAI,2BAA2B,CAAC,YAAY,KAAK,KAAK,EAAE;QACtD,IAAM,cAAc,GAAG,OAAqC,CAAA;QAC5D,OAAO,IAAA,mCAAsB,wBACxB,2BAA2B,KAC9B,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,SAAS,IAC/C,CAAA;KACH;IAED,OAAO,2BAA2B,CAAA;AACpC,CAAC;AAdD,oFAcC;AAED,SAAgB,mCAAmC,CAAC,QAAqC;IACvF,IAAM,yBAAyB,GAAG,IAAA,4CAAuC,EAAC,QAAQ,CAAC,CAAA;IAEnF,IAAI;QACI,IAAA,KAA4B,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAA1E,UAAU,gBAAA,EAAE,SAAS,eAAqD,CAAA;QAElF,OAAO,IAAA,iCAAoB,EAAwB;YACjD,UAAU,YAAA;YACV,SAAS,WAAA;SACV,CAAC,CAAA;KACH;IAAC,WAAM;QACN,OAAO,yBAAyB,CAAA;KACjC;AACH,CAAC;AAbD,kFAaC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-sign-request-base-typed.js","sourceRoot":"","sources":["../../../../../../src/v1/serializer/v3/schemas/definitions/transaction-sign-request-base-typed.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TransactionSignRequest } from '@airgap/serializer';
|
|
2
|
+
import { HexString } from '@airgap/serializer/v3/schemas/definitions/hex-string';
|
|
3
|
+
import { BaseRawUnsignedTransaction } from '../../../../types/transaction';
|
|
4
|
+
export interface SerializableBaseRawUnsignedTransaction extends Omit<BaseRawUnsignedTransaction, 'type' | 'ethereumType'> {
|
|
5
|
+
nonce: HexString;
|
|
6
|
+
gasPrice: HexString;
|
|
7
|
+
gasLimit: HexString;
|
|
8
|
+
to: HexString;
|
|
9
|
+
value: HexString;
|
|
10
|
+
chainId: number;
|
|
11
|
+
data: HexString;
|
|
12
|
+
l1DataFee: string;
|
|
13
|
+
}
|
|
14
|
+
export interface BaseTransactionSignRequest extends TransactionSignRequest<SerializableBaseRawUnsignedTransaction> {
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-sign-request-base.js","sourceRoot":"","sources":["../../../../../../src/v1/serializer/v3/schemas/definitions/transaction-sign-request-base.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-sign-response-base.js","sourceRoot":"","sources":["../../../../../../src/v1/serializer/v3/schemas/definitions/transaction-sign-response-base.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/BaseTypedTransactionSignRequest",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"definitions": {
|
|
5
|
+
"HexString": {
|
|
6
|
+
"type": "string"
|
|
7
|
+
},
|
|
8
|
+
"BaseTypedTransactionSignRequest": {
|
|
9
|
+
"additionalProperties": false,
|
|
10
|
+
"properties": {
|
|
11
|
+
"callbackURL": {
|
|
12
|
+
"type": "string"
|
|
13
|
+
},
|
|
14
|
+
"publicKey": {
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
"transaction": {
|
|
18
|
+
"additionalProperties": false,
|
|
19
|
+
"properties": {
|
|
20
|
+
"derivationPath": {
|
|
21
|
+
"type": "string"
|
|
22
|
+
},
|
|
23
|
+
"masterFingerprint": {
|
|
24
|
+
"type": "string"
|
|
25
|
+
},
|
|
26
|
+
"serialized": {
|
|
27
|
+
"$ref": "#/definitions/HexString",
|
|
28
|
+
"type": "string"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"required": ["derivationPath", "masterFingerprint", "serialized"],
|
|
32
|
+
"type": "object"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"required": ["publicKey", "transaction"],
|
|
36
|
+
"type": "object"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/BaseTransactionSignRequest",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"definitions": {
|
|
5
|
+
"HexString": {
|
|
6
|
+
"type": "string"
|
|
7
|
+
},
|
|
8
|
+
"BaseTransactionSignRequest": {
|
|
9
|
+
"additionalProperties": false,
|
|
10
|
+
"properties": {
|
|
11
|
+
"callbackURL": {
|
|
12
|
+
"type": "string"
|
|
13
|
+
},
|
|
14
|
+
"publicKey": {
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
"transaction": {
|
|
18
|
+
"additionalProperties": false,
|
|
19
|
+
"properties": {
|
|
20
|
+
"chainId": {
|
|
21
|
+
"type": "number"
|
|
22
|
+
},
|
|
23
|
+
"data": {
|
|
24
|
+
"$ref": "#/definitions/HexString",
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
"gasLimit": {
|
|
28
|
+
"$ref": "#/definitions/HexString",
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"gasPrice": {
|
|
32
|
+
"$ref": "#/definitions/HexString",
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"l1DataFee": {
|
|
36
|
+
"type": "string"
|
|
37
|
+
},
|
|
38
|
+
"nonce": {
|
|
39
|
+
"$ref": "#/definitions/HexString",
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"to": {
|
|
43
|
+
"$ref": "#/definitions/HexString",
|
|
44
|
+
"type": "string"
|
|
45
|
+
},
|
|
46
|
+
"value": {
|
|
47
|
+
"$ref": "#/definitions/HexString",
|
|
48
|
+
"type": "string"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"required": ["chainId", "data", "gasLimit", "gasPrice", "l1DataFee", "nonce", "to", "value"],
|
|
52
|
+
"type": "object"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"required": ["publicKey", "transaction"],
|
|
56
|
+
"type": "object"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/BaseTransactionSignResponse",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"definitions": {
|
|
5
|
+
"BaseTransactionSignResponse": {
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"accountIdentifier": {
|
|
9
|
+
"type": "string"
|
|
10
|
+
},
|
|
11
|
+
"transaction": {
|
|
12
|
+
"type": "string"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": ["accountIdentifier", "transaction"],
|
|
16
|
+
"type": "object"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AirGapV3SerializerCompanion, SignedTransaction, UnsignedTransaction } from '@airgap/module-kit';
|
|
2
|
+
import { V3SchemaConfiguration } from '@airgap/module-kit/types/serializer';
|
|
3
|
+
import { TransactionSignRequest, TransactionSignResponse } from '@airgap/serializer';
|
|
4
|
+
export declare class BaseV3SerializerCompanion implements AirGapV3SerializerCompanion {
|
|
5
|
+
readonly schemas: V3SchemaConfiguration[];
|
|
6
|
+
private readonly ethereumTransactionValidator;
|
|
7
|
+
toTransactionSignRequest(identifier: string, unsignedTransaction: UnsignedTransaction, publicKey: string, callbackUrl?: string): Promise<TransactionSignRequest>;
|
|
8
|
+
fromTransactionSignRequest(identifier: string, transactionSignRequest: TransactionSignRequest): Promise<UnsignedTransaction>;
|
|
9
|
+
validateTransactionSignRequest(identifier: string, transactionSignRequest: TransactionSignRequest): Promise<boolean>;
|
|
10
|
+
toTransactionSignResponse(identifier: string, signedTransaction: SignedTransaction, accountIdentifier: string): Promise<TransactionSignResponse>;
|
|
11
|
+
fromTransactionSignResponse(identifier: string, transactionSignResponse: TransactionSignResponse): Promise<SignedTransaction>;
|
|
12
|
+
validateTransactionSignResponse(identifier: string, transactionSignResponse: TransactionSignResponse): Promise<boolean>;
|
|
13
|
+
}
|