@xyo-network/xl1-rpc 1.7.17 → 1.7.19
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/neutral/index.mjs +225 -251
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/provider/client/MemoryXyoClient.d.ts +4 -5
- package/dist/neutral/provider/client/MemoryXyoClient.d.ts.map +1 -1
- package/dist/neutral/provider/client/PermissionsStore/MemoryPermissionsStore.d.ts.map +1 -0
- package/dist/neutral/provider/client/PermissionsStore/PermissionsStore.d.ts.map +1 -0
- package/dist/neutral/provider/client/PermissionsStore/getPermissionsStoreFromTransport.d.ts.map +1 -0
- package/dist/neutral/provider/client/PermissionsStore/index.d.ts.map +1 -0
- package/dist/neutral/provider/client/PermissionsStore/spec/MemoryPermissionsStore.spec.d.ts.map +1 -0
- package/dist/neutral/provider/client/index.d.ts +1 -1
- package/dist/neutral/provider/client/index.d.ts.map +1 -1
- package/dist/neutral/provider/host/Abstract.d.ts +9 -7
- package/dist/neutral/provider/host/Abstract.d.ts.map +1 -1
- package/dist/neutral/provider/host/MemoryXyoGateway.d.ts +5 -17
- package/dist/neutral/provider/host/MemoryXyoGateway.d.ts.map +1 -1
- package/dist/neutral/provider/host/index.d.ts +0 -2
- package/dist/neutral/provider/host/index.d.ts.map +1 -1
- package/dist/neutral/provider/index.d.ts +1 -0
- package/dist/neutral/provider/index.d.ts.map +1 -1
- package/dist/neutral/provider/provider/RpcXyoConnection.d.ts +0 -3
- package/dist/neutral/provider/provider/RpcXyoConnection.d.ts.map +1 -1
- package/dist/neutral/provider/provider/confirmSubmittedTransaction.d.ts +21 -0
- package/dist/neutral/provider/provider/confirmSubmittedTransaction.d.ts.map +1 -0
- package/dist/neutral/provider/provider/index.d.ts +1 -0
- package/dist/neutral/provider/provider/index.d.ts.map +1 -1
- package/dist/neutral/types/XyoGatewayRpc.d.ts +1 -1
- package/dist/neutral/types/XyoGatewayRpc.d.ts.map +1 -1
- package/dist/neutral/types/schema/XyoGatewayRpcSchemas.d.ts.map +1 -1
- package/dist/neutral/types/schema/common/JsonSchema.d.ts +7 -0
- package/dist/neutral/types/schema/common/JsonSchema.d.ts.map +1 -0
- package/dist/neutral/types/schema/common/index.d.ts +1 -0
- package/dist/neutral/types/schema/common/index.d.ts.map +1 -1
- package/dist/node/index-node.mjs +223 -249
- package/dist/node/index-node.mjs.map +1 -1
- package/dist/node/provider/client/MemoryXyoClient.d.ts +4 -5
- package/dist/node/provider/client/MemoryXyoClient.d.ts.map +1 -1
- package/dist/node/provider/client/PermissionsStore/MemoryPermissionsStore.d.ts.map +1 -0
- package/dist/node/provider/client/PermissionsStore/PermissionsStore.d.ts.map +1 -0
- package/dist/node/provider/client/PermissionsStore/getPermissionsStoreFromTransport.d.ts.map +1 -0
- package/dist/node/provider/client/PermissionsStore/index.d.ts.map +1 -0
- package/dist/node/provider/client/PermissionsStore/spec/MemoryPermissionsStore.spec.d.ts.map +1 -0
- package/dist/node/provider/client/index.d.ts +1 -1
- package/dist/node/provider/client/index.d.ts.map +1 -1
- package/dist/node/provider/host/Abstract.d.ts +9 -7
- package/dist/node/provider/host/Abstract.d.ts.map +1 -1
- package/dist/node/provider/host/MemoryXyoGateway.d.ts +5 -17
- package/dist/node/provider/host/MemoryXyoGateway.d.ts.map +1 -1
- package/dist/node/provider/host/index.d.ts +0 -2
- package/dist/node/provider/host/index.d.ts.map +1 -1
- package/dist/node/provider/index.d.ts +1 -0
- package/dist/node/provider/index.d.ts.map +1 -1
- package/dist/node/provider/provider/RpcXyoConnection.d.ts +0 -3
- package/dist/node/provider/provider/RpcXyoConnection.d.ts.map +1 -1
- package/dist/node/provider/provider/confirmSubmittedTransaction.d.ts +21 -0
- package/dist/node/provider/provider/confirmSubmittedTransaction.d.ts.map +1 -0
- package/dist/node/provider/provider/index.d.ts +1 -0
- package/dist/node/provider/provider/index.d.ts.map +1 -1
- package/dist/node/types/XyoGatewayRpc.d.ts +1 -1
- package/dist/node/types/XyoGatewayRpc.d.ts.map +1 -1
- package/dist/node/types/schema/XyoGatewayRpcSchemas.d.ts.map +1 -1
- package/dist/node/types/schema/common/JsonSchema.d.ts +7 -0
- package/dist/node/types/schema/common/JsonSchema.d.ts.map +1 -0
- package/dist/node/types/schema/common/index.d.ts +1 -0
- package/dist/node/types/schema/common/index.d.ts.map +1 -1
- package/package.json +36 -35
- package/src/provider/client/MemoryXyoClient.ts +7 -6
- package/src/provider/client/PermissionsStore/getPermissionsStoreFromTransport.ts +12 -0
- package/src/provider/client/index.ts +1 -1
- package/src/provider/client/spec/MemoryXyoClient.spec.ts +13 -10
- package/src/provider/host/Abstract.ts +28 -7
- package/src/provider/host/MemoryXyoGateway.ts +8 -70
- package/src/provider/host/index.ts +0 -2
- package/src/provider/host/spec/MemoryXyoGateway.spec.ts +9 -50
- package/src/provider/index.ts +1 -0
- package/src/provider/provider/RpcXyoConnection.ts +0 -11
- package/src/provider/provider/confirmSubmittedTransaction.ts +55 -0
- package/src/provider/provider/index.ts +1 -0
- package/src/types/XyoGatewayRpc.ts +1 -1
- package/src/types/schema/XyoGatewayRpcSchemas.ts +2 -0
- package/src/types/schema/common/JsonSchema.ts +19 -0
- package/src/types/schema/common/index.ts +1 -0
- package/dist/neutral/provider/client/XyoClient.d.ts +0 -6
- package/dist/neutral/provider/client/XyoClient.d.ts.map +0 -1
- package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts +0 -16
- package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts.map +0 -1
- package/dist/neutral/provider/host/PermissionsStore/MemoryPermissionsStore.d.ts.map +0 -1
- package/dist/neutral/provider/host/PermissionsStore/PermissionsStore.d.ts.map +0 -1
- package/dist/neutral/provider/host/PermissionsStore/getPermissionsStoreFromTransport.d.ts.map +0 -1
- package/dist/neutral/provider/host/PermissionsStore/index.d.ts.map +0 -1
- package/dist/neutral/provider/host/PermissionsStore/spec/MemoryPermissionsStore.spec.d.ts.map +0 -1
- package/dist/node/provider/client/XyoClient.d.ts +0 -6
- package/dist/node/provider/client/XyoClient.d.ts.map +0 -1
- package/dist/node/provider/host/JsonRpcXyoGateway.d.ts +0 -16
- package/dist/node/provider/host/JsonRpcXyoGateway.d.ts.map +0 -1
- package/dist/node/provider/host/PermissionsStore/MemoryPermissionsStore.d.ts.map +0 -1
- package/dist/node/provider/host/PermissionsStore/PermissionsStore.d.ts.map +0 -1
- package/dist/node/provider/host/PermissionsStore/getPermissionsStoreFromTransport.d.ts.map +0 -1
- package/dist/node/provider/host/PermissionsStore/index.d.ts.map +0 -1
- package/dist/node/provider/host/PermissionsStore/spec/MemoryPermissionsStore.spec.d.ts.map +0 -1
- package/src/provider/client/XyoClient.ts +0 -6
- package/src/provider/host/JsonRpcXyoGateway.ts +0 -41
- package/src/provider/host/PermissionsStore/getPermissionsStoreFromTransport.ts +0 -13
- /package/dist/neutral/provider/{host → client}/PermissionsStore/MemoryPermissionsStore.d.ts +0 -0
- /package/dist/neutral/provider/{host → client}/PermissionsStore/PermissionsStore.d.ts +0 -0
- /package/dist/neutral/provider/{host → client}/PermissionsStore/getPermissionsStoreFromTransport.d.ts +0 -0
- /package/dist/neutral/provider/{host → client}/PermissionsStore/index.d.ts +0 -0
- /package/dist/neutral/provider/{host → client}/PermissionsStore/spec/MemoryPermissionsStore.spec.d.ts +0 -0
- /package/dist/node/provider/{host → client}/PermissionsStore/MemoryPermissionsStore.d.ts +0 -0
- /package/dist/node/provider/{host → client}/PermissionsStore/PermissionsStore.d.ts +0 -0
- /package/dist/node/provider/{host → client}/PermissionsStore/getPermissionsStoreFromTransport.d.ts +0 -0
- /package/dist/node/provider/{host → client}/PermissionsStore/index.d.ts +0 -0
- /package/dist/node/provider/{host → client}/PermissionsStore/spec/MemoryPermissionsStore.spec.d.ts +0 -0
- /package/src/provider/{host → client}/PermissionsStore/MemoryPermissionsStore.ts +0 -0
- /package/src/provider/{host → client}/PermissionsStore/PermissionsStore.ts +0 -0
- /package/src/provider/{host → client}/PermissionsStore/index.ts +0 -0
- /package/src/provider/{host → client}/PermissionsStore/spec/MemoryPermissionsStore.spec.ts +0 -0
package/dist/node/index-node.mjs
CHANGED
|
@@ -647,74 +647,68 @@ var InvokerPermissionSchema = PermissionSchema.extend({
|
|
|
647
647
|
date: z20.number().optional()
|
|
648
648
|
});
|
|
649
649
|
var XyoGatewayRpcSchemas = {
|
|
650
|
+
/*
|
|
650
651
|
xyoGateway_addConnection: {
|
|
651
652
|
params: {
|
|
652
|
-
to:
|
|
653
|
-
|
|
654
|
-
]),
|
|
655
|
-
from: z20.tuple([
|
|
656
|
-
ChainConnectionSchema
|
|
657
|
-
])
|
|
653
|
+
to: z.tuple([ChainConnectionSchema]),
|
|
654
|
+
from: z.tuple([ChainConnectionSchema]),
|
|
658
655
|
},
|
|
659
656
|
result: {
|
|
660
|
-
to:
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
from: z20.tuple([
|
|
664
|
-
z20.boolean()
|
|
665
|
-
])
|
|
666
|
-
}
|
|
657
|
+
to: z.tuple([z.boolean()]),
|
|
658
|
+
from: z.tuple([z.boolean()]),
|
|
659
|
+
},
|
|
667
660
|
},
|
|
668
661
|
xyoGateway_connections: {
|
|
669
662
|
params: {
|
|
670
|
-
to:
|
|
671
|
-
from:
|
|
663
|
+
to: z.array(z.any()).length(0).optional(),
|
|
664
|
+
from: z.array(z.any()).length(0).optional(),
|
|
672
665
|
},
|
|
673
666
|
result: {
|
|
674
|
-
to:
|
|
675
|
-
from:
|
|
676
|
-
}
|
|
667
|
+
to: z.array(ChainConnectionSchema),
|
|
668
|
+
from: z.array(ChainConnectionSchema),
|
|
669
|
+
},
|
|
677
670
|
},
|
|
678
671
|
xyoGateway_getPermissions: {
|
|
679
672
|
params: {
|
|
680
|
-
to:
|
|
681
|
-
from:
|
|
673
|
+
to: z.array(z.any()).length(0).optional(),
|
|
674
|
+
from: z.array(z.any()).length(0).optional(),
|
|
682
675
|
},
|
|
683
676
|
result: {
|
|
684
|
-
to:
|
|
685
|
-
from:
|
|
686
|
-
}
|
|
677
|
+
to: z.array(InvokerPermissionSchema),
|
|
678
|
+
from: z.array(InvokerPermissionSchema),
|
|
679
|
+
},
|
|
687
680
|
},
|
|
688
681
|
xyoGateway_requestPermissions: {
|
|
689
682
|
params: {
|
|
690
|
-
to:
|
|
691
|
-
from:
|
|
683
|
+
to: z.array(PermissionSchema),
|
|
684
|
+
from: z.array(PermissionSchema),
|
|
692
685
|
},
|
|
693
686
|
result: {
|
|
694
|
-
to:
|
|
695
|
-
from:
|
|
696
|
-
}
|
|
687
|
+
to: z.boolean(),
|
|
688
|
+
from: z.boolean(),
|
|
689
|
+
},
|
|
697
690
|
},
|
|
698
691
|
xyoGateway_revokePermissions: {
|
|
699
692
|
params: {
|
|
700
|
-
to:
|
|
701
|
-
from:
|
|
693
|
+
to: z.array(PermissionSchema),
|
|
694
|
+
from: z.array(PermissionSchema),
|
|
702
695
|
},
|
|
703
696
|
result: {
|
|
704
|
-
to:
|
|
705
|
-
from:
|
|
706
|
-
}
|
|
697
|
+
to: z.boolean(),
|
|
698
|
+
from: z.boolean(),
|
|
699
|
+
},
|
|
707
700
|
},
|
|
708
701
|
xyoGateway_activeConnection: {
|
|
709
702
|
params: {
|
|
710
|
-
from:
|
|
711
|
-
to:
|
|
703
|
+
from: z.never(),
|
|
704
|
+
to: z.never(),
|
|
712
705
|
},
|
|
713
706
|
result: {
|
|
714
|
-
from:
|
|
715
|
-
to:
|
|
716
|
-
}
|
|
707
|
+
from: z.string().optional(),
|
|
708
|
+
to: z.string().optional(),
|
|
709
|
+
},
|
|
717
710
|
},
|
|
711
|
+
*/
|
|
718
712
|
xyoGateway_submitTransaction: {
|
|
719
713
|
params: {
|
|
720
714
|
from: z20.array(HydratedTransactionSchema),
|
|
@@ -761,57 +755,215 @@ var rpcEngineFromProvider = /* @__PURE__ */ __name((provider) => {
|
|
|
761
755
|
return engine;
|
|
762
756
|
}, "rpcEngineFromProvider");
|
|
763
757
|
|
|
764
|
-
// src/provider/
|
|
765
|
-
|
|
766
|
-
var AbstractXyoGateway = class {
|
|
758
|
+
// src/provider/client/MemoryXyoClient.ts
|
|
759
|
+
var MemoryXyoClient = class {
|
|
767
760
|
static {
|
|
768
|
-
__name(this, "
|
|
761
|
+
__name(this, "MemoryXyoClient");
|
|
769
762
|
}
|
|
770
|
-
|
|
771
|
-
|
|
763
|
+
gateways;
|
|
764
|
+
permissionsProvider;
|
|
765
|
+
constructor(gateways, permissionsProvider) {
|
|
766
|
+
this.gateways = gateways;
|
|
767
|
+
this.permissionsProvider = permissionsProvider;
|
|
772
768
|
}
|
|
773
769
|
};
|
|
774
770
|
|
|
775
|
-
// src/provider/
|
|
776
|
-
var
|
|
771
|
+
// src/provider/client/PermissionsStore/getPermissionsStoreFromTransport.ts
|
|
772
|
+
var getPermissionsStoreFromTransport = /* @__PURE__ */ __name((transport) => {
|
|
773
|
+
throw new Error("Not implemented");
|
|
774
|
+
}, "getPermissionsStoreFromTransport");
|
|
775
|
+
|
|
776
|
+
// src/provider/client/PermissionsStore/MemoryPermissionsStore.ts
|
|
777
|
+
var MemoryPermissionsStore = class {
|
|
777
778
|
static {
|
|
778
|
-
__name(this, "
|
|
779
|
+
__name(this, "MemoryPermissionsStore");
|
|
779
780
|
}
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
781
|
+
_store = /* @__PURE__ */ new Map();
|
|
782
|
+
getPermissions() {
|
|
783
|
+
return [
|
|
784
|
+
...this._store.values()
|
|
785
|
+
];
|
|
786
|
+
}
|
|
787
|
+
requestPermissions(permissions) {
|
|
788
|
+
const now = Date.now();
|
|
789
|
+
for (const perm of permissions) {
|
|
790
|
+
const key = this.getKey(perm);
|
|
791
|
+
this._store.set(key, {
|
|
792
|
+
...perm,
|
|
793
|
+
date: now
|
|
794
|
+
});
|
|
795
|
+
}
|
|
796
|
+
return true;
|
|
797
|
+
}
|
|
798
|
+
revokePermissions(permissions) {
|
|
799
|
+
for (const perm of permissions) {
|
|
800
|
+
const key = this.getKey(perm);
|
|
801
|
+
this._store.delete(key);
|
|
802
|
+
}
|
|
803
|
+
return true;
|
|
804
|
+
}
|
|
805
|
+
getKey(permission) {
|
|
806
|
+
return `${permission.invoker}::${permission.capability}`;
|
|
807
|
+
}
|
|
808
|
+
};
|
|
809
|
+
|
|
810
|
+
// src/provider/host/Abstract.ts
|
|
811
|
+
import { assertEx } from "@xylabs/assert";
|
|
812
|
+
var AbstractXyoGateway = class {
|
|
813
|
+
static {
|
|
814
|
+
__name(this, "AbstractXyoGateway");
|
|
784
815
|
}
|
|
785
816
|
activeConnection() {
|
|
786
|
-
throw new Error("
|
|
817
|
+
throw new Error("Deprecated method not implemented.");
|
|
787
818
|
}
|
|
788
|
-
addConnection(
|
|
789
|
-
throw new Error("
|
|
819
|
+
addConnection(config) {
|
|
820
|
+
throw new Error("Deprecated method not implemented.");
|
|
790
821
|
}
|
|
791
822
|
connections() {
|
|
792
|
-
throw new Error("
|
|
823
|
+
throw new Error("Deprecated method not implemented.");
|
|
793
824
|
}
|
|
794
825
|
getPermissions() {
|
|
795
|
-
|
|
826
|
+
throw new Error("Deprecated method not implemented.");
|
|
796
827
|
}
|
|
797
828
|
requestPermissions(permissions) {
|
|
798
|
-
|
|
829
|
+
throw new Error("Deprecated method not implemented.");
|
|
799
830
|
}
|
|
800
831
|
revokePermissions(permissions) {
|
|
801
|
-
|
|
832
|
+
throw new Error("Deprecated method not implemented.");
|
|
833
|
+
}
|
|
834
|
+
async submitTransaction(elevatedPayloads, additionalPayloads) {
|
|
835
|
+
return assertEx(assertEx(await this.connection(), () => "No active connection available for transaction submission").submitTransaction, () => "Active connection does not support transaction submission")(elevatedPayloads, additionalPayloads);
|
|
802
836
|
}
|
|
803
837
|
};
|
|
804
838
|
|
|
805
839
|
// src/provider/host/MemoryXyoGateway.ts
|
|
806
|
-
|
|
840
|
+
var MemoryXyoGateway = class extends AbstractXyoGateway {
|
|
841
|
+
static {
|
|
842
|
+
__name(this, "MemoryXyoGateway");
|
|
843
|
+
}
|
|
844
|
+
_connection;
|
|
845
|
+
_signer;
|
|
846
|
+
constructor(signer, connection) {
|
|
847
|
+
super();
|
|
848
|
+
this._signer = signer;
|
|
849
|
+
this._connection = connection;
|
|
850
|
+
}
|
|
851
|
+
connection() {
|
|
852
|
+
return this._connection;
|
|
853
|
+
}
|
|
854
|
+
signer() {
|
|
855
|
+
return this._signer;
|
|
856
|
+
}
|
|
857
|
+
};
|
|
807
858
|
|
|
808
|
-
// src/provider/
|
|
859
|
+
// src/provider/network/MemoryXyoNetwork.ts
|
|
860
|
+
import { isUndefined } from "@xylabs/typeof";
|
|
861
|
+
import { isNetworkStatus } from "@xyo-network/xl1-protocol";
|
|
862
|
+
import axios from "axios";
|
|
863
|
+
|
|
864
|
+
// src/provider/network/lib/FailedNetworkStatusPayloads.ts
|
|
865
|
+
import { NetworkStatusSchema } from "@xyo-network/xl1-protocol";
|
|
866
|
+
var unknownStatus = {
|
|
867
|
+
description: "Unknown Network Status",
|
|
868
|
+
schema: NetworkStatusSchema,
|
|
869
|
+
state: "unknown"
|
|
870
|
+
};
|
|
871
|
+
var errorStatus = {
|
|
872
|
+
description: "Error Fetching Network Status",
|
|
873
|
+
schema: NetworkStatusSchema,
|
|
874
|
+
state: "unknown"
|
|
875
|
+
};
|
|
876
|
+
|
|
877
|
+
// src/provider/network/lib/StatusNetworks.ts
|
|
878
|
+
var MainNetworkStats = {
|
|
879
|
+
id: "mainnet",
|
|
880
|
+
statusUrl: "https://xyo.network/chain-network-status-mainnet.json"
|
|
881
|
+
};
|
|
882
|
+
var SequenceNetworkStats = {
|
|
883
|
+
id: "sequence",
|
|
884
|
+
statusUrl: "https://beta.xyo.network/chain-network-status-sequence.json"
|
|
885
|
+
};
|
|
886
|
+
var LocalNetworkStats = {
|
|
887
|
+
id: "local",
|
|
888
|
+
statusUrl: "http://localhost:3002/chain-network-status-local.json"
|
|
889
|
+
};
|
|
890
|
+
var StatusNetworks = {
|
|
891
|
+
mainnet: MainNetworkStats,
|
|
892
|
+
sequence: SequenceNetworkStats,
|
|
893
|
+
local: LocalNetworkStats
|
|
894
|
+
};
|
|
895
|
+
|
|
896
|
+
// src/provider/network/MemoryXyoNetwork.ts
|
|
897
|
+
var MemoryXyoNetwork = class {
|
|
898
|
+
static {
|
|
899
|
+
__name(this, "MemoryXyoNetwork");
|
|
900
|
+
}
|
|
901
|
+
_networkId;
|
|
902
|
+
constructor(networkId) {
|
|
903
|
+
this._networkId = networkId;
|
|
904
|
+
}
|
|
905
|
+
async status() {
|
|
906
|
+
const statusNetwork = StatusNetworks[this._networkId];
|
|
907
|
+
if (isUndefined(statusNetwork)) {
|
|
908
|
+
throw new Error(`Unknown status network ID: ${this._networkId}`);
|
|
909
|
+
}
|
|
910
|
+
return await this.makeRequest(statusNetwork.statusUrl);
|
|
911
|
+
}
|
|
912
|
+
async makeRequest(url) {
|
|
913
|
+
try {
|
|
914
|
+
const response = await axios.get(url);
|
|
915
|
+
if (isNetworkStatus(response.data)) {
|
|
916
|
+
return response.data;
|
|
917
|
+
} else {
|
|
918
|
+
if (response.status === 200) {
|
|
919
|
+
console.error("Unknown network status response:", response.data);
|
|
920
|
+
return unknownStatus;
|
|
921
|
+
}
|
|
922
|
+
return errorStatus;
|
|
923
|
+
}
|
|
924
|
+
} catch (error) {
|
|
925
|
+
console.error("Error fetching network status:", error);
|
|
926
|
+
return errorStatus;
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
};
|
|
930
|
+
|
|
931
|
+
// src/provider/provider/confirmSubmittedTransaction.ts
|
|
809
932
|
import { delay } from "@xylabs/delay";
|
|
933
|
+
import { isDefined } from "@xylabs/typeof";
|
|
810
934
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
935
|
+
var DEFAULT_CONFIRMATION_ATTEMPTS = 20;
|
|
936
|
+
var DEFAULT_DELAY_BETWEEN_ATTEMPTS = 1e3;
|
|
937
|
+
var confirmSubmittedTransaction = /* @__PURE__ */ __name(async (provider, txBW, options) => {
|
|
938
|
+
const { attempts: maxAttempts = DEFAULT_CONFIRMATION_ATTEMPTS, delay: attemptDelay = DEFAULT_DELAY_BETWEEN_ATTEMPTS } = options || {};
|
|
939
|
+
const txBWHash = await PayloadBuilder.hash(txBW);
|
|
940
|
+
options?.logger?.log("\u2705 confirming transaction:", txBWHash, "\n");
|
|
941
|
+
let attempts = 0;
|
|
942
|
+
while (true) {
|
|
943
|
+
const tx = await provider.viewer?.transactionByHash(txBWHash) ?? void 0;
|
|
944
|
+
if (isDefined(tx)) {
|
|
945
|
+
options?.logger?.log("\u{1F37B} Transaction confirmed:", txBWHash, "\n");
|
|
946
|
+
return tx;
|
|
947
|
+
} else {
|
|
948
|
+
attempts++;
|
|
949
|
+
if (attempts > maxAttempts) {
|
|
950
|
+
options?.logger?.error(`\u26A0\uFE0F Transaction not confirmed after ${maxAttempts} attempts`);
|
|
951
|
+
throw new Error(`Transaction ${txBWHash} not confirmed after ${maxAttempts} attempts`);
|
|
952
|
+
} else {
|
|
953
|
+
options?.logger?.log(`\u{1F504} Transaction not confirmed yet, attempt ${attempts}. Retrying...`, "\n");
|
|
954
|
+
await delay(attemptDelay);
|
|
955
|
+
}
|
|
956
|
+
}
|
|
957
|
+
}
|
|
958
|
+
}, "confirmSubmittedTransaction");
|
|
959
|
+
|
|
960
|
+
// src/provider/provider/confirmTransaction.ts
|
|
961
|
+
import { delay as delay2 } from "@xylabs/delay";
|
|
962
|
+
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
811
963
|
var CONFIRMATION_ATTEMPTS = 20;
|
|
812
964
|
var DELAY_BETWEEN_ATTEMPTS = 1e3;
|
|
813
965
|
var confirmTransaction = /* @__PURE__ */ __name(async (provider, txBW, onConfirm, onTimeout) => {
|
|
814
|
-
const txBWHash = await
|
|
966
|
+
const txBWHash = await PayloadBuilder2.hash(txBW);
|
|
815
967
|
console.log("\u2705 confirming transaction:", txBWHash, "\n");
|
|
816
968
|
let confirmed = false;
|
|
817
969
|
let attempts = 0;
|
|
@@ -829,7 +981,7 @@ var confirmTransaction = /* @__PURE__ */ __name(async (provider, txBW, onConfirm
|
|
|
829
981
|
return;
|
|
830
982
|
} else {
|
|
831
983
|
console.log(`\u{1F504} Transaction not confirmed yet, attempt ${attempts}. Retrying...`, "\n");
|
|
832
|
-
await
|
|
984
|
+
await delay2(DELAY_BETWEEN_ATTEMPTS);
|
|
833
985
|
}
|
|
834
986
|
}
|
|
835
987
|
}
|
|
@@ -853,7 +1005,7 @@ var JsonRpcXyoRunner = class {
|
|
|
853
1005
|
|
|
854
1006
|
// src/provider/runner/MemoryXyoRunner.ts
|
|
855
1007
|
import { MemoryArchivist } from "@xyo-network/archivist-memory";
|
|
856
|
-
import { PayloadBuilder as
|
|
1008
|
+
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
|
|
857
1009
|
import { flattenHydratedTransaction } from "@xyo-network/xl1-protocol-sdk";
|
|
858
1010
|
var MemoryXyoRunner = class {
|
|
859
1011
|
static {
|
|
@@ -863,7 +1015,7 @@ var MemoryXyoRunner = class {
|
|
|
863
1015
|
async broadcastTransaction(transaction) {
|
|
864
1016
|
const archivist = await this.getArchivist();
|
|
865
1017
|
await archivist.insert(flattenHydratedTransaction(transaction));
|
|
866
|
-
return await
|
|
1018
|
+
return await PayloadBuilder3.hash(transaction[0]);
|
|
867
1019
|
}
|
|
868
1020
|
async getArchivist() {
|
|
869
1021
|
if (!this._archivist) {
|
|
@@ -878,7 +1030,7 @@ var MemoryXyoRunner = class {
|
|
|
878
1030
|
// src/provider/runner/NodeXyoRunner.ts
|
|
879
1031
|
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
880
1032
|
import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
881
|
-
import { PayloadBuilder as
|
|
1033
|
+
import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
|
|
882
1034
|
import { PayloadBundleSchema } from "@xyo-network/payload-model";
|
|
883
1035
|
import { flattenHydratedTransaction as flattenHydratedTransaction2 } from "@xyo-network/xl1-protocol-sdk";
|
|
884
1036
|
var NodeXyoRunner = class {
|
|
@@ -895,7 +1047,7 @@ var NodeXyoRunner = class {
|
|
|
895
1047
|
async broadcastTransaction(transaction) {
|
|
896
1048
|
const flattened = flattenHydratedTransaction2(transaction);
|
|
897
1049
|
const pendingArchivist = await this.getPendingArchivist();
|
|
898
|
-
const txHash = await
|
|
1050
|
+
const txHash = await PayloadBuilder4.hash(transaction[0]);
|
|
899
1051
|
const payloadBundle = {
|
|
900
1052
|
schema: PayloadBundleSchema,
|
|
901
1053
|
payloads: flattened,
|
|
@@ -1041,7 +1193,7 @@ var JsonRpcXyoViewer = class {
|
|
|
1041
1193
|
|
|
1042
1194
|
// src/provider/provider/XyoConnection.ts
|
|
1043
1195
|
import { assertEx as assertEx3 } from "@xylabs/assert";
|
|
1044
|
-
import { PayloadBuilder as
|
|
1196
|
+
import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
|
|
1045
1197
|
import { isAnyPayload } from "@xyo-network/payload-model";
|
|
1046
1198
|
import { defaultTransactionFees, isDataLakeProvider } from "@xyo-network/xl1-protocol";
|
|
1047
1199
|
import { HydratedTransactionWrapper } from "@xyo-network/xl1-wrappers";
|
|
@@ -1100,8 +1252,8 @@ var XyoConnection = class {
|
|
|
1100
1252
|
if (fromResolved === void 0) throw new Error("Failed to determine from address");
|
|
1101
1253
|
const signedTransaction = assertEx3(await signer.createSignedTransaction(chainResolved, elevatedPayloads, additionalPayloads, nbfResolved, expResolved, feesResolved, fromResolved), () => "Failed to create transaction");
|
|
1102
1254
|
const hydratedTransaction = [
|
|
1103
|
-
await
|
|
1104
|
-
await
|
|
1255
|
+
await PayloadBuilder5.addStorageMeta(signedTransaction),
|
|
1256
|
+
await PayloadBuilder5.addStorageMeta(elevatedPayloads)
|
|
1105
1257
|
];
|
|
1106
1258
|
if (isDataLakeProvider(storage)) {
|
|
1107
1259
|
const wrapper = await HydratedTransactionWrapper.parse(hydratedTransaction);
|
|
@@ -1131,185 +1283,6 @@ var RpcXyoConnection = class extends XyoConnection {
|
|
|
1131
1283
|
viewer
|
|
1132
1284
|
});
|
|
1133
1285
|
}
|
|
1134
|
-
async confirm(tx, onConfirm, onTimeout) {
|
|
1135
|
-
return await confirmTransaction(this, tx, onConfirm, onTimeout);
|
|
1136
|
-
}
|
|
1137
|
-
};
|
|
1138
|
-
|
|
1139
|
-
// src/provider/host/MemoryXyoGateway.ts
|
|
1140
|
-
var MemoryXyoGateway = class extends AbstractXyoGateway {
|
|
1141
|
-
static {
|
|
1142
|
-
__name(this, "MemoryXyoGateway");
|
|
1143
|
-
}
|
|
1144
|
-
_activeConnectionId;
|
|
1145
|
-
_connections = /* @__PURE__ */ new Map();
|
|
1146
|
-
_permissionsStore;
|
|
1147
|
-
_signer;
|
|
1148
|
-
constructor(signer, permissionsStore) {
|
|
1149
|
-
super();
|
|
1150
|
-
this._signer = signer;
|
|
1151
|
-
this._permissionsStore = permissionsStore;
|
|
1152
|
-
}
|
|
1153
|
-
get signer() {
|
|
1154
|
-
return this._signer;
|
|
1155
|
-
}
|
|
1156
|
-
activeConnection() {
|
|
1157
|
-
return isDefined(this._activeConnectionId) ? this._connections.get(this._activeConnectionId) : void 0;
|
|
1158
|
-
}
|
|
1159
|
-
addConnection(configOrName, connection) {
|
|
1160
|
-
if (typeof configOrName === "string" && connection !== void 0) {
|
|
1161
|
-
const name = configOrName;
|
|
1162
|
-
this._connections.set(name, connection);
|
|
1163
|
-
this.setActiveConnectionIdIfUndefined(name);
|
|
1164
|
-
return connection;
|
|
1165
|
-
} else if (typeof configOrName === "object") {
|
|
1166
|
-
const config = configOrName;
|
|
1167
|
-
const { name, dataLakeEndpoint, networkEndpoint } = config;
|
|
1168
|
-
const rpcConnection = new RpcXyoConnection({
|
|
1169
|
-
endpoint: networkEndpoint
|
|
1170
|
-
});
|
|
1171
|
-
this._connections.set(name, rpcConnection);
|
|
1172
|
-
this.setActiveConnectionIdIfUndefined(name);
|
|
1173
|
-
return rpcConnection;
|
|
1174
|
-
}
|
|
1175
|
-
throw new Error("Invalid arguments passed to addConnection");
|
|
1176
|
-
}
|
|
1177
|
-
connections() {
|
|
1178
|
-
const record = {};
|
|
1179
|
-
for (const [id, conn] of this._connections.entries()) {
|
|
1180
|
-
record[id] = conn;
|
|
1181
|
-
}
|
|
1182
|
-
return record;
|
|
1183
|
-
}
|
|
1184
|
-
getPermissions() {
|
|
1185
|
-
return this._permissionsStore.getPermissions();
|
|
1186
|
-
}
|
|
1187
|
-
requestPermissions(permissions) {
|
|
1188
|
-
return this._permissionsStore.requestPermissions(permissions);
|
|
1189
|
-
}
|
|
1190
|
-
revokePermissions(permissions) {
|
|
1191
|
-
return this._permissionsStore.revokePermissions(permissions);
|
|
1192
|
-
}
|
|
1193
|
-
setActiveConnectionIdIfUndefined(id) {
|
|
1194
|
-
if (!isDefined(this._activeConnectionId)) {
|
|
1195
|
-
this._activeConnectionId = id;
|
|
1196
|
-
}
|
|
1197
|
-
}
|
|
1198
|
-
};
|
|
1199
|
-
|
|
1200
|
-
// src/provider/host/PermissionsStore/getPermissionsStoreFromTransport.ts
|
|
1201
|
-
var getPermissionsStoreFromTransport = /* @__PURE__ */ __name((transport) => {
|
|
1202
|
-
return {
|
|
1203
|
-
getPermissions: /* @__PURE__ */ __name(() => transport.sendRequest("xyoGateway_getPermissions"), "getPermissions"),
|
|
1204
|
-
requestPermissions: /* @__PURE__ */ __name((permissions) => transport.sendRequest("xyoGateway_requestPermissions", permissions), "requestPermissions"),
|
|
1205
|
-
revokePermissions: /* @__PURE__ */ __name((permissions) => transport.sendRequest("xyoGateway_revokePermissions", permissions), "revokePermissions")
|
|
1206
|
-
};
|
|
1207
|
-
}, "getPermissionsStoreFromTransport");
|
|
1208
|
-
|
|
1209
|
-
// src/provider/host/PermissionsStore/MemoryPermissionsStore.ts
|
|
1210
|
-
var MemoryPermissionsStore = class {
|
|
1211
|
-
static {
|
|
1212
|
-
__name(this, "MemoryPermissionsStore");
|
|
1213
|
-
}
|
|
1214
|
-
_store = /* @__PURE__ */ new Map();
|
|
1215
|
-
getPermissions() {
|
|
1216
|
-
return [
|
|
1217
|
-
...this._store.values()
|
|
1218
|
-
];
|
|
1219
|
-
}
|
|
1220
|
-
requestPermissions(permissions) {
|
|
1221
|
-
const now = Date.now();
|
|
1222
|
-
for (const perm of permissions) {
|
|
1223
|
-
const key = this.getKey(perm);
|
|
1224
|
-
this._store.set(key, {
|
|
1225
|
-
...perm,
|
|
1226
|
-
date: now
|
|
1227
|
-
});
|
|
1228
|
-
}
|
|
1229
|
-
return true;
|
|
1230
|
-
}
|
|
1231
|
-
revokePermissions(permissions) {
|
|
1232
|
-
for (const perm of permissions) {
|
|
1233
|
-
const key = this.getKey(perm);
|
|
1234
|
-
this._store.delete(key);
|
|
1235
|
-
}
|
|
1236
|
-
return true;
|
|
1237
|
-
}
|
|
1238
|
-
getKey(permission) {
|
|
1239
|
-
return `${permission.invoker}::${permission.capability}`;
|
|
1240
|
-
}
|
|
1241
|
-
};
|
|
1242
|
-
|
|
1243
|
-
// src/provider/network/MemoryXyoNetwork.ts
|
|
1244
|
-
import { isUndefined } from "@xylabs/typeof";
|
|
1245
|
-
import { isNetworkStatus } from "@xyo-network/xl1-protocol";
|
|
1246
|
-
import axios from "axios";
|
|
1247
|
-
|
|
1248
|
-
// src/provider/network/lib/FailedNetworkStatusPayloads.ts
|
|
1249
|
-
import { NetworkStatusSchema } from "@xyo-network/xl1-protocol";
|
|
1250
|
-
var unknownStatus = {
|
|
1251
|
-
description: "Unknown Network Status",
|
|
1252
|
-
schema: NetworkStatusSchema,
|
|
1253
|
-
state: "unknown"
|
|
1254
|
-
};
|
|
1255
|
-
var errorStatus = {
|
|
1256
|
-
description: "Error Fetching Network Status",
|
|
1257
|
-
schema: NetworkStatusSchema,
|
|
1258
|
-
state: "unknown"
|
|
1259
|
-
};
|
|
1260
|
-
|
|
1261
|
-
// src/provider/network/lib/StatusNetworks.ts
|
|
1262
|
-
var MainNetworkStats = {
|
|
1263
|
-
id: "mainnet",
|
|
1264
|
-
statusUrl: "https://xyo.network/chain-network-status-mainnet.json"
|
|
1265
|
-
};
|
|
1266
|
-
var SequenceNetworkStats = {
|
|
1267
|
-
id: "sequence",
|
|
1268
|
-
statusUrl: "https://beta.xyo.network/chain-network-status-sequence.json"
|
|
1269
|
-
};
|
|
1270
|
-
var LocalNetworkStats = {
|
|
1271
|
-
id: "local",
|
|
1272
|
-
statusUrl: "http://localhost:3002/chain-network-status-local.json"
|
|
1273
|
-
};
|
|
1274
|
-
var StatusNetworks = {
|
|
1275
|
-
mainnet: MainNetworkStats,
|
|
1276
|
-
sequence: SequenceNetworkStats,
|
|
1277
|
-
local: LocalNetworkStats
|
|
1278
|
-
};
|
|
1279
|
-
|
|
1280
|
-
// src/provider/network/MemoryXyoNetwork.ts
|
|
1281
|
-
var MemoryXyoNetwork = class {
|
|
1282
|
-
static {
|
|
1283
|
-
__name(this, "MemoryXyoNetwork");
|
|
1284
|
-
}
|
|
1285
|
-
_networkId;
|
|
1286
|
-
constructor(networkId) {
|
|
1287
|
-
this._networkId = networkId;
|
|
1288
|
-
}
|
|
1289
|
-
async status() {
|
|
1290
|
-
const statusNetwork = StatusNetworks[this._networkId];
|
|
1291
|
-
if (isUndefined(statusNetwork)) {
|
|
1292
|
-
throw new Error(`Unknown status network ID: ${this._networkId}`);
|
|
1293
|
-
}
|
|
1294
|
-
return await this.makeRequest(statusNetwork.statusUrl);
|
|
1295
|
-
}
|
|
1296
|
-
async makeRequest(url) {
|
|
1297
|
-
try {
|
|
1298
|
-
const response = await axios.get(url);
|
|
1299
|
-
if (isNetworkStatus(response.data)) {
|
|
1300
|
-
return response.data;
|
|
1301
|
-
} else {
|
|
1302
|
-
if (response.status === 200) {
|
|
1303
|
-
console.error("Unknown network status response:", response.data);
|
|
1304
|
-
return unknownStatus;
|
|
1305
|
-
}
|
|
1306
|
-
return errorStatus;
|
|
1307
|
-
}
|
|
1308
|
-
} catch (error) {
|
|
1309
|
-
console.error("Error fetching network status:", error);
|
|
1310
|
-
return errorStatus;
|
|
1311
|
-
}
|
|
1312
|
-
}
|
|
1313
1286
|
};
|
|
1314
1287
|
|
|
1315
1288
|
// src/transport/HttpRpcTransport.ts
|
|
@@ -1463,12 +1436,12 @@ export {
|
|
|
1463
1436
|
HttpRpcTransport,
|
|
1464
1437
|
InvokerPermissionSchema,
|
|
1465
1438
|
JsonRpcErrorCodes,
|
|
1466
|
-
JsonRpcXyoGateway,
|
|
1467
1439
|
JsonRpcXyoRunner,
|
|
1468
1440
|
JsonRpcXyoSigner,
|
|
1469
1441
|
JsonRpcXyoViewer,
|
|
1470
1442
|
MemoryPermissionsStore,
|
|
1471
1443
|
MemoryRpcTransport,
|
|
1444
|
+
MemoryXyoClient,
|
|
1472
1445
|
MemoryXyoGateway,
|
|
1473
1446
|
MemoryXyoNetwork,
|
|
1474
1447
|
MemoryXyoRunner,
|
|
@@ -1485,6 +1458,7 @@ export {
|
|
|
1485
1458
|
XyoSignerRpcSchemas,
|
|
1486
1459
|
XyoViewerRpcSchemas,
|
|
1487
1460
|
buildSessionMessageRequest,
|
|
1461
|
+
confirmSubmittedTransaction,
|
|
1488
1462
|
confirmTransaction,
|
|
1489
1463
|
createRequestSchema,
|
|
1490
1464
|
createResponseSchema,
|