@venturialstd/circle 0.0.1
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/README.md +171 -0
- package/dist/circle.module.d.ts +3 -0
- package/dist/circle.module.d.ts.map +1 -0
- package/dist/circle.module.js +61 -0
- package/dist/circle.module.js.map +1 -0
- package/dist/constants/circle.constant.d.ts +71 -0
- package/dist/constants/circle.constant.d.ts.map +1 -0
- package/dist/constants/circle.constant.js +84 -0
- package/dist/constants/circle.constant.js.map +1 -0
- package/dist/constants/circle.settings.constant.d.ts +7 -0
- package/dist/constants/circle.settings.constant.d.ts.map +1 -0
- package/dist/constants/circle.settings.constant.js +10 -0
- package/dist/constants/circle.settings.constant.js.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +19 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/entities/circle-api-operation.entity.d.ts +19 -0
- package/dist/entities/circle-api-operation.entity.d.ts.map +1 -0
- package/dist/entities/circle-api-operation.entity.js +112 -0
- package/dist/entities/circle-api-operation.entity.js.map +1 -0
- package/dist/entities/circle-challenge.entity.d.ts +17 -0
- package/dist/entities/circle-challenge.entity.d.ts.map +1 -0
- package/dist/entities/circle-challenge.entity.js +98 -0
- package/dist/entities/circle-challenge.entity.js.map +1 -0
- package/dist/entities/circle-nft-balance.entity.d.ts +16 -0
- package/dist/entities/circle-nft-balance.entity.d.ts.map +1 -0
- package/dist/entities/circle-nft-balance.entity.js +97 -0
- package/dist/entities/circle-nft-balance.entity.js.map +1 -0
- package/dist/entities/circle-token-balance.entity.d.ts +17 -0
- package/dist/entities/circle-token-balance.entity.d.ts.map +1 -0
- package/dist/entities/circle-token-balance.entity.js +102 -0
- package/dist/entities/circle-token-balance.entity.js.map +1 -0
- package/dist/entities/circle-token.entity.d.ts +17 -0
- package/dist/entities/circle-token.entity.d.ts.map +1 -0
- package/dist/entities/circle-token.entity.js +102 -0
- package/dist/entities/circle-token.entity.js.map +1 -0
- package/dist/entities/circle-transaction.entity.d.ts +53 -0
- package/dist/entities/circle-transaction.entity.d.ts.map +1 -0
- package/dist/entities/circle-transaction.entity.js +215 -0
- package/dist/entities/circle-transaction.entity.js.map +1 -0
- package/dist/entities/circle-wallet-set.entity.d.ts +11 -0
- package/dist/entities/circle-wallet-set.entity.d.ts.map +1 -0
- package/dist/entities/circle-wallet-set.entity.js +71 -0
- package/dist/entities/circle-wallet-set.entity.js.map +1 -0
- package/dist/entities/circle-wallet.entity.d.ts +21 -0
- package/dist/entities/circle-wallet.entity.d.ts.map +1 -0
- package/dist/entities/circle-wallet.entity.js +118 -0
- package/dist/entities/circle-wallet.entity.js.map +1 -0
- package/dist/entities/index.d.ts +9 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +25 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/services/circle-api-operation.service.d.ts +8 -0
- package/dist/services/circle-api-operation.service.d.ts.map +1 -0
- package/dist/services/circle-api-operation.service.js +34 -0
- package/dist/services/circle-api-operation.service.js.map +1 -0
- package/dist/services/circle-api.service.d.ts +24 -0
- package/dist/services/circle-api.service.d.ts.map +1 -0
- package/dist/services/circle-api.service.js +172 -0
- package/dist/services/circle-api.service.js.map +1 -0
- package/dist/services/circle-challenge.service.d.ts +14 -0
- package/dist/services/circle-challenge.service.d.ts.map +1 -0
- package/dist/services/circle-challenge.service.js +81 -0
- package/dist/services/circle-challenge.service.js.map +1 -0
- package/dist/services/circle-nft-balance.service.d.ts +14 -0
- package/dist/services/circle-nft-balance.service.d.ts.map +1 -0
- package/dist/services/circle-nft-balance.service.js +92 -0
- package/dist/services/circle-nft-balance.service.js.map +1 -0
- package/dist/services/circle-token-balance.service.d.ts +16 -0
- package/dist/services/circle-token-balance.service.d.ts.map +1 -0
- package/dist/services/circle-token-balance.service.js +146 -0
- package/dist/services/circle-token-balance.service.js.map +1 -0
- package/dist/services/circle-token.service.d.ts +11 -0
- package/dist/services/circle-token.service.d.ts.map +1 -0
- package/dist/services/circle-token.service.js +62 -0
- package/dist/services/circle-token.service.js.map +1 -0
- package/dist/services/circle-transaction.service.d.ts +16 -0
- package/dist/services/circle-transaction.service.d.ts.map +1 -0
- package/dist/services/circle-transaction.service.js +148 -0
- package/dist/services/circle-transaction.service.js.map +1 -0
- package/dist/services/circle-wallet-set.service.d.ts +15 -0
- package/dist/services/circle-wallet-set.service.d.ts.map +1 -0
- package/dist/services/circle-wallet-set.service.js +95 -0
- package/dist/services/circle-wallet-set.service.js.map +1 -0
- package/dist/services/circle-wallet.service.d.ts +19 -0
- package/dist/services/circle-wallet.service.d.ts.map +1 -0
- package/dist/services/circle-wallet.service.js +275 -0
- package/dist/services/circle-wallet.service.js.map +1 -0
- package/dist/services/index.d.ts +10 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +26 -0
- package/dist/services/index.js.map +1 -0
- package/dist/settings/circle.settings.d.ts +3 -0
- package/dist/settings/circle.settings.d.ts.map +1 -0
- package/dist/settings/circle.settings.js +55 -0
- package/dist/settings/circle.settings.js.map +1 -0
- package/dist/types/circle-api.types.d.ts +127 -0
- package/dist/types/circle-api.types.d.ts.map +1 -0
- package/dist/types/circle-api.types.js +3 -0
- package/dist/types/circle-api.types.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circle-token.service.d.ts","sourceRoot":"","sources":["../../src/services/circle-token.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,qBACa,kBAAmB,SAAQ,kBAAkB,CAAC,WAAW,CAAC;aAKnD,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;IAJ/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;gBAI5C,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;IAQzC,mBAAmB,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;CA2B5E"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var CircleTokenService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.CircleTokenService = void 0;
|
|
17
|
+
const crud_typeorm_1 = require("@dataui/crud-typeorm");
|
|
18
|
+
const common_1 = require("@nestjs/common");
|
|
19
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
20
|
+
const typeorm_2 = require("typeorm");
|
|
21
|
+
const circle_token_entity_1 = require("../entities/circle-token.entity");
|
|
22
|
+
let CircleTokenService = CircleTokenService_1 = class CircleTokenService extends crud_typeorm_1.TypeOrmCrudService {
|
|
23
|
+
repo;
|
|
24
|
+
logger = new common_1.Logger(CircleTokenService_1.name);
|
|
25
|
+
constructor(repo) {
|
|
26
|
+
super(repo);
|
|
27
|
+
this.repo = repo;
|
|
28
|
+
}
|
|
29
|
+
async saveTokenFromCircle(tokenData) {
|
|
30
|
+
const existing = await this.repo.findOne({
|
|
31
|
+
where: { circleId: tokenData.id },
|
|
32
|
+
});
|
|
33
|
+
const tokenDataToSave = {
|
|
34
|
+
circleId: tokenData.id,
|
|
35
|
+
tokenAddress: tokenData.tokenAddress || undefined,
|
|
36
|
+
blockchain: tokenData.blockchain,
|
|
37
|
+
name: tokenData.name,
|
|
38
|
+
symbol: tokenData.symbol,
|
|
39
|
+
decimals: tokenData.decimals,
|
|
40
|
+
isNative: tokenData.isNative || false,
|
|
41
|
+
standard: tokenData.standard,
|
|
42
|
+
metadata: tokenData,
|
|
43
|
+
circleCreateDate: tokenData.createDate ? new Date(tokenData.createDate) : undefined,
|
|
44
|
+
circleUpdateDate: tokenData.updateDate ? new Date(tokenData.updateDate) : undefined,
|
|
45
|
+
};
|
|
46
|
+
if (existing) {
|
|
47
|
+
Object.assign(existing, tokenDataToSave);
|
|
48
|
+
return await this.repo.save(existing);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const token = this.repo.create(tokenDataToSave);
|
|
52
|
+
return await this.repo.save(token);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
exports.CircleTokenService = CircleTokenService;
|
|
57
|
+
exports.CircleTokenService = CircleTokenService = CircleTokenService_1 = __decorate([
|
|
58
|
+
(0, common_1.Injectable)(),
|
|
59
|
+
__param(0, (0, typeorm_1.InjectRepository)(circle_token_entity_1.CircleToken)),
|
|
60
|
+
__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
61
|
+
], CircleTokenService);
|
|
62
|
+
//# sourceMappingURL=circle-token.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circle-token.service.js","sourceRoot":"","sources":["../../src/services/circle-token.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAA0D;AAC1D,2CAAoD;AACpD,6CAAmD;AACnD,qCAAqC;AAErC,yEAA8D;AAIvD,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,iCAA+B;IAKnD;IAJD,MAAM,GAAG,IAAI,eAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IAE9D,YAEkB,IAA6B;QAE7C,KAAK,CAAC,IAAI,CAAC,CAAC;QAFI,SAAI,GAAJ,IAAI,CAAyB;IAG/C,CAAC;IAKD,KAAK,CAAC,mBAAmB,CAAC,SAA0B;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE;SAClC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAyB;YAC5C,QAAQ,EAAE,SAAS,CAAC,EAAE;YACtB,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,SAAS;YACjD,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,KAAK;YACrC,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,QAAQ,EAAE,SAAoC;YAC9C,gBAAgB,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;YACnF,gBAAgB,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;SACpF,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YACzC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAChD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;CACF,CAAA;AAxCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,0BAAgB,EAAC,iCAAW,CAAC,CAAA;qCACR,oBAAU;GALvB,kBAAkB,CAwC9B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TypeOrmCrudService } from '@dataui/crud-typeorm';
|
|
2
|
+
import { Repository } from 'typeorm';
|
|
3
|
+
import { CircleTransaction } from '../entities/circle-transaction.entity';
|
|
4
|
+
import { CircleFeeData, CircleTransactionData } from '../types/circle-api.types';
|
|
5
|
+
import { CircleApiService } from './circle-api.service';
|
|
6
|
+
export declare class CircleTransactionService extends TypeOrmCrudService<CircleTransaction> {
|
|
7
|
+
repo: Repository<CircleTransaction>;
|
|
8
|
+
private readonly circleApiService;
|
|
9
|
+
private readonly logger;
|
|
10
|
+
constructor(repo: Repository<CircleTransaction>, circleApiService: CircleApiService);
|
|
11
|
+
createTransaction(walletId: string, amounts: string[], destinationAddress: string, tokenId?: string, blockchain?: string, tokenAddress?: string, fee?: CircleFeeData, nftTokenIds?: string[], refId?: string, idempotencyKey?: string): Promise<CircleTransaction>;
|
|
12
|
+
listTransactions(blockchain?: string, destinationAddress?: string, state?: string, txHash?: string, txType?: string, walletIds?: string[], from?: string, to?: string, pageAfter?: string, pageBefore?: string, pageSize?: number): Promise<CircleTransaction[]>;
|
|
13
|
+
getTransaction(transactionId: string): Promise<CircleTransaction | null>;
|
|
14
|
+
saveTransactionFromCircle(txData: CircleTransactionData): Promise<CircleTransaction>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=circle-transaction.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circle-transaction.service.d.ts","sourceRoot":"","sources":["../../src/services/circle-transaction.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAEL,aAAa,EACb,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,qBACa,wBAAyB,SAAQ,kBAAkB,CAAC,iBAAiB,CAAC;IAKxE,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IALnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAI3D,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,EACzB,gBAAgB,EAAE,gBAAgB;IAQ/C,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,EACjB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,aAAa,EACnB,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,iBAAiB,CAAC;IAiCvB,gBAAgB,CACpB,UAAU,CAAC,EAAE,MAAM,EACnB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAqCzB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAmBxE,yBAAyB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA8D3F"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var CircleTransactionService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.CircleTransactionService = void 0;
|
|
17
|
+
const crud_typeorm_1 = require("@dataui/crud-typeorm");
|
|
18
|
+
const common_1 = require("@nestjs/common");
|
|
19
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
20
|
+
const typeorm_2 = require("typeorm");
|
|
21
|
+
const circle_constant_1 = require("../constants/circle.constant");
|
|
22
|
+
const circle_transaction_entity_1 = require("../entities/circle-transaction.entity");
|
|
23
|
+
const circle_api_service_1 = require("./circle-api.service");
|
|
24
|
+
let CircleTransactionService = CircleTransactionService_1 = class CircleTransactionService extends crud_typeorm_1.TypeOrmCrudService {
|
|
25
|
+
repo;
|
|
26
|
+
circleApiService;
|
|
27
|
+
logger = new common_1.Logger(CircleTransactionService_1.name);
|
|
28
|
+
constructor(repo, circleApiService) {
|
|
29
|
+
super(repo);
|
|
30
|
+
this.repo = repo;
|
|
31
|
+
this.circleApiService = circleApiService;
|
|
32
|
+
}
|
|
33
|
+
async createTransaction(walletId, amounts, destinationAddress, tokenId, blockchain, tokenAddress, fee, nftTokenIds, refId, idempotencyKey) {
|
|
34
|
+
const payload = {
|
|
35
|
+
walletId,
|
|
36
|
+
amounts,
|
|
37
|
+
destinationAddress,
|
|
38
|
+
...(tokenId && { tokenId }),
|
|
39
|
+
...(blockchain && tokenAddress !== undefined && { blockchain, tokenAddress }),
|
|
40
|
+
...(fee && { fee }),
|
|
41
|
+
...(nftTokenIds && { nftTokenIds }),
|
|
42
|
+
...(refId && { refId }),
|
|
43
|
+
...(idempotencyKey && { idempotencyKey }),
|
|
44
|
+
};
|
|
45
|
+
const response = await this.circleApiService.makeApiCall(circle_constant_1.CircleApiOperationType.CREATE_TRANSACTION, '/v1/w3s/developer/transactions/transfer', 'POST', payload, idempotencyKey);
|
|
46
|
+
if (response.data?.transaction) {
|
|
47
|
+
return await this.saveTransactionFromCircle(response.data.transaction);
|
|
48
|
+
}
|
|
49
|
+
throw new Error('Failed to create transaction');
|
|
50
|
+
}
|
|
51
|
+
async listTransactions(blockchain, destinationAddress, state, txHash, txType, walletIds, from, to, pageAfter, pageBefore, pageSize) {
|
|
52
|
+
const params = new URLSearchParams();
|
|
53
|
+
if (blockchain)
|
|
54
|
+
params.append('blockchain', blockchain);
|
|
55
|
+
if (destinationAddress)
|
|
56
|
+
params.append('destinationAddress', destinationAddress);
|
|
57
|
+
if (state)
|
|
58
|
+
params.append('state', state);
|
|
59
|
+
if (txHash)
|
|
60
|
+
params.append('txHash', txHash);
|
|
61
|
+
if (txType)
|
|
62
|
+
params.append('txType', txType);
|
|
63
|
+
if (walletIds)
|
|
64
|
+
params.append('walletIds', walletIds.join(','));
|
|
65
|
+
if (from)
|
|
66
|
+
params.append('from', from);
|
|
67
|
+
if (to)
|
|
68
|
+
params.append('to', to);
|
|
69
|
+
if (pageAfter)
|
|
70
|
+
params.append('pageAfter', pageAfter);
|
|
71
|
+
if (pageBefore)
|
|
72
|
+
params.append('pageBefore', pageBefore);
|
|
73
|
+
if (pageSize)
|
|
74
|
+
params.append('pageSize', pageSize.toString());
|
|
75
|
+
const response = await this.circleApiService.makeApiCall(circle_constant_1.CircleApiOperationType.LIST_TRANSACTIONS, `/v1/w3s/developer/transactions?${params.toString()}`, 'GET');
|
|
76
|
+
const transactions = [];
|
|
77
|
+
if (response.data?.transactions) {
|
|
78
|
+
for (const txData of response.data.transactions) {
|
|
79
|
+
const transaction = await this.saveTransactionFromCircle(txData);
|
|
80
|
+
transactions.push(transaction);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return transactions;
|
|
84
|
+
}
|
|
85
|
+
async getTransaction(transactionId) {
|
|
86
|
+
const response = await this.circleApiService.makeApiCall(circle_constant_1.CircleApiOperationType.GET_TRANSACTION, `/v1/w3s/developer/transactions/${transactionId}`, 'GET');
|
|
87
|
+
if (response.data?.transaction) {
|
|
88
|
+
return await this.saveTransactionFromCircle(response.data.transaction);
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
async saveTransactionFromCircle(txData) {
|
|
93
|
+
const existing = await this.repo.findOne({
|
|
94
|
+
where: { circleId: txData.id },
|
|
95
|
+
});
|
|
96
|
+
const txDataToSave = {
|
|
97
|
+
circleId: txData.id,
|
|
98
|
+
blockchain: txData.blockchain,
|
|
99
|
+
state: txData.state,
|
|
100
|
+
transactionType: txData.transactionType,
|
|
101
|
+
operation: txData.operation,
|
|
102
|
+
walletId: txData.walletId,
|
|
103
|
+
userId: txData.userId,
|
|
104
|
+
sourceAddress: txData.sourceAddress,
|
|
105
|
+
destinationAddress: txData.destinationAddress,
|
|
106
|
+
amounts: txData.amounts,
|
|
107
|
+
amountInUSD: txData.amountInUSD?.toString(),
|
|
108
|
+
tokenId: txData.tokenId,
|
|
109
|
+
tokenAddress: txData.tokenAddress,
|
|
110
|
+
txHash: txData.txHash,
|
|
111
|
+
blockHash: txData.blockHash,
|
|
112
|
+
blockHeight: txData.blockHeight,
|
|
113
|
+
contractAddress: txData.contractAddress,
|
|
114
|
+
abiFunctionSignature: txData.abiFunctionSignature,
|
|
115
|
+
abiParameters: txData.abiParameters,
|
|
116
|
+
callData: txData.callData,
|
|
117
|
+
estimatedFee: txData.estimatedFee,
|
|
118
|
+
feeLevel: txData.feeLevel,
|
|
119
|
+
networkFee: txData.networkFee?.toString(),
|
|
120
|
+
networkFeeInUSD: txData.networkFeeInUSD?.toString(),
|
|
121
|
+
nfts: typeof txData.nfts === 'string' ? [txData.nfts] : txData.nfts,
|
|
122
|
+
refId: txData.refId,
|
|
123
|
+
errorReason: txData.errorReason,
|
|
124
|
+
errorDetails: txData.errorDetails,
|
|
125
|
+
transactionScreeningEvaluation: txData.transactionScreeningEvaluation,
|
|
126
|
+
circleCreateDate: txData.createDate ? new Date(txData.createDate) : undefined,
|
|
127
|
+
circleUpdateDate: txData.updateDate ? new Date(txData.updateDate) : undefined,
|
|
128
|
+
firstConfirmDate: txData.firstConfirmDate ? new Date(txData.firstConfirmDate) : undefined,
|
|
129
|
+
metadata: txData,
|
|
130
|
+
};
|
|
131
|
+
if (existing) {
|
|
132
|
+
Object.assign(existing, txDataToSave);
|
|
133
|
+
return await this.repo.save(existing);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
const transaction = this.repo.create(txDataToSave);
|
|
137
|
+
return await this.repo.save(transaction);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
exports.CircleTransactionService = CircleTransactionService;
|
|
142
|
+
exports.CircleTransactionService = CircleTransactionService = CircleTransactionService_1 = __decorate([
|
|
143
|
+
(0, common_1.Injectable)(),
|
|
144
|
+
__param(0, (0, typeorm_1.InjectRepository)(circle_transaction_entity_1.CircleTransaction)),
|
|
145
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
146
|
+
circle_api_service_1.CircleApiService])
|
|
147
|
+
], CircleTransactionService);
|
|
148
|
+
//# sourceMappingURL=circle-transaction.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circle-transaction.service.js","sourceRoot":"","sources":["../../src/services/circle-transaction.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TypeOrmCrudService } from '@dataui/crud-typeorm';
|
|
2
|
+
import { Repository } from 'typeorm';
|
|
3
|
+
import { CircleWalletSet } from '../entities/circle-wallet-set.entity';
|
|
4
|
+
import { CircleWalletSetData } from '../types/circle-api.types';
|
|
5
|
+
import { CircleApiService } from './circle-api.service';
|
|
6
|
+
export declare class CircleWalletSetService extends TypeOrmCrudService<CircleWalletSet> {
|
|
7
|
+
repo: Repository<CircleWalletSet>;
|
|
8
|
+
private readonly circleApiService;
|
|
9
|
+
private readonly logger;
|
|
10
|
+
constructor(repo: Repository<CircleWalletSet>, circleApiService: CircleApiService);
|
|
11
|
+
createWalletSet(name: string, idempotencyKey?: string): Promise<CircleWalletSet>;
|
|
12
|
+
getWalletSet(walletSetId: string): Promise<CircleWalletSet | null>;
|
|
13
|
+
saveWalletSetFromCircle(walletSetData: CircleWalletSetData): Promise<CircleWalletSet>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=circle-wallet-set.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circle-wallet-set.service.d.ts","sourceRoot":"","sources":["../../src/services/circle-wallet-set.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAqB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,qBACa,sBAAuB,SAAQ,kBAAkB,CAAC,eAAe,CAAC;IAKpE,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IALnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;gBAIzD,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,EACvB,gBAAgB,EAAE,gBAAgB;IAQ/C,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAgEhF,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAelE,uBAAuB,CAAC,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;CAqB5F"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var CircleWalletSetService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.CircleWalletSetService = void 0;
|
|
17
|
+
const crud_typeorm_1 = require("@dataui/crud-typeorm");
|
|
18
|
+
const common_1 = require("@nestjs/common");
|
|
19
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
20
|
+
const typeorm_2 = require("typeorm");
|
|
21
|
+
const circle_constant_1 = require("../constants/circle.constant");
|
|
22
|
+
const circle_wallet_set_entity_1 = require("../entities/circle-wallet-set.entity");
|
|
23
|
+
const circle_api_service_1 = require("./circle-api.service");
|
|
24
|
+
let CircleWalletSetService = CircleWalletSetService_1 = class CircleWalletSetService extends crud_typeorm_1.TypeOrmCrudService {
|
|
25
|
+
repo;
|
|
26
|
+
circleApiService;
|
|
27
|
+
logger = new common_1.Logger(CircleWalletSetService_1.name);
|
|
28
|
+
constructor(repo, circleApiService) {
|
|
29
|
+
super(repo);
|
|
30
|
+
this.repo = repo;
|
|
31
|
+
this.circleApiService = circleApiService;
|
|
32
|
+
}
|
|
33
|
+
async createWalletSet(name, idempotencyKey) {
|
|
34
|
+
try {
|
|
35
|
+
const client = await this.circleApiService.getDeveloperClient();
|
|
36
|
+
const input = { name };
|
|
37
|
+
if (idempotencyKey) {
|
|
38
|
+
input.idempotencyKey = idempotencyKey;
|
|
39
|
+
}
|
|
40
|
+
const response = await client.createWalletSet(input);
|
|
41
|
+
await this.circleApiService.logApiOperation(circle_constant_1.CircleApiOperationType.CREATE_WALLET_SET, '/v1/w3s/developer/walletSets', 'POST', input, response.data ? { walletSet: { id: response.data.walletSet?.id } } : undefined, 200, undefined, undefined, idempotencyKey);
|
|
42
|
+
if (response.data?.walletSet) {
|
|
43
|
+
const walletSetData = {
|
|
44
|
+
id: response.data.walletSet.id,
|
|
45
|
+
name,
|
|
46
|
+
createDate: response.data.walletSet.createDate,
|
|
47
|
+
updateDate: response.data.walletSet.updateDate,
|
|
48
|
+
};
|
|
49
|
+
return await this.saveWalletSetFromCircle(walletSetData);
|
|
50
|
+
}
|
|
51
|
+
throw new Error('Failed to create wallet set: No wallet set data in response');
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
55
|
+
this.logger.error(`Failed to create wallet set: ${errorMessage}`, error);
|
|
56
|
+
await this.circleApiService.logApiOperation(circle_constant_1.CircleApiOperationType.CREATE_WALLET_SET, '/v1/w3s/developer/walletSets', 'POST', { name, idempotencyKey }, undefined, undefined, errorMessage, undefined, idempotencyKey);
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async getWalletSet(walletSetId) {
|
|
61
|
+
const response = await this.circleApiService.makeApiCall(circle_constant_1.CircleApiOperationType.GET_WALLET, `/v1/w3s/developer/walletSets/${walletSetId}`, 'GET');
|
|
62
|
+
if (response.data?.walletSet) {
|
|
63
|
+
return await this.saveWalletSetFromCircle(response.data.walletSet);
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
async saveWalletSetFromCircle(walletSetData) {
|
|
68
|
+
const existing = await this.repo.findOne({
|
|
69
|
+
where: { circleId: walletSetData.id },
|
|
70
|
+
});
|
|
71
|
+
const walletSetDataToSave = {
|
|
72
|
+
circleId: walletSetData.id,
|
|
73
|
+
name: walletSetData.name,
|
|
74
|
+
metadata: walletSetData,
|
|
75
|
+
circleCreateDate: walletSetData.createDate ? new Date(walletSetData.createDate) : undefined,
|
|
76
|
+
circleUpdateDate: walletSetData.updateDate ? new Date(walletSetData.updateDate) : undefined,
|
|
77
|
+
};
|
|
78
|
+
if (existing) {
|
|
79
|
+
Object.assign(existing, walletSetDataToSave);
|
|
80
|
+
return await this.repo.save(existing);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const walletSet = this.repo.create(walletSetDataToSave);
|
|
84
|
+
return await this.repo.save(walletSet);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
exports.CircleWalletSetService = CircleWalletSetService;
|
|
89
|
+
exports.CircleWalletSetService = CircleWalletSetService = CircleWalletSetService_1 = __decorate([
|
|
90
|
+
(0, common_1.Injectable)(),
|
|
91
|
+
__param(0, (0, typeorm_1.InjectRepository)(circle_wallet_set_entity_1.CircleWalletSet)),
|
|
92
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
93
|
+
circle_api_service_1.CircleApiService])
|
|
94
|
+
], CircleWalletSetService);
|
|
95
|
+
//# sourceMappingURL=circle-wallet-set.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circle-wallet-set.service.js","sourceRoot":"","sources":["../../src/services/circle-wallet-set.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TypeOrmCrudService } from '@dataui/crud-typeorm';
|
|
2
|
+
import { Repository } from 'typeorm';
|
|
3
|
+
import { CircleWallet } from '../entities/circle-wallet.entity';
|
|
4
|
+
import { CircleWalletData } from '../types/circle-api.types';
|
|
5
|
+
import { CircleApiService } from './circle-api.service';
|
|
6
|
+
export declare class CircleWalletService extends TypeOrmCrudService<CircleWallet> {
|
|
7
|
+
readonly repo: Repository<CircleWallet>;
|
|
8
|
+
private readonly circleApiService;
|
|
9
|
+
private readonly logger;
|
|
10
|
+
constructor(repo: Repository<CircleWallet>, circleApiService: CircleApiService);
|
|
11
|
+
createWallets(blockchains: string[], walletSetId: string, count?: number, accountType?: string, metadata?: Array<{
|
|
12
|
+
name?: string;
|
|
13
|
+
refId?: string;
|
|
14
|
+
}>, idempotencyKey?: string): Promise<CircleWallet[]>;
|
|
15
|
+
listWallets(address?: string, blockchain?: string, walletSetId?: string, pageAfter?: string, pageBefore?: string, pageSize?: number): Promise<CircleWallet[]>;
|
|
16
|
+
getWallet(walletId: string): Promise<CircleWallet | null>;
|
|
17
|
+
saveWalletFromCircle(walletData: CircleWalletData): Promise<CircleWallet>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=circle-wallet.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circle-wallet.service.d.ts","sourceRoot":"","sources":["../../src/services/circle-wallet.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AASrC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAqB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,qBACa,mBAAoB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;aAKrD,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IALnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAI7C,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,EAC7B,gBAAgB,EAAE,gBAAgB;IAU/C,aAAa,CACjB,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAAU,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EACnD,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC;IAkSpB,WAAW,CACf,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,EAAE,CAAC;IA4BpB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAezD,oBAAoB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;CA8BhF"}
|